Go语言学习指南:惯例模式与编程实践

Go语言学习指南:惯例模式与编程实践
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: (Jon Bodner)
2022-05
版次: 1
ISBN: 9787111703839
定价: 119.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 336页
字数: 373千字
12人买过
  • Go语言正在迅速成为构建Web服务的优选语言。本书很好地阐述了Go语言的特性,同时指出了Go语言的惯例代码、陷阱和设计模式。本书语言生动,表述清晰,将Go语言的基本原理与语言哲学联系在一起,引导读者正确编写Go语言。既介绍基础知识,又涵盖高级主题(如反射和C语言互操作),通过大量例子演示了如何写出符合Go语言惯例的代码,解释了可能影响程序行为的底层概念,比如指针对内存布局和垃圾回收的影响。无论你是Go语言的初学者,还是经验丰富的Go语言从业人员,相信都能从本书中获益良多。 Jon Bodner是Capital One公司的一名杰出工程师,拥有20多年的软件工程师、首席开发者和架构师工作经验。他从事过多个领域的软件开发工作,包括教育、金融、商业、医疗保健、法律、政府和互联网基础设施。 第1章 设置Go语言的开发环境7

    1.1 安装Go工具7

    1.2 Go的工作空间8

    1.3 Go命令集9

    1.4 分析与审查13

    1.5 选择开发工具15

    1.6 Makefile18

    1.7 保持更新19

    1.8 总结20

    第2章 基础类型和变量声明21

    2.1 内置类型21

    2.2 var与:= 30

    2.3 const关键字32

    2.4 有类型的常量与无类型的常量33

    2.5 未使用的变量34

    2.6 常量与变量的命名35

    2.7 总结37

    第3章 复合类型38

    3.1 数组38

    3.2 切片40

    3.3 字符串、字符和字节49

    3.4 映射52

    3.5 结构体57

    3.6 总结61

    第4章 代码块、影子变量和流程控制62

    4.1 代码块62

    4.2 if语句66

    4.3 for语句67

    4.4 switch语句78

    4.5 默认的switch语句81

    4.6 if和switch之间的选择82

    4.7 goto语句83

    4.8 总结85

    第5章 函数86

    5.1 函数的声明和调用86

    5.2 函数即值92

    5.3 闭包95

    5.4 defer98

    5.5 函数的值调用101

    5.6 总结103

    第6章 指针104

    6.1 指针快速入门104

    6.2 不畏惧指针107

    6.3 指针即可变的参数109

    6.4 指针作为第二选择113

    6.5 指针传递可提高性能114

    6.6 零值与无值114

    6.7 映射与切片的区别115

    6.8 切片用作缓冲区118

    6.9 优化垃圾回收119

    6.10 总结121

    第7章 类型、方法与接口122

    7.1 Go语言的类型122

    7.2 方法123

    7.3 使用内嵌进行组合131

    7.4 内嵌不是继承132

    7.5 接口概览133

    7.6 接口是类型安全的鸭子类型134

    7.7 内嵌与接口137

    7.8 接收接口,返回结构体138

    7.9 接口与nil139

    7.10 空接口139

    7.11 类型断言与type-switch141

    7.12 谨慎使用类型断言与type-switch143

    7.13 函数类型实现接口145

    7.14 隐式接口实现依赖注入146

    7.15 Wire150

    7.16 Go并非传统意义上的面向对象语言150

    7.17 总结150

    第8章 错误151

    8.1 如何处理错误151

    8.2 使用字符串创建简单错误152

    8.3 哨兵错误153

    8.4 错误是值155

    8.5 包装错误157

    8.6 Is和As159

    8.7 使用defer包装错误162

    8.8 panic和recover163

    8.9 从错误中获取堆栈跟踪信息165

    8.10 总结165

    第9章 模块、包和导入166

    9.1 仓库、模块和包166

    9.2 go.mod166

    9.3 创建包167

    9.4 模块177

    9.5 模块的发布185

    9.6模块的版本控制186

    9.7 模块代理服务器187

    9.8 总结188

    第10章 Go的并发编程189

    10.1 何时使用并发编程189

    10.2 goroutine190

    10.3 通道192

    10.4 select语句194

    10.5 并发实践与模式197

    10.6 何时使用互斥锁211

    10.7 atomic214

    10.8 额外资源214

    10.9 总结214

    第11章 Go语言标准库215

    11.1 标准io库215

    11.2 time220

    11.3 encoding/json222

    11.4 net/http228

    11.5 总结234

    第12章 上下文235

    12.1 什么是上下文235

    12.2 取消238

    12.3 计时器241

    12.4 在上下文中处理取消请求243

    12.5 传递值244

    12.6 总结249

    第13章 测试250

    13.1 测试的基本知识250

    13.2 表格驱动测试256

    13.3 检查代码覆盖率258

    13.4 基准测试261

    13.5 Go中的测试桩264

    13.6 httptest269

    13.7 集成测试和编译标签271

    13.8 使用竞争检测器检查并发问题272

    13.9总结274

    第14章 恶龙禁区:反射、unsafe和cgo275

    14.1 在运行时使用反射处理类型275

    14.2 unsafe意味着不安全289

    14.3 cgo用于集成,而不是为了性能294

    14.4 总结297

    第15章 展望未来:Go中的泛型298

    15.1 泛型减少冗余代码,提高类型安全性298

    15.2 Go中的泛型300

    15.3 类型列表可指定操作符305

    15.4 泛型函数抽象算法306

    15.5 类型列表限制常量和实现307

    15.6 暂不考虑的问题310

    15.7 惯例模式与泛型312

    15.8 未来更多可能312

    15.9 总结313
  • 内容简介:
    Go语言正在迅速成为构建Web服务的优选语言。本书很好地阐述了Go语言的特性,同时指出了Go语言的惯例代码、陷阱和设计模式。本书语言生动,表述清晰,将Go语言的基本原理与语言哲学联系在一起,引导读者正确编写Go语言。既介绍基础知识,又涵盖高级主题(如反射和C语言互操作),通过大量例子演示了如何写出符合Go语言惯例的代码,解释了可能影响程序行为的底层概念,比如指针对内存布局和垃圾回收的影响。无论你是Go语言的初学者,还是经验丰富的Go语言从业人员,相信都能从本书中获益良多。
  • 作者简介:
    Jon Bodner是Capital One公司的一名杰出工程师,拥有20多年的软件工程师、首席开发者和架构师工作经验。他从事过多个领域的软件开发工作,包括教育、金融、商业、医疗保健、法律、政府和互联网基础设施。
  • 目录:
    第1章 设置Go语言的开发环境7

    1.1 安装Go工具7

    1.2 Go的工作空间8

    1.3 Go命令集9

    1.4 分析与审查13

    1.5 选择开发工具15

    1.6 Makefile18

    1.7 保持更新19

    1.8 总结20

    第2章 基础类型和变量声明21

    2.1 内置类型21

    2.2 var与:= 30

    2.3 const关键字32

    2.4 有类型的常量与无类型的常量33

    2.5 未使用的变量34

    2.6 常量与变量的命名35

    2.7 总结37

    第3章 复合类型38

    3.1 数组38

    3.2 切片40

    3.3 字符串、字符和字节49

    3.4 映射52

    3.5 结构体57

    3.6 总结61

    第4章 代码块、影子变量和流程控制62

    4.1 代码块62

    4.2 if语句66

    4.3 for语句67

    4.4 switch语句78

    4.5 默认的switch语句81

    4.6 if和switch之间的选择82

    4.7 goto语句83

    4.8 总结85

    第5章 函数86

    5.1 函数的声明和调用86

    5.2 函数即值92

    5.3 闭包95

    5.4 defer98

    5.5 函数的值调用101

    5.6 总结103

    第6章 指针104

    6.1 指针快速入门104

    6.2 不畏惧指针107

    6.3 指针即可变的参数109

    6.4 指针作为第二选择113

    6.5 指针传递可提高性能114

    6.6 零值与无值114

    6.7 映射与切片的区别115

    6.8 切片用作缓冲区118

    6.9 优化垃圾回收119

    6.10 总结121

    第7章 类型、方法与接口122

    7.1 Go语言的类型122

    7.2 方法123

    7.3 使用内嵌进行组合131

    7.4 内嵌不是继承132

    7.5 接口概览133

    7.6 接口是类型安全的鸭子类型134

    7.7 内嵌与接口137

    7.8 接收接口,返回结构体138

    7.9 接口与nil139

    7.10 空接口139

    7.11 类型断言与type-switch141

    7.12 谨慎使用类型断言与type-switch143

    7.13 函数类型实现接口145

    7.14 隐式接口实现依赖注入146

    7.15 Wire150

    7.16 Go并非传统意义上的面向对象语言150

    7.17 总结150

    第8章 错误151

    8.1 如何处理错误151

    8.2 使用字符串创建简单错误152

    8.3 哨兵错误153

    8.4 错误是值155

    8.5 包装错误157

    8.6 Is和As159

    8.7 使用defer包装错误162

    8.8 panic和recover163

    8.9 从错误中获取堆栈跟踪信息165

    8.10 总结165

    第9章 模块、包和导入166

    9.1 仓库、模块和包166

    9.2 go.mod166

    9.3 创建包167

    9.4 模块177

    9.5 模块的发布185

    9.6模块的版本控制186

    9.7 模块代理服务器187

    9.8 总结188

    第10章 Go的并发编程189

    10.1 何时使用并发编程189

    10.2 goroutine190

    10.3 通道192

    10.4 select语句194

    10.5 并发实践与模式197

    10.6 何时使用互斥锁211

    10.7 atomic214

    10.8 额外资源214

    10.9 总结214

    第11章 Go语言标准库215

    11.1 标准io库215

    11.2 time220

    11.3 encoding/json222

    11.4 net/http228

    11.5 总结234

    第12章 上下文235

    12.1 什么是上下文235

    12.2 取消238

    12.3 计时器241

    12.4 在上下文中处理取消请求243

    12.5 传递值244

    12.6 总结249

    第13章 测试250

    13.1 测试的基本知识250

    13.2 表格驱动测试256

    13.3 检查代码覆盖率258

    13.4 基准测试261

    13.5 Go中的测试桩264

    13.6 httptest269

    13.7 集成测试和编译标签271

    13.8 使用竞争检测器检查并发问题272

    13.9总结274

    第14章 恶龙禁区:反射、unsafe和cgo275

    14.1 在运行时使用反射处理类型275

    14.2 unsafe意味着不安全289

    14.3 cgo用于集成,而不是为了性能294

    14.4 总结297

    第15章 展望未来:Go中的泛型298

    15.1 泛型减少冗余代码,提高类型安全性298

    15.2 Go中的泛型300

    15.3 类型列表可指定操作符305

    15.4 泛型函数抽象算法306

    15.5 类型列表限制常量和实现307

    15.6 暂不考虑的问题310

    15.7 惯例模式与泛型312

    15.8 未来更多可能312

    15.9 总结313
