在本书的第三部分,你将会学习到如何处理不同格式的文件(第12章)和如何在 Go 语言中巧妙地使用错误处理机制(第13章)。然后我们会对 Go 语言中最值得称赞的设计 goroutine 和 channel 进行并发和多核应用的基本技巧的讲解(第14章)。最后,我们会讨论如何将 Go 语言应用到分布式和Web应用中的相关网络技巧(第15章)。
我们会在本书的第四部分向你展示许多 Go 语言的开发模式和一些编码规范,以及一些非常有用的代码片段(第18章)。在前面章节完成对所有的 Go 语言技巧的学习之后,你将会学习如何构造一个完整 Go 语言项目(第19章),然后我们会介绍一些关于 Go 语言在云(Google App Engine)方面的应用(第20章)。在本书的最后一章(第21章),我们会讨论一些在全世界范围内已经将 Go 语言投入实际开发的公司和组织。本书将会在最后给出一些对 Go 语言爱好者的引用,Go 相关包和工具的参考,以及章节练习的答案和所有参考资源和文献的清单。
Go 语言有一个被称之为“没有废物”的宗旨,就是将一切没有必要的东西都去掉,不能去掉的就无底线地简化,同时追求最大程度的自动化。他完美地诠释了敏捷编程的KISS秘诀:短小精悍!
Go 语言通过改善或去除在 C、C++ 或 Java 中的一些所谓“开放”特性来让开发者们的工作更加便利。这里只举例其中的几个,比如对于变量的默认初始化,内存分配与自动回收,以及更简洁却不失健壮的控制结构。同时我们也会发现 Go 语言旨在减少不必要的编码工作,这使得 Go 语言的代码更加简洁,从而比传统的面向对象语言更容易阅读和理解。
与 C++ 或 Java 这些有着庞大体系的语言相比,Go 语言简洁到可以将它整个地装入你的大脑中,而且比学习 Scala(Java 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言!
作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而感到惊奇,因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过现阶段的 Go 语言已经提供了大量有关 Web 方面的功能,我们可以通过它强大的 http 和 template 包来达到 Web 应用的 GUI 实现。
我们会经常涉及到一些关于 Go 语言的编码规范,了解和使用这些已经被广泛认同的规范应该是你学习阶段最重要的实践。我会在书中尽量使用已经讲解的概念或者技巧来解释相关的代码示例,以避免你在不了解某些高级概念的情况下而感到迷茫。
我们通过 227 个完整的代码示例和书中的解释说明来对所有涉及到的概念和技巧进行彻底的讲解,你可以下载这些代码到你的电脑上运行,从而加深对概念的理解。
本书会尽可能地将前后章节的内容联系起来,当然这也同时要求你通过学习不同的知识来对一个问题提出尽可能多的解决方案。记住,学习一门新语言的最佳方式就是实践,运行它的代码,修改并尝试更多的方案。因此,你绝对不可以忽略书中的 130 个代码练习,这将对你学习好 Go 语言有很大的帮助。比如,我们就为斐波那契算法提供了 13 个不同的版本,而这些版本都使用了不同的概念和技巧。
你可以通过访问本书的官方网站下载书中的代码,并获得有关本书的勘误情况和内容更新。