Go Web编程

谢孟军
自 序 缘起 自从一年半之前看到许式伟的博客,我认识了Go这一门语言,发现Go是C系的,个人又偏爱C语言,所以就开始了Go语言的学习之路,用三天时间学习了Go语言的所有语法和基础知识。恰逢当时手上有一些小项目练手,在项目开发中进一步发现Go语言具有三大优点:第一,性能好,我的Mac能够跑2万左右的并发;第二,语法简单,对于以前有C语言基础的人来说非常容易上手,我仅用一天时间就熟悉了基本语法,Go语言是一个上手即用的语言;第三,开发效率高,目前有很多编辑器支持Go语言,对于开发效率有很大的提升,一般的小项目半天就能解决。通过一年多来对Go语言项目的实战累积,我越来越觉得Go是一门工程语言,而不是其他学院派。无论是开发、测试、部署、项目规模的扩展,或者是团队协作,Go语言考虑都非常周到;而且其语法恰当好处,不多不少,够用就是它的设计原则,所以Go语言非常适合项目的开发。 选择Go语言,还有一部分是缘于我的个人崇拜,Go语言的作者不乏鼎鼎大名的牛人:Robert Griesemer、Rob Pike和Ken Thompson,他们曾设计C语言和Unix系统,后来隶属Plan9团队。重要的是,在Go语言的完全开源中,很多名人都参与了进来,使得这个项目越来越完善:Go1.1出来后,性能提升了30-50%,而且GC(垃圾回收机制)已经达到了非常高的水准。相信在开源社区和大牛的共同推动下,Go语言会茁壮成长。 Go Web 我以前是PHP开发者,有十年左右的Web开发经验,但在Go语言的显著优势下,逐渐走向了Go语言的开发之路。我发现Go语言虽然有很强大的网络编程库,但是在Web编程方面没有详细的介绍,也缺少一些比较实用的库,所以结合先前的Web开发经验,以及Go语言本身的网络编程库,开始了这本书的创作过程,希望更多同行能够加入到Go语言的开发行列。 这本书主要分三部分,第一部分…