谢谢你选择这本书!我希望它能成为开发人员快速查找 Go 开发模式的方便参考。它是其他资源的一个伴侣,也是一个在阅读过一次之后很长时间都很有用的参考资料。本书中的每一个配方包括工作、简单和测试代码,这些代码可以作为您自己应用的参考或基础。这本书涵盖了从基本主题到高级主题的一系列内容。
本书面向 web 开发人员、程序员和企业开发人员。假设具备围棋语言的基本知识。没有必要有后端应用开发的经验,但可能有助于理解某些方法背后的动机。
这本书为已经精通围棋但需要快速提醒、示例或参考的围棋开发人员提供了很好的参考。有了开源存储库,还应该可以与团队快速共享这些示例。如果您正在寻找快速解决围棋编程中常见和不常见问题的方法,本书适合您。
第一章I/O 和文件系统介绍了常见的 Go I/O 接口,并探讨了如何使用文件系统。这包括临时文件、模板和 CSV 文件。
第 2 章命令行工具着眼于通过命令行接收用户输入,并探索处理常见数据类型,如 TOML、YAML 和 JSON。
第 3 章数据转换和合成演示了 Go 接口和数据类型之间的转换和转换方法。它还展示了 Go 的编码策略和一些功能设计模式。
第 4 章围棋错误处理展示了围棋错误处理的策略。它探索了如何传递错误、处理错误和记录错误。
第 5 章网络编程演示了 UDP 和 TCP/IP 等各种网络原语的使用。它还探索了域名系统(DNS),处理原始电子邮件消息,以及基本的远程过程调用(RPC)。
第 6 章关于数据库和存储的所有内容,涉及用于访问 MySQL 等数据存储系统的各种存储库。它还演示了如何使用接口将库与应用逻辑解耦。
第 7 章、Web 客户端和 API实现了 Go HTTP 客户端接口、REST 客户端、OAuth2 客户端、装饰和扩展客户端以及 gRPC。
第 8 章,Go中应用的微服务,探讨了 web 处理程序、将状态传递给处理程序、用户输入验证和中间件。
第 9 章测试 Go 代码,重点介绍模拟、测试覆盖、模糊、行为测试和有用的测试工具。
第 10 章并行和并发为通道和异步操作、原子值、Go 上下文对象和通道状态管理提供了参考。
第 11 章、分布式系统实现了服务发现、Docker 容器化、度量和监控以及编排。它主要涉及 Go 应用的部署和产品化。
第 12 章反应式编程和数据流探讨了反应式和数据流应用、Kafka 和分布式消息队列以及 GraphQL 服务器。
第 13 章无服务器编程涉及在不维护服务器的情况下部署 Go 应用。这包括使用 Google App Engine、Firebase、Lambda 和在无服务器环境中登录。
第 14 章、性能改进、技巧和窍门涉及基准测试、识别瓶颈、优化和改进 Go 应用的 HTTP 性能。
要使用本书,您需要以下内容:
- Unix 编程环境。
- Go 1.x 系列的最新版本。
- 互联网连接。
- 如各章所述,允许安装其他软件包。
- 各章节的技术要求部分中提到了各配方的先决条件和其他安装要求。
您可以从您的账户www.packtpub.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packtpub.com/support并注册,将文件通过电子邮件直接发送给您。
您可以通过以下步骤下载代码文件:
- 登录或注册www.packtpub.com。
- 选择“支持”选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Go-Programming-Cookbook-Second-Edition 。我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!
访问以下链接查看正在运行的代码的视频:http://bit.ly/2J2uqQ3
本书中使用了许多文本约定。
CodeInText
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:bytes
库在处理数据时提供了许多方便的函数
代码块设置如下:
b, err := ioutil.ReadAll(r)
if err != nil {
return "", err
}
return string(b), nil
}
当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
package bytestrings
import (
"bytes"
"io"
"io/ioutil"
)
任何命令行输入或输出的编写方式如下:
$ go mod init github.com/PacktPublishing/Go-Programming-Cookbook-Second-Edition/Chapter01/interfaces
粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“从管理面板中选择系统信息。”
警告或重要提示如下所示。
提示和技巧如下所示。
在这本书中,你会发现几个经常出现的标题(准备就绪、如何做……、如何工作……、还有更多……、另见。
要明确说明如何完成配方,请使用以下部分:
本节告诉您配方中的预期内容,并介绍如何设置配方所需的任何软件或任何初步设置。
本节包含遵循配方所需的步骤。
本节通常包括对上一节中发生的情况的详细解释。
本节包含有关配方的附加信息,以使您更了解配方。
本节提供了有关配方的其他有用信息的有用链接。
我们欢迎读者的反馈。
一般反馈:发送电子邮件feedback@packtpub.com
并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com
。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,然后输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com
与我们联系,并提供该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问packtpub.com。