推荐序二
很早就知道孟军兄在网上写一本关于Go Web编程的书,但是因为各种原因都没缘分仔细去看,最近因为工作原因,也开始接触并使用Go语言,才去看这本书,读完后,便觉得相见恨晚。
本书并不是Go语言的教程,只是在第一章和第二章介绍Go的运行开发环境以及基本语法,但是受益于Go语言自身的简洁性,却也把Go语言的方方面面介绍得非常清楚。
然后介绍Web编程方面的HTTP,Web Server,文本处理,Cookie,Session等知识,同时提到了Web编程中的各种安全问题,比如CSRF、XSS、Session劫持、SQL注入、密码安全等问题,并且给出了Go语言解决方案。
与后台数据库的交互是 Web 编程中非常重要的环节,本书不仅介绍了 MySQL, SQLite,PostgreSQL等传统关系型数据库,同时对MongoDB,Redis这两位NoSQL阵营的明星产品也有涉及,但最值得一提的是,作者编写的开源Go语言ORM库。一提到Web编程,我们马上想到的是PHP、Python、Ruby等动态语言以及基于这些语言的各种框架,如PHP阵营的Zend Framework,Python阵营的Django,Ruby阵营的Ruby On Rails,诚然,动态语言的特性加速了我们的开发效率,但是框架带来的便利与高效才是至关重要的,这点我们从 Spring,Hibernate 等框架对 Java 社区的重要性就可以看出。其中ORM是框架中非常重要的一部分,它帮开发者隐藏了繁琐的SQL细节,非常轻松地完成数据库的增删改查。作者开源的Go语言的ORM库功能已经相对完整,算是我国Go语言社区里开源的精品之作了,能有效提高使用Go语言进行Web开发的效率,虽然也存在需要提高改进的地方,但合抱之木生于毫末,九层之台起于累土,千里之行始于足下,只要坚持不懈,持续改进,未尝没有像Spring一样成为全球知名框架的可能。
本书的最后,还介绍了如何进行国际化与本地化的 Web 开发,讲解了如何调试、部署和维护方面的实践,提出了设计可扩展Web框架的建议。
本书以 Web 编程为主线,讲解了开发、测试、设计和部署等方面需要的知识,涵盖了一个Web站开发生命周期的方方面面,不仅是希望用Go语言开发Web服务的读者会受益匪浅,而且用其他语言的读者对Web编程的概念也会有清晰的认识。
Go 语言目标是成为集合解释型编程的轻松、动态类型语言的高效及静态类型语言的安全三大优点的编译型语言,同时它对网络编程与多核计算支持非常好。在国内外,都已经有大型的 IT 公司在内部试水使用 Go 语言开发各种服务,其中也有不少成功案例。在技术社区,也有很多人开始宣传Go,使用Go,关注Go,相信在不久的将来,会有更多的人来使用Go语言来开发他们的Web服务,因为Go语言确实非常优秀而且实用。
京东商城云平台资深工程师,高级经理 郭理靖
2013年4月