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

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

作者:[美] 乔恩·博德纳(Jon Bodner)

出版社:机械工业

出版年:2022年5月

ISBN:9787111703839

所属分类:网络科技

书刊介绍

《Go语言学习指南:惯例模式与编程实践》内容简介

本书Go语言正在迅速成为构建Web服务的优选语言。本书很好地阐述了Go语言的特性,同时指出了Go语言的惯例代码、陷阱和设计模式。本书语言生动,表述清晰,将Go语言的基本原理与语言哲学联系在一起,引导读者正确编写Go语言。既介绍基础知识,又涵盖高级主题(如反射和C语言互操作),通过大量例子演示了如何写出符合Go语言惯例的代码,解释了可能影响程序行为的底层概念,比如指针对内存布局和垃圾回收的影响。无论你是Go语言的初学者,还是经验丰富的Go语言从业人员,相信都能从本书中获益良多。
乔恩·博德纳(Jon Bodner),拥有20多年的软件工程师、首席开发者和架构师工作经验。他从事过多个领域的软件开发工作,包括教育、金融、商业、医疗保健、法律、政府和互联网基础设施。
美国Capital One公司的杰出工程师,他为公司的开发和测试工作流做出了巨大贡献,开发了Web支付页面的检测与输入的专利技术,并合作开发了用于发现和管理软件开发问题的工具。

作品目录

关于作者
关于封面
O'Reilly
Media,
Inc介绍
本书赞誉
推荐序
译者序
前言
第1章:设置Go语言的开发环境
1.1、安装Go工具
1.2、Go的工作空间
1.3、Go命令集
1.4、分析与审查
1.5、选择开发工具
1.6、Makefile
1.7、保持更新
1.8、总结
第2章:基础类型和变量声明
2.1、内置类型
2.2、var与:=
2.3、const关键字
2.4、有类型的常量与无类型的常量
2.5、未使用的变量
2.6、常量与变量的命名
2.7、总结
第3章:复合类型
3.1、数组
3.2、切片
3.3、字符串、字符和字节
3.4、映射
3.5、结构体
3.6、总结
第4章:代码块、影子变量和流程控制
4.1、代码块
4.2、if语句
4.3、for语句
4.4、switch语句
4.5、默认的switch语句
4.6、if和switch之间的选择
4.7、goto语句
4.8、总结
第5章:函数
5.1、函数的声明和调用
5.2、函数即值
5.3、闭包
5.4、defer
5.5、函数的值调用
5.6、总结
第6章:指针
6.1、指针快速入门
6.2、不畏惧指针
6.3、指针即可变的参数
6.4、指针作为第二选择
6.5、指针传递可提高性能
6.6、零值与无值
6.7、映射与切片的区别
6.8、切片用作缓冲区
6.9、优化垃圾回收
6.10、总结
第7章:类型、方法与接口
7.1、Go语言的类型
7.2、方法
7.3、使用内嵌进行组合
7.4、内嵌不是继承
7.5、接口概览
7.6、接口是类型安全的鸭子类型
7.7、内嵌与接口
7.8、接收接口,返回结构体
7.9、接口与nil
7.10、空接口
7.11、类型断言与type-switch
7.12、谨慎使用类型断言与type-switch
7.13、函数类型实现接口
7.14、隐式接口实现依赖注入
7.15、Wire
7.16、Go并非传统意义上的面向对象语言
7.17、总结
第8章:错误
8.1、如何处理错误
8.2、使用字符串创建简单错误
8.3、哨兵错误
8.4、错误是值
8.5、包装错误
8.6、Is和As
8.7、使用defer包装错误
8.8、panic和recover
8.9、从错误中获取堆栈跟踪信息
8.10、总结
第9章:模块、包和导入
9.1、仓库、模块和包
9.2、go.mod
9.3、创建包
9.4、模块
9.5、模块的发布
9.6、模块的版本控制
9.7、模块代理服务器
9.8、总结
第10章:Go的并发编程
10.1、何时使用并发编程
10.2、goroutine
10.3、通道
10.4、select语句
10.5、并发实践与模式
10.6、何时使用互斥锁
10.7、atomic
10.8、额外资源
10.9、总结
第11章:Go语言标准库
11.1、标准io库
11.2、time
11.3、encoding/json
11.4、net/http
11.5、总结
第12章:上下文
12.1、什么是上下文
12.2、取消
12.3、计时器
12.4、在上下文中处理取消请求
12.5、传递值
12.6、总结
第13章:测试
13.1、测试的基本知识
13.2、表格驱动测试
13.3、检查代码覆盖率
13.4、基准测试
13.5、Go中的测试桩
13.6、httptest
13.7、集成测试和编译标签
13.8、使用竞争检测器检查并发问题
13.9、总结
第14章:恶龙禁区:反射、unsafe和cgo
14.1、在运行时使用反射处理类型
14.2、unsafe意味着不安全
14.3、cgo用于集成,而不是为了性能
14.4、总结
第15章:展望未来:Go中的泛型
15.1、泛型减少冗余代码,提高类型安全性
15.2、Go中的泛型
15.3、类型列表可指定操作符
15.4、泛型函数抽象算法
15.5、类型列表限制常量和实现
15.6、暂不考虑的问题
15.7、惯例模式与泛型
15.8、未来更多可能
15.9、总结

相关推荐

微信二维码