Go语言学习指南
Jon Bodner
杨波, 曾智, 万学凡 译
出版时间:2022年05月
页数:336
Go语言正迅速成为构建Web服务的首选语言。尽管市面上有大量的教程向具有其他编程语言经验的开发者讲授Go语法,但要熟练掌握Go语言,这些教程远远不够,它们并没有介绍Go语言的惯例模式与编程实践。本书将指导读者学习编写清晰且符合Go语言惯例的代码所需的关键知识。
无论你的开发经验和水平如何,都将通过本书学会Go开发者的思考模式。作者Jon Bodner精心介绍了经验丰富的Go开发者所采用的设计模式,并说明了使用这些模式的理由。你还将提前了解Go即将发布的泛型特性,以及它是如何从设计到实现,一步步融入Go语言的。
通过本书,你将:
● 学习如何在Go语言中编写惯例代码并设计Go项目。
● 理解Go语言设计中的权衡。
● 学会为独立开发人员或团队构建Go语言的开发环境。
● 了解如何以及何时使用反射、unsafe和cgo。
● 探究如何利用Go语言的特性使代码高效运行。
● 了解哪些Go语言的特性应该少使用,或避免使用。
  1. 前言
  2. 第1章 设置Go语言的开发环境
  3. 1.1 安装Go工具
  4. 1.2 Go的工作空间
  5. 1.3 Go命令集
  6. 1.4 分析与审查
  7. 1.5 选择开发工具
  8. 1.6 Makefile
  9. 1.7 保持更新
  10. 1.8 总结
  11. 第2章 基础类型和变量声明
  12. 2.1 内置类型
  13. 2.2 var与:=
  14. 2.3 const关键字
  15. 2.4 有类型的常量与无类型的常量
  16. 2.5 未使用的变量
  17. 2.6 常量与变量的命名
  18. 2.7 总结
  19. 第3章 复合类型
  20. 3.1 数组
  21. 3.2 切片
  22. 3.3 字符串、字符和字节
  23. 3.4 映射
  24. 3.5 结构体
  25. 3.6 总结
  26. 第4章 代码块、影子变量和控制结构
  27. 4.1 代码块
  28. 4.2 if语句
  29. 4.3 for语句
  30. 4.4 switch语句
  31. 4.5 默认的switch语句
  32. 4.6 if和switch之间的选择
  33. 4.7 goto语句
  34. 4.8 总结
  35. 第5章 函数
  36. 5.1 函数的声明和调用
  37. 5.2 函数即值
  38. 5.3 闭包
  39. 5.4 defer
  40. 5.5 函数的值调用
  41. 5.6 总结
  42. 第6章 指针
  43. 6.1 指针快速入门
  44. 6.2 不畏惧指针
  45. 6.3 指针即可变的参数
  46. 6.4 指针作为第二选择
  47. 6.5 指针传递可提高性能
  48. 6.6 零值与无值
  49. 6.7 映射与切片的区别
  50. 6.8 切片用作缓冲区
  51. 6.9 优化垃圾回收
  52. 6.10 总结
  53. 第7章 类型、方法与接口
  54. 7.1 Go语言的类型
  55. 7.2 方法
  56. 7.3 使用内嵌进行组合
  57. 7.4 内嵌不是继承
  58. 7.5 接口概览
  59. 7.6 接口是类型安全的鸭子类型
  60. 7.7 内嵌与接口
  61. 7.8 接收接口,返回结构体
  62. 7.9 接口与nil
  63. 7.10 空接口
  64. 7.11 类型断言与type-switch
  65. 7.12 谨慎使用类型断言与type-switch
  66. 7.13 函数类型实现接口
  67. 7.14 隐式接口实现依赖注入
  68. 7.15 Wire
  69. 7.16 Go并非传统意义上的面向对象语言
  70. 7.17 总结
  71. 第8章 错误
  72. 8.1 如何处理错误
  73. 8.2 使用字符串创建简单错误
  74. 8.3 哨兵错误
  75. 8.4 错误是值
  76. 8.5 包装错误
  77. 8.6 Is和As
  78. 8.7 使用defer包装错误
  79. 8.8 panic和recover
  80. 8.9 从错误中获取堆栈跟踪信息
  81. 8.10 总结
  82. 第9章 模块、包和导入
  83. 9.1 仓库、模块和包
  84. 9.2 go.mod
  85. 9.3 创建包
  86. 9.4 模块
  87. 9.5 模块的发布
  88. 9.6 模块的版本控制
  89. 9.7 模块代理服务器
  90. 9.8 总结
  91. 第10章 Go的并发编程
  92. 10.1 何时使用并发编程
  93. 10.2 goroutine
  94. 10.3 通道
  95. 10.4 select语句
  96. 10.5 并发实践与模式
  97. 10.6 何时使用互斥锁
  98. 10.7 atomic
  99. 10.8 额外资源
  100. 10.9 总结
  101. 第11章 Go语言标准库
  102. 11.1 标准io库
  103. 11.2 time包
  104. 11.3 encoding/json
  105. 11.4 net/http
  106. 11.5 总结
  107. 第12章 上下文
  108. 12.1 什么是上下文
  109. 12.2 取消
  110. 12.3 计时器
  111. 12.4 在上下文中处理取消请求
  112. 12.5 传递值
  113. 12.6 总结
  114. 第13章 测试
  115. 13.1 测试的基本知识
  116. 13.2 表格驱动测试
  117. 13.3 检查代码覆盖率
  118. 13.4 基准测试
  119. 13.5 Go中的测试桩
  120. 13.6 httptest
  121. 13.7 集成测试和编译标签
  122. 13.8 使用竞争检测器检查并发问题
  123. 13.9 总结
  124. 第14章 恶龙禁区:反射、unsafe和cgo
  125. 14.1 在运行时使用反射处理类型
  126. 14.2 unsafe意味着不安全
  127. 14.3 cgo用于集成,而不是为了性能
  128. 14.4 总结
  129. 第15章 展望未来:Go中的泛型
  130. 15.1 泛型减少冗余代码,提高类型安全性
  131. 15.2 Go中的泛型
  132. 15.3 类型列表可指定操作符
  133. 15.4 泛型函数抽象算法
  134. 15.5 类型列表限制常量和实现
  135. 15.6 暂不考虑的问题
  136. 15.7 惯例模式与泛型
  137. 15.8 未来更多可能
  138. 15.9 总结
