使用go语言来做web开发,是非常方便的。如果不使用框架,仅仅使用net/http包,也能快速开发一个web应用。但是,官方包不支持RESTful风格的API,所以我们依然还是需要选择一个框架来帮助我们进行开发。 (推荐学习:go)
我们在github上输入web,选择go语言项目,按star数进行排序,大概有以下几个项目,在社区中比较受欢迎:caddy
gin
beego
martini
gotty
echo
revel
iris
其中值得一提的是,beggo是国人开发维护的项目,作为起步学习阶段,我们选择大名鼎鼎的gin项目进行探索。
golang的web后端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web项目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
对于文件改动重新编译其实并不是大问题,看pilu/fresh · GitHub,其实你自己写shell脚本(也可以直接用go写,因为它本身就是系统语言)监控文件系统改动然后自动重新build,即使是C/C++的项目这也不是大问题,人们不用C/C++写web是因为它们不是写web app的最佳选择
golang写的代码编译通过后,要比scripting language鲁棒,因为go compiler强制一些最佳实践
所以如果你熟悉go或者愿意投资时间,这是一种很值得用的语言,如果你不熟悉而且项目周期很紧,还是建议你用自己最熟悉的语言,学go本身需要花时间的。
我最近一个web项目是用Gorilla写的,也是边学边做 Gorilla, the golang web toolkit;这个Go by Example 挺有用。