查看详情
相关图书 / 更多
Go语言学习指南:惯例模式与编程实践
Go专家编程(第2版)
任洪彩
Go语言学习指南:惯例模式与编程实践
Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用
[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译;上海碳泽信息科技有限公司 审校
Go语言学习指南:惯例模式与编程实践
Go语言从入门到项目实战(视频版)
刘瑜 萧文翰 董树南 著
Go语言学习指南:惯例模式与编程实践
Go语言从入门到项目实践(超值版)
余建熙
Go语言学习指南:惯例模式与编程实践
Go语言程序设计-微课视频版
肖建良;赵文丽
Go语言学习指南:惯例模式与编程实践
Go程序员面试笔试宝典
饶全成 欧长坤 楚秦等编著 猿媛之家 组编
Go语言学习指南:惯例模式与编程实践
Go语言程序设计项目化教程(微课版)
谭旭;史律;钟祥永
Go语言学习指南:惯例模式与编程实践
Go程序开发实战宝典
穆旭东 谭庆丰 楚秦 编著;猿媛之家 组编
Go语言学习指南:惯例模式与编程实践
Go语言与区块链开发(计算机类普通高等教育双一流课程系列教材)
冯柳平、陈澜祯、袁贵春、卢婷婷 编
Go语言学习指南:惯例模式与编程实践
Go语言Hyperledger区块链开发实战
李晓黎
Go语言学习指南:惯例模式与编程实践
Go语言设计模式(双色版)
廖显东
Go语言学习指南:惯例模式与编程实践
Go语言定制指南
柴树杉 史斌 丁尔男
您可能感兴趣 / 更多
Go语言学习指南:惯例模式与编程实践
控制的幻觉
乔恩·丹尼尔森 著
Go语言学习指南:惯例模式与编程实践
图解深度学习:可视化、交互式的人工智能指南
乔恩·克罗恩(Jon Krohn)
Go语言学习指南:惯例模式与编程实践
高效能团队:打造卓越组织的方法与智慧
乔恩·R.卡岑巴赫 道格拉斯·K.史密斯 胡晓姣 吴纯洁 胡亚琳
Go语言学习指南:惯例模式与编程实践
C#入门经典(第9版)
乔恩·D. 里德(Jon D. Reid) 著;齐立博 译;[德]本杰明·帕金斯(Benjamin Perkins)
Go语言学习指南:惯例模式与编程实践
美国人的性格(了解当代美国重要作品!普利策奖得主米查姆剖析当代美国重磅作品!)
乔恩·米查姆(Jon Meacham) 著;博集天卷 出品
Go语言学习指南:惯例模式与编程实践
辩手指南
乔恩·M. 埃里克森;詹姆斯·J. 墨菲;雷蒙德·巴德·泽斯奇纳
Go语言学习指南:惯例模式与编程实践
儿童情绪管理与性格培养绘本--我学会了感恩:培养孩子换位思考的能力
乔恩·拉瑟 著;塞奇·福斯特-拉瑟
Go语言学习指南:惯例模式与编程实践
萤火虫系列:诸神退位-古希腊的日常
乔恩·怀特 著;于素芳 译
Go语言学习指南:惯例模式与编程实践
思想会·抢救与杀戮:军医的战争回忆录
乔恩·科斯铁特尔(Jon Kerstetter) 著;黄开 译
Go语言学习指南:惯例模式与编程实践
精益改善文化:协同组织能力、获取突破性成果和长期收益的要诀
乔恩·米勒(Jon Miller) 著
Go语言学习指南:惯例模式与编程实践
编程珠玑续
乔恩·本特利(Jon Bentley) 著;钱丽艳、刘田 译
Go语言学习指南:惯例模式与编程实践
哈利的秘密树林
乔恩·柯恩(Jon Cohen) 著;博集天卷 出品