书名:Go语言学习指南
作者:Jon Bodner
译者:杨波, 曾智, 万学凡 译
国内出版社:机械工业出版社
出版时间:2022年05月
页数:336
书号:978-7-111-70383-9
原版书书名:Learning Go
原版书出版商:O'Reilly Media
Jon Bodner
 
Jon Bodner拥有20多年的软件工程师、首席开发者和架构师工作经验。他从事过多个领域的软件开发工作,包括教育、金融、商业、医疗保健、法律、政府和互联网基础设施。
Jon是美国第一资本金融公司(Capital One)的杰出工程师,他为公司的开发和测试工作流做出了巨大贡献,开发了Web支付页面的检测与输入的专利技术,并合作开发了用于发现和管理软件开发问题的工具。
Jon 经常在Go会议上发表演讲,他关于Go和软件工程的博客文章已经有超过30万次的浏览量。他是Proteus数据访问库(https://github.com/jonbodner/proteus)的创建者,也是checks-out(LGTM项目的分支) (https://github.com/capitalone/checks-out)的联合开发者。
 
 
本书封面上的动物是平原囊鼠(Geomys bursarius),这是一种生活在北美大平原上的穴居哺乳动物。这些啮齿类动物非常善于挖掘,主要生活在地下。
平原囊鼠全身(除了尾巴之外)都覆盖着棕色的皮毛。为了适应挖掘需要,它们有着小眼睛、短耳朵和大的爪状前脚。它们还能耐受低氧和高浓度二氧化碳的环境。平原囊鼠因其外部的颊囊而得名,颊囊可用于携带食物。
平原囊鼠具有很强的领地意识和攻击性,很少进入其他同类的洞穴。它们有将近四分之三的时间都待在自己的洞穴里,洞穴中有它们的巢穴,还有装着树根和草的食物储藏室。它们会到地面上寻找食物和配偶。
平原囊鼠的保护状态是无危。O’Reilly封面上的许多动物都濒临灭绝,它们对世界很重要。
购买选项
定价:119.00元
书号:978-7-111-70383-9
出版社:机械工业出版社