Skip to content

Latest commit

 

History

History
157 lines (91 loc) · 8.02 KB

File metadata and controls

157 lines (91 loc) · 8.02 KB

零、前言

谢谢你选择这本书!我希望它能成为开发人员快速查找 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并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packtpub.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • 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