打开Go语言之门

打开Go语言之门

作者:飞雪无情

出版社:机械工业

出版年:2022年8月

ISBN:9787111712459

所属分类:行业好书

书刊介绍

《打开Go语言之门》内容简介

通过不断思考和整理,作者编写了这本更具系统性也更通俗易懂的Go语言入门和进阶书籍,以帮助学习者少走弯路,比其他人更快一步提升职业竞争力。本书共包含五个部分。
第一部分:快速入门Go语言。作者挑选了变量、常量、基础数据类型、函数和方法、结构体和接口等知识点进行介绍。这部分内容相对简洁,但已经足够让你掌握Go的基本程序结构了。
第二部分:Go语言的高效并发。这部分主要介绍goroutine、channel、同步原语等知识,让你对Go语言层面的并发支持有更深入的理解,并且可以编写自己的Go语言并发程序。这个部分最后一章专门介绍常用的并发模式,可以拿来即用,以更好地控制并发。
第三部分:深入理解Go语言。这部分讲解Go语言底层原理和高级功能,比如slice的底层是怎样的、为什么这么高效等。这部分内容也是作者特意设计的,跟着作者一起研究底层原理,可避免初学者不求甚解的通病。总之,只有理解了底层原理,你才能更灵活地编写程序并高效地应对问题。
第四部分:Go语言工程管理。学习一门语言,不仅要掌握它本身的知识,还要掌握模块管理、性能优化等周边技能,因为这些技能可以帮助你更好地进行多人协作,提高开发效率,写出更高质量的代码。你可以在这部分学到如何测试Go语言代码以提高代码质量、如何做好性能优化、如何使用第三方库来提高自己项目的开发效率等。
第五部分:Go语言泛型。这是Go语言在1.18版本中新增的特性,也是大家期待已久的特性。在这一部分作者会带你学习Go语言泛型的使用,以及如何使用泛型来提高效率和简化代码。
飞雪无情,Go语言早期的布道者、“Go语言实战笔记”作者,通过“飞雪无情”公众号与数万名读者交流Go语言技术,擅长用通俗的语言将底层机制讲得浅显易懂。深耕技术领域近十年,前随手记技术VP、Go Meetup讲师、TGO鲲鹏会成员,目前在一家互联网公司担任副总裁,负责产品的研发管理和架构设计。

作品目录

前言
学习Go语言,抓住未来的机遇
第一部分
快速入门Go语言
第1章:基础入门:Hello,Go语言
1.1、Hello,World
1.2、程序结构分析
1.3、搭建Go语言开发环境
1.4、项目结构
1.5、编译发布
1.6、跨平台编译
1.7、Go编辑器推荐
1.8、小结
第2章:数据类型:Go语言的基石
2.1、一个简单示例
2.2、基础类型
2.3、变量
2.4、常量
2.5、字符串的使用
2.6、小结
第3章:控制结构:if、for、switch那些事儿
3.1、if条件语句
3.2、switch选择语句
3.3、for循环语句
3.4、小结
第4章:集合类型:如何正确使用array、slice和map
4.1、数组
4.2、切片
4.3、映射
4.4、string和[]byte
4.5、小结
第5章:函数和方法:如何区分函数和方法
5.1、函数
5.2、方法
5.3、小结
第6章:struct和interface:隐式的接口实现
6.1、结构体
6.2、接口
6.3、工厂函数
6.4、继承和组合
6.5、类型断言
6.6、小结
第7章:错误处理:如何更优雅地处理程序异常和错误
7.1、错误
7.2、错误嵌套
7.3、defer函数
7.4、panic函数
7.5、recover函数
7.6、小结
第二部分
Go语言的高效并发
第8章:goroutine和channel:并发的基础
8.1、什么是并发
8.2、进程和线程
8.3、协程
8.4、管道
8.5、select+channel示例
8.6、小结
第9章:同步原语:让你对并发控制得心应手
9.1、资源竞争
9.2、同步原语
9.3、小结
第10章:Context:多协程并发控制神器
10.1、协程如何退出
10.2、Context的使用示例
10.3、Context详解
10.4、Context树
10.5、使用Context取消多个协程
10.6、Context传值
10.7、Context使用原则
10.8、小结
第11章:并发模式:拿来即用的经验总结
11.1、for
select循环模式
11.2、select
timeout模式
11.3、流水线模式
11.4、扇出和扇入模式
11.5、Future模式
11.6、小结
第12章:并发技巧:高效并发安全的字节池
12.1、字节切片
12.2、高效字节池
12.3、使用BytePoolCap
12.4、BytePoolCap与sync.Pool的对比
12.5、小结
第三部分
深入理解Go语言
第13章:指针详解:什么情况下应该使用指针
13.1、什么是指针
13.2、指针的声明和定义
13.3、指针的操作
13.4、指针参数
13.5、指针接收者
13.6、什么情况下使用指针
13.7、小结
第14章:参数传递:值、引用以及指针的区别
14.1、修改参数
14.2、值类型
14.3、指针类型
14.4、引用类型
14.5、类型的零值
14.6、小结
第15章:内存分配:new和make该如何选择
15.1、变量
15.2、new函数
15.3、变量初始化
15.4、小结
第16章:运行时反射:字符串和结构体之间如何转换
16.1、什么是反射
16.2、获取对象的值和类型
16.3、ref
lect.Value
16.4、ref
lect.Type
16.5、字符串和结构体的互转
16.6、反射定律
16.7、小结
第17章:非类型安全:不安全但高效的unsafe
17.1、指针类型转换
17.2、unsafe.Pointer
17.3、uintptr指针类型
17.4、指针转换规则
17.5、unsafe.Sizeof
17.6、小结
第18章:零拷贝:slice为何如此高效
18.1、数组
18.2、slice
18.3、小结
第19章:实战:字符串如何高效拼接
19.1、一个例子
19.2、几种拼接方式
19.3、性能对比
19.4、拼接函数改造
19.5、再次进行性能测试
19.6、builder拼接慢在哪里
19.7、内存分配优化
19.8、小结
第四部分
Go语言工程管理
第20章:测试:质量保证的基石
20.1、单元测试
20.2、基准测试
20.3、小结
第21章:性能优化:如何写出高质量的代码
21.1、代码规范检查
21.2、性能优化
21.3、小结
第22章:协作开发:模块化管理
22.1、Go语言中的包
22.2、Go语言中的模块
22.3、小结
第五部分
Go语言泛型
第23章:初识泛型:使用泛型简化编程
23.1、一个非泛型示例
23.2、使用泛型重构示例
23.3、类型推导
23.4、自定义类型约束
23.5、内置的类型约束
23.6、函数式编程
23.7、小结
第24章:深入泛型:漫谈泛型设计
24.1、为什么需要泛型
24.2、类型参数
24.3、泛型类型
24.4、类型约束
24.5、再论类型推导
24.6、小结
结束语
你的Go语言成长之路

相关推荐

微信二维码