返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版 Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用
  • 新华书店旗下自营,正版全新
    • 作者: [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校著 | [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校编 | [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校译 | [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校绘
    • 出版社: 清华大学出版社
    • 出版时间:2021-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    美阅书店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校著| [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校编| [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校译| [澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校绘
    • 出版社:清华大学出版社
    • 出版时间:2021-01
    • 版次:null
    • 印次:1
    • 字数:485000
    • 开本:其他
    • ISBN:9787302615897
    • 版权提供:清华大学出版社
    • 作者:[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校
    • 著:[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译 上海碳泽信息科技有限公司 审校
    • 装帧:平装
    • 印次:1
    • 定价:98.00
    • ISBN:9787302615897
    • 出版社:清华大学出版社
    • 开本:其他
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2021-01
    • 页数:0
    • 外部编号:11893682
    • 版次:null
    • 成品尺寸:暂无

    第1章 编写命令行应用程序 1 1.1 我们的个应用程序 1 1.2 编写单元测试 8 1.3 使用fla 14 1.4 改进用户界面 22 1.4.1 删除重复的错误消息 22 1.4.2 自定义用例消息 23 1.4.3 通过位置参数接收姓名 24 1.5 更新单元测试 27 1.6 小结 32 第2章 命令行应用程序 33 2.1 实现子命令 33 2.1.1 子命令驱动的应用程序架构 37 2.1.2 测试mai 43 2.1.3 测试cm 45 2.2 使应用程序更健壮 47 2.2.1 带有超时的用户输入 48 2.2.2 处理用户信号 51 2.3 小结 55 第3章 编写客户端 57 3.1 下载数据 57 3.2 反序列化接收到的数据 61 3.3 发送数据 65 3.4 使用二进制数据 71 3.5 小结 78 第4章 客户端 79 4.1 使用自定义客户端 79 4.1.1 从过载的服务器下载 79 4.1.2 测试超时行为 83 4.1.3 配置重定向行为 86 4.2 定制请求 89 4.3 实现客户端中间件 90 4.3.1 了解RoundTripper接口 90 4.3.2 日志中间件 91 4.3.3 给所有请求添加一个标头 94 4.4 连接池 97 4.5 小结 101 第5章 构建服务器 103 5.1 我们的个服务器 103 5.2 设置请求处理程序 106 处理程序 106 5.3 测试服务器 109 5.4 Request(请求)结构 112 5.4.1 方法 112 5.4.2 URL 112 5.4.3 Proto、ProtoMajor和ProtoMinor 113 5.4.4 标头 113 5.4.5 主机 113 5.4.6 正文 113 5.4.7 Form、PostForm 113 5.4.8 MultipartForm 114 5.5 将元数据附加到请求 115 5.6 处理流请求 118 5.7 将流数据作为响应 123 5.8 小结 128 第6章 服务器应用程序 129 6.1 处理程序的类型 129 6.2 跨处理程序共享数据 130 6.3 编写服务器中间件 135 6.3.1 自定义处理程序技术 135 6.3.2 HandlerFunc技术 136 6.3.3 链接中间件 138 6.4 为复杂的服务器应用程序编写测试 142 6.4.1 组织代码 143 6.4.2 测试处理程序 148 6.4.3 测试中间件 151 6.4.4 测试服务器启动 153 6.5 小结 155 第7章 生产级服务器 157 7.1 终止请求处理 157 7.1.1 终止请求处理的策略 160 7.1.2 处理客户端断开连接 165 7.2 服务器范围的超时 168 7.2.1 为所有处理程序实现超时 169 7.2.2 实现服务器超时 169 7.3 实施优雅的关机 174 7.4 使用TLS保护通信 178 7.4.1 配置TLS和/2 179 7.4.2 测试TLS服务器 183 7.5 小结 186 第8章 使用gRPC构建RPC应用程序 187 8.1 gRPC和协议缓冲区 187 8.2 编写个服务 190 8.2.1 编写服务器 192 8.2.2 编写一个客户端 196 8.2.3 测试服务器 201 8.2.4 测试客户端 204 8.3 protobuf消息的详细介绍 207 8.3.1 序列化和反序列化 207 8.3.2 向前和向后兼容 212 8.4 多个服务 214 8.5 错误处理 219 8.6 小结 221 第9章 gRPC应用 223 9.1 流通信 223 9.1.1 服务器端流传输 223 9.1.2 客户端流传输 231 9.1.3 双向流 233 9.2 接收和发送任意字节 241 9.3 使用拦截器实现中间件 250 9.3.1 客户端拦截器 251 9.3.2 服务器端拦截器 257 9.3.3装流 262 9.3.4 链接拦截器 264 9.4 小结 265 第10章 生产级gRPC应用 267 10.1 使用TLS保护通信 267 10.2 服务器健壮 270 10.2.1 实施健康检查 270 10.2.2 处理运行时错误 277 10.2.3 终止请求处理 280 10.3 客户端健壮 289 10.3.1 提高连接配置 289 10.3.2 处理瞬态故障 291 10.3.3 为方法调用设置超时 296 10.4 连接管理 297 10.5 小结 299 第11章 使用数据存储 301 11.1 使用对象存储 302 11.1.1 服务器集成 303 11.1.2 测上传 312 11.1.3 访问底层驱动类型 315 11.2 使用关系数据库 316 11.2.1 服务器集成 318 11.2.2 测试数据存储 328 11.2.3 数据类型转换 332 11.2.4 使用数据库事务 335 11.3 小结 337 —— 以下部分通过扫描封底二维码获取 —— 附录A 使应用程序可观察 339 附录B 部署应用程序 356 附录C 配置Go开发环境 362

    Amit Saha是位于澳大利亚悉尼市的Atlassian公司的高级DevOps工程师。Amit曾撰写Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!和Write Your First Program等书籍。Amit已在软件行业工作10年,曾加盟Sun Microsystems、RedHat和多家初创公司。Amit在技术杂志、会议论文集和研究期刊上发表过大量文章。

    Google于2009年发布了Go编程语言,2012年推出了1.0版本。自从向社区发布,以及1.0版本的兼容,Go语言已被用于编写可扩展且具有高影响力的软件程序。从命令行应用程序和关键基础设施工具到大型分布式系统,Go语言为许多现代软件案例的增长做出了巨大贡献。多年来,我个人对Go的兴趣一直是由于它没有过多的关键字——这是我喜欢它的地方。感觉像它结合了C(我学种编程语言)的强能和Python(我喜欢的另一种编程语言)自带“电池”的特。随着我使用Go语言编写越来越多的程序,我学会了欣赏它专注于提供所有必要的工具能来编写生产级质量的软件。我经常发现自己在想,“我能在这个应用程序中实现这种故障处理模式吗?”然后我查看了标准库文档,答案一直都是响亮的“是!”一旦你掌握了Go语言的基础知识,作为软件开发人员,你几乎不必付出任何努力,可以开发一个开箱即用的高能应用程序。 我撰写《Go编程进阶实战:开发命令行应用、应用和gRPC应用》的目的是通过开发各种类型的应用程序来展示Go语言及其标准库(以及一些社区维护)的各种特。一旦你回顾或学习了Go语言的基础知识,《Go编程进阶实战:开发命令行应用、应用和gRPC应用》将帮助你迈出下一步。我采用了这样一种写作风格:是使用语言及其库的各种特来解决手头的特定问题——你关心的问题。 我不会对语言特或某的每能进行详细描述。你将学到足以构建命令行工具、Web应用程序和gRPC应用程序的知识。我专注于为此类应用程序严格挑选的基本构建块的子集,以提供紧凑且可操作的指南。因此,你可能会发现《Go编程进阶实战:开发命令行应用、应用和gRPC应用》并未涵盖你可能想要了解的更别的用例。这是有意而为之,因为这些更别用例的实现通常依赖于特定领域的软,因此没有一本书可以公正地建议使用某个软而不会遗漏另一个软。我也尽量使用标准来编写《Go编程进阶实战:开发命令行应用、应用和gRPC应用》中的应用程序,这样做是为了确保学习经验不会被稀释。尽管如此,我希望《Go编程进阶实战:开发命令行应用、应用和gRPC应用》介绍的构建块能为你提供坚实的基础,使你能利用更别的库来构建应用程序。 本书涵盖的内容 《Go编程进阶实战:开发命令行应用、应用和gRPC应用》介绍使用Go编程语言构建各种应用程序的概念和模式。主要关注命令行应用程序、应用程序和gRPC应用程序。 第1~2章讨论构建命令行应用程序。你将学习使用标准来开发可扩展和可测试的命令行程序。 第3~4章教你如何构建生产级的客户端。你将学习配置超时、了解连接池行为、实现中间件组件等。 第5~7章讨论构建服务器应用程序。你将学习如何添加对流数据的支持、实现中间件组件、跨处理函数共享数据以及实现各种技术来提高应用程序的健壮。 第8~10章深入研究使用gRPC构建RPC应用程序。你将了解Protocol Buffer,实现各种RPC通信模式,并实现客户端和服务器端拦截器来执行常见的应用程能。 在第11章中,你将学习应用程序与对象存储和关系数据库管理系统的交互。 附录A简要讨论如何将观测仪表添加到应用程序中。 附录B将提供一些有关部署应用程序的指南。 附录C将帮助配置Go开发环境。 每组章节基本独立于其他组。所以请随意跳到任意组的第1章;但是,有些地方可能会引用前一章的内容。 然而,在每个组内,我建议从头到尾阅读章节,因为组内的章节建立在前一章的基础上。例如,如果你想了解更多有关编写客户端的知识,我建议你按顺序阅读第3章和第4章。 我还鼓励你在阅读《Go编程进阶实战:开发命令行应用、应用和gRPC应用》的同时自己编写和运行代码,并尝试那些练习。在你的代码编辑器中自己编写程序将编程能力,正如我在编写《Go编程进阶实战:开发命令行应用、应用和gRPC应用》中的程序时所做的那样。 源代码和资源链接下载 你可扫描封底二维码来查看与《Go编程进阶实战:开发命令行应用、应用和gRPC应用》相关的源代码和资源的链接。 在阅读《Go编程进阶实战:开发命令行应用、应用和gRPC应用》时,读者会看到链接编号。形式是编号,加方括号。如[1]表示读者可扫描封底二维码下载Links文件,找到对应章节中[1]指向的链接。 本书指南 介绍有助于充分利用《Go编程进阶实战:开发命令行应用、应用和gRPC应用》的各种零碎信息。首先,将介绍代码清单的模块路径选择。 Go模块 在《Go编程进阶实战:开发命令行应用、应用和gRPC应用》中,所有应用程序都将首先初始化一个模块(Module)。通过运行go命令go mod init <模块路径>实现。在整本书中,我使用了一个“占位符”模块路径,即github.com/username/<应用名称>。因此,在将模块编写含多的应用程序时,导入路径为github.com/username/<应用名称>/名>。 如果你不打算共享这些应用程序,则可以使用这些模块路径。如果你计划共享应用程序,或进一步开发它们,鼓励你使用自己的模块路径,该路径指向你自己的存储库,可能是托管在[1]、[2]或[3]上的Git存储库。只需要在存储库托管服务中用你自己的用户名替换即可。还值得注意的是,《Go编程进阶实战:开发命令行应用、应用和gRPC应用》的代码存储库[4含的模块路径[5]是实际路径而不是占位符路径。 命令行和终端 全书都要求你执行命令行程序。对于Linux和macOS,使用默认的shell足够了。对于Windows,我假设你将使用Windows PowerShell终端而不是默认的命令行程序。大多数命令行执行显示为在Linux/macOS终端上执行,由$符号指示。但是,你也应该能够在Windows上运行相同的命令。无论我要求你在何处执行命令以创建目录或文件,我都指出了Linux/macOS和Windows的不同之处。 术语 我在整本书中使用了一些术语,在这里澄清一下,以避免歧义并设定正确的期望。 健壮和弹 健壮(Robustness)和弹(Resiliency)这两个术语都表达了应用程序处理意外情况的能力。但是,这些术语在这些情况下的预期行为与其正常行为相比有所不同。如果一个系统能够承受意外情况并在程度上继续运行,那么它是健壮的。与正常行为相比,这可能是次优行为。另一方面,如果系统继续表现出正常行为,则系统具有弹。 在第2章,我们将学习对正在执行用户程序的命令行应用程能强制超时。通过强制超时,可避免应用程序由于糟糕的用户输入而无限期挂起的情况。由于我们配置了允许用户命令执行多长时间的上限,因此当持续时间在命之前到期时,将退出并显示错误。这不是应用程序的正常行为(应该等待命),但是这种次优行为对于允许应用程序从意外情况中恢复是必要的,例如用户的命令花费的时间比预期的要长。你会在全书中找到类似的示例,是在第4、7、10和11章中发送或接收网络请求时。我们将这些技术称为在应用程序中引入健壮。 在第10章,你将学习处理gRPC客户端应用程序中的瞬态故障。我们将以一种可以容忍可能很快解决临时故障的方式编写应用程序。我们将此称为在应用程序中引入弹行为。但是,我们也引入了一个允许解决潜在临时故障的时间上限。如果超过这个时间限制,我们认为操作无法完成。因此,我们也引入了健壮。之,弹和健壮都旨在处理应用程序中的意外情况,《Go编程进阶实战:开发命令行应用、应用和gRPC应用》使用这些术语来指代此类技术。 生产绪 我在书中使用术语“生产绪”(Production Readiness)作为在开发应用程序时但在将其部署到任何类型的生产环境之前应该考虑的所有步骤。当生产环境是你自己的个人服务器并且你是应用程序的用户时,你将学技术可能足够了。如果生产环境意味着应用程序将为你的用户执行关能,那么《Go编程进阶实战:开发命令行应用、应用和gRPC应用》中的技术应该是的基线和起点。生产绪由大量通常特定于领域的技术组成,涵盖健壮、弹、可观察和等各个维度。《Go编程进阶实战:开发命令行应用、应用和gRPC应用》展示了如何实现这些主题的一小部分。 参考文档 书中的代码清单使用了各种标准和一些第三。各能和类型的描述于上下文使用。当你想了解有或函数的更多信息时,知道去哪里查找对于充分利用《Go编程进阶实战:开发命令行应用、应用和gRPC应用》重要。所有标准的关键参考文档均位于[6]。当我导入为/时,将在路径[7]中找到的文档。当我提到io.ReadAll()等函数时,可以查看[8]上的 io文档。 对于第三方软,可通过访问地址[9]获取文档。例如,Go gRP被导入为[10]。其参考文档可通过[11]获得。 Go语言回顾 我建议阅读[12]的A Tour of Go中的内容,以复习将用于实现《Go编程进阶实战:开发命令行应用、应用和gRPC应用》中的程序的各能括for循环、函数、方法、结构、接口类型以及错误值。此外,我想强调我们将广泛使用的关键主题。 结构类型 还将在编写测匿名结构(Struct)类型。这在Andrew Gerrand的演讲“关于Go,你可能不知道的10件事”中有所描述,见[13]。 接口类型 为了使用各种库函数并编写可测程序,我们将广泛使用接口(Interface)类型。例如,我们将广泛使用满足io.Reader和io.Writer接口的替代类型来为使用标准输入和输出接口的应用程序编写测试。 学习定义满足另一个接口的自定义类型是编写Go应用程序的关键步骤,我们在其中插入需要能以与语言的其余部分一起工作。例如,为了在处理函数之间共享数据,我们将定义自己的类型来实现.Handler接口。 A Tour of Go中的接口部分(见[14])有助于复习该主题。 协程和通道 我们将使用协程(Goroutine)和通道(Channel)在应用程序中实现并发执行。我建议阅读A Tour of Go中有关并发的部分(见[15])。注意使用select语句等待多通道通信操作的示例。 测试 我们将使用标准库的测专门编写所有测试,我们将使用Go test来驱动所有测试执行。还使用//test等库提供的支持来测试客户端和服务器端。gRPC库提供了类似的支持。在后一章,我们将使用第三(见[16])和Docker Desktop创建本地测试环境。 在一些测试中,是在编写命令行应用程序时,我们在编写测了“Table驱动测试”的风格,如[17]所述。

    "谷歌在2009年发布了Go编程语言,并于2012年发布了1.0版。Go语言具有强大的兼容性,一直用于编写可扩展的重量级程序(命令行应用程序、关键基础设施工具乃至大规模分布式系统)。凭借简单性、丰富的标准库和蓬勃发展的第三方软件包生态系统,Go语言成为软件开发人员优选的通用语言。     《Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用》将指导你使用 Go编程语言来构建健壮的、生产级别的应用程序。你将学到足够多的知识来构建命令行工具以及通过HTTP和gRPC通信的应用程序。 "

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购