关于本书

Go是一门开源的编程语言,目的在于降低构建简单、可靠、高效软件的门槛。尽管这门语言借鉴了很多其他语言的思想,但是凭借自身统一和自然的表达,Go程序在本质上完全不同于用其他语言编写的程序。Go平衡了底层系统语言的能力,以及在现代语言中所见到的高级特性。你可以依靠Go语言来构建一个非常快捷、高性能且有足够控制力的编程环境。使用Go语言,可以写得更少,做得更多。

谁应该读这本书

本书是写给已经有一定其他语言编程经验,并且想学习Go语言的中级开发者的。我们写这本书的目的是,为读者提供一个专注、全面且符合语言习惯的视角。我们同时关注语言的规范和实现,涉及的内容包括语法、类型系统,并发、通道、测试以及其他一些主题。我们相信,对于刚开始学Go语言的人,以及想要深入了解这门语言内部实现的人来说,本书都是极佳的选择。

章节速览

本书由9章组成,每章内容简要描述如下。

  • 第1章快速介绍这门语言是什么,为什么要创造这门语言,以及这门语言要解决什么问题。这一章还会简要介绍一些Go语言的核心概念,如并发。
  • 第2章引导你完成一个完整的Go程序,并教你Go作为一门编程语言必须提供的特性。
  • 第3章介绍打包的概念,以及搭建Go工作空间和开发环境的最佳实践。这一章还会展示如何使用Go语言的工具链,包括获取和构建代码。
  • 第4章展示Go语言内置的类型,即数组、切片和映射。还会解释这些数据结构背后的实现和机制。
  • 第5章详细介绍Go语言的类型系统,从结构体类型到具名类型,再到接口和类型嵌套。这一章还会展示如何综合利用这些数据结构,用简单的方法来设计结构并编写复杂的软件。
  • 第6章深入展示Go调度器、并发和通道是如何工作的。这一章还将介绍这个方面背后的机制。
  • 第7章基于第6章的内容,展示一些实际开发中用到的并发模式。你会学到为了控制任务如何实现一个goroutine池,以及如何利用池来复用资源。
  • 第8章对标准库进行探索,深入介绍3个包,即 logjsonio 。这一章专门介绍这3个包之间的某些复杂关系。
  • 第9章以如何利用测试和基准测试框架来结束全书。读者会学到如何写单元测试、表组测试以及基准测试,如何在文档中增加示例,以及如何把这些示例当作测试使用。

关于代码

本书中的所有代码都使用等宽字体表示,以便和周围的文字区分开。在很多代码清单中,代码被注释是为了说明关键概念,并且有时在正文中会用数字编号来给出对应代码的其他信息。

本书的源代码既可以在Manning网站(www.manning.com/books/go-in-action)上下载,也可以在GitHub(https://github.com/goinaction/code)上找到这些源代码。

读者在线

购买本书后,可以在线访问由Manning出版社提供的私有论坛。在这个论坛上可以对本书做评论,咨询技术问题,并得到作者或其他读者的帮助。通过浏览器访问www.manning.com/books/go-in-action可以访问并订阅这个论坛。这个网页还提供了注册后如何访问论坛,论坛提供什么样的帮助,以及论坛的行为准则等信息。

Manning向读者承诺提供一个读者之间以及读者和作者之间交流的场所。Manning并不承诺作者一定会参与,作者参与论坛的行为完全出于作者自愿(没有报酬)。我们建议你向作者提一些有挑战性的问题,否则可能提不起作者的兴趣。

只要本书未绝版,作者在线论坛以及早期讨论的存档就可以在出版商的网站上获取到。

关于作者

William Kennedy(@goinggodotnet)是Ardan工作室的管理合伙人。这家工作室位于佛罗里达州迈阿密,是一家专注移动、Web和系统开发的公司。他也是博客GoingGo.net的作者,迈阿密Go聚会的组织者。从在培训公司Ardan Labs开始,他就专注于Go语言教学。无论是在当地,还是在线上,经常可以在大会或者工作坊中看到他的身影。他总是找时间来帮助那些想获取Go语言知识、撰写博客和编码技能提升到更高水平的公司或个人。

Brian Ketelsen(@bketelsen)是XOR Data Exchange的CIO和联合创始人。Brian也是每年Go语言大会(GohperCon)的合办者,同时也是Gopher Academy的创立者。作为专注于社区的组织,Gopher Academy一直在促进Go语言的发展和对Go语言开发者的培训。Brian从2010年就开始使用Go语言。

Erik St. Martin(@erikstmartin)是XOR Data Exchange的软件开发总监。他所在的公司专注于大数据分析,最早在得克萨斯州奥斯汀,后来搬到了佛罗里达州坦帕湾。Erik长时间为开源软件及其社区做贡献。他是每年GopherCon的组织者,也是坦帕湾Go聚会的组织者。他非常热爱Go语言及Go语言社区,积极寻求促进社区成长的新方法。

本书源代码也可以从www.epubit.com.cn本书网页免费下载。

results matching ""

    No results matching ""