
前言
为什么要写这本书
数年前,公司开始尝试技术栈转型,而我恰好被抽调到新业务的突破组,负责Go相关技术的推进。但是当时网上并没有体系化、结构化的教材,因此我写了一些中文连载系列,希望借此将Go相关的知识分享给广大的Go语言爱好者。
近几年,随着学习Go语言人数的增加,Go语言相关的图书也越来越多,但依然没有相对完整的项目实践类的图书,因此我决定再次行动起来,希望将这一块的知识成体系地分享给大家。
读者对象
本书适合有一定Go语言基础的读者,以及相关开发人员阅读:
● 有一定Go语言基础的开发人员。
● 想要进行Go相关项目实践的开发人员。
● 希望熟悉Go常用分析工具的开发人员。
本书内容
全书共分为6章,分别是命令行应用、HTTP应用、RPC应用、WebSocket应用、进程内缓存和Go语言中的大杀器(分析工具),其中前5章是Go语言开发中最常见的项目类型。
本书对项目开发、细节分析、运行时分析等核心内容进行了较为深入的剖析,提供了相对完整的项目实践经验。在项目迭代过程中,难免会遇到问题,因此本书针对Go语言的大杀器(分析工具)及常见问题进行了全面讲解,帮助读者对各类问题进行排查。
本书的思维导图如下所示:

关于实践
本书的主要内容是面向项目实践,实践大体可以分为三个方向,分别是“做、学、排”,即做好你需要的项目、学习优秀的项目、排查和分析问题。
学习优秀的开源或私有项目可以帮助我们不断精进所负责的项目。既然是企业项目,那么在长期的迭代中一定会遇到或大或小的事故,因此知道如何排查和分析问题就显得非常重要。

同时这里有一个隐藏的方向,那就是归纳总结,即对所学的知识进行“复盘”,将思维聚拢并把知识归纳记录下来,这也是本书有很多“小结”的原因。
社区支持
我们建立了官方网站go-programming.cn和相应的知识星球对本书进行长期维护,也希望这个平台能够帮助读者进行思维拓展,认识更多志同道合的朋友。
另外,我们只是乐于分享的Go语言爱好者,技术水平有限,书中难免有错漏之处,敬请读者不吝赐教,我们将感激不尽。
致谢
感谢Go语言社区中的爱好者们,如果没有你们的鼓励,本书不可能出版。最后感谢为本书牺牲了大量业余时间进行“Review”的朋友们:
● 盛傲飞(aofei)
● 石太彬(shitaibin)
● 曾晓东(teroy)
陈剑煜
感谢我的家人一直以来对我的事业和爱好毫无怨言的支持!特别要感谢我的妻子,在我写作本书时,给予我无微不至的照顾,让我全身心地投入写作中。因为特殊时期,女儿们没在身边,感谢岳父岳母对她们无微不至的照顾!
徐新华