最近在学习go语言,go语言作为一个比较新出现的语言不仅在语法设计理念和编译、执行速度上都自己的独到之处,而且对并发性有着更好的支持,并且更容易实现一个网络软件的开发。所以我就跟着《build web application with golang》这本在github上更新的电子书学习了使用go语言来开发web软件的技术。
之前我学习过一些网络相关的开发,包括在lamp的基础上搭建一个简单的网站,以及拿python实现一个小的使用socket的程序。go语言在开发b/s架构的软件也就是制作网站类型的软件是和使用php有着很大的不同,php作为脚本语言和html的交互方面十分方便,一段代码里可以同时含有html语言和php语言的代码,而且可以无缝交叉,html代码生成则交给php解释器进行,再由apache交给用户。而go语言并不需要apache这样一个已有的服务器软件的支持,页面的生成和与用户的交互都由go程序自己来实现,这样的好处就是执行效率更高,go本身的运行效率就非常高,而且抛弃了apache之后更减少了交互时产生的不必要计算,而且并不需要预先进行环境配置就可以直接使用go语言编写的web软件。缺点就是开发流程不如使用php更方便快捷,需要设计考虑的层次更多一些。