首页>参考读物>公共基础课>心理生活

打开Go语言之门:入门、实战与进阶
作者 : 飞雪无情 著
出版日期 : 2022-11-14
ISBN : 978-7-111-71245-9
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 226
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书深入浅出地讲解GO语言,并使用不同于市场上入门书籍的方式迅速入门,重点击破,每个章节都会包含一些技巧或者示例。全书分为5个模块,从基本原理到项目实战,逐步深入分析 Go 的底层原理与核心特性,本书也是首本关于GO语言泛型的书。

图书特色

Go中文站长、“Go夜读”创始人等专家联袂推荐
基于Go 1.18,全面讲解Go基础知识点、高阶的语言底层原理、
工程实践和泛型的使用,帮助读者紧跟Go语言发展步伐

上架指导

计算机\程序设计

封底文字

本书会带你快速入门 Go 语言,并能熟悉 Go 语言进阶特性:并发、泛型。本书还从新人的角度切入,给读者详细讲解 Go 语言的一些底层原理,最特别的是 Go 语言工程管理,这个在市面上甚少谈及,这部分看似不相关,实则对我们提高开发效率、写出高质量代码有很大的帮助。

—— 杨文 “Go夜读”创始人

这是一本全面的 Go 语言教程,既包含入门知识,又有进阶内容,同时对于底层原理也有深度剖析。Go 语言是一门工程化的语言,本书专门介绍了工程化相关技巧,可助力读者高效工作。本书的另一个特殊之处是完整地讲解了 Go 语言泛型。
相信不少人看过“飞雪无情”大佬的博文,通俗易懂,而这本书即可帮助你系统、深入地掌握 Go 语言。

—— 徐新华 Go语言中文网站长/《Go语言编程之旅》作者


本书对 Go 语言的方方面面做了深入浅出的讲解,包含语法介绍、基本原理、实战和进阶的案例等。作者还很贴心地在每章布置了作业,能让你很好地学以致用。相信这是所有 Gopher 都需要的案头书!

—— 陈剑煜 《Go 语言编程之旅》作者

相信很多读者都看过飞雪无情的系列博文《Go 语言实战笔记》,深入浅出,清晰易懂,我本人也从中收获良多。作者一直活跃在 Go 社区,发文章、写专栏,这次出书也是众望所归。本书的内容非常全面,从基础的 Go 知识点到高阶的语言底层原理、工程实践都有涉及,不仅适合初学者,有一定 Go 经验的老手也能从中收获不少。本书最后一部分还介绍了泛型相关的知识,帮助读者紧跟 Go 语言发展的脚步。

—— 饶全成 公众号“码农桃花源”主理人,《Go 程序员面试笔试宝典》作者

作者简介

飞雪无情 著:飞雪无情
Go 语言早期的布道者、“Go语言实战笔记”作者,通过“飞雪无情”公众号和数万名读者交流 Go 语言技术,擅长用通俗的语言将底层机制讲得浅显易懂。
深耕技术领域近十年,前随手记技术VP、Go Meetup讲师、TGO鲲鹏会成员,目前在一家互联网公司担任副总裁,负责产品的研发管理和架构设计。

图书目录

前言 | 学习Go语言,抓住未来的机遇

第一部分:快速入门Go语言
第1章基础入门:编写你的第一个 Go 语言程序
1.1Hello, 世界
1.2程序结构分析
1.3Go 语言环境搭建
1.4项目结构
1.5编译发布
1.6总结
第2章数据类型:Go语言的基石
2.1变量声明
2.2基础类型
2.3零值
2.4变量
2.5常量
2.6字符串的使用
2.7总结
第3章控制语句:if、for、switch 那些事儿
3.1 if 条件语句
3.2switch 选择语句
3.3for 循环语句
3.4总结
第4章集合类型:如何正确使用 array、slice 和 map
4.1Array(数组)
4.1.1 数组声明
4.1.2 数组循环
4.2Slice(切片)
4.2.1 基于数组生成切片
4.2.2切片修改
4.2.3切片声明
4.2.4Append
4.2.5切片元素循环
4.3Map(映射)
4.3.1Map 声明初始化
4.3.2Map 获取和删除
4.3.3遍历 Map
4.3.4Map 的大小
4.4String 和 []byte
4.5总结
第5章函数和方法:在Go 语言中函数和方法是不同的
5.1函数
5.1.1 函数初探
5.1.2 函数声明
5.2多值返回
5.3命名返回参数
5.4可变参数
5.5包级函数
5.6匿名函数和闭包
5.7方法
5.7.1 不同于函数的方法
5.7.2 值类型接收者和指针类型接收者
5.8总结
第6章struct 和 interface:隐式的接口实现
6.1结构体
6.1.1结构体定义
6.1.2结构体声明使用
6.1.3字段结构体
6.2接口
6.2.1接口的定义
6.2.2接口的实现
6.2.3值接收者和指针接收者
6.3工厂函数
6.4继承和组合
6.5类型断言
6.6总结
第7章错误处理:如何更优雅的处理程序异常和错误
7.1错误
7.1.1 error 接口
7.1.2 error 工厂函数
7.1.3 自定义 error
7.1.4 error 断言
7.2错误嵌套
7.2.1 Error Wrapping
7.2.2 errors.Unwrap 函数
7.2.3 errors.Is 函数
7.2.4 errors.As 函数
7.3Deferred 函数
7.4Panic 异常
7.5总结
?
第二部分:Go语言高效并发
第8章Goroutines和Channels:并发的基础
8.1什么是并发
8.2进程和线程
8.3协程
8.4Channel
8.4.1声明一个 channel
8.4.2无缓冲和有缓冲 channel
8.4.3关闭 channel
8.4.4单向 channel
8.4.5 select+channel 示例
8.5总结
第9章同步原语:让你对并发控制得心应手
9.1资源竞争
9.2同步原语
9.2.1sync.Mutex
9.2.2sync.RWMutex
9.2.3sync.WaitGroup
9.2.4sync.Once
9.2.5sync.Cond
9.3总结
第10章Context:多协程并发控制神器
10.1初识 Context
10.2Context 树
10.3使用 Context 取消多个协程
10.4Context 传值
10.5Context 使用原则
10.6总结
第11章并发模式:拿来即用的并发模式
11.1for select 循环模式
11.2select timeout 模式
11.3Pipeline 模式
11.4扇出和扇入模式
11.5Futures 模式
11.6总结
第12章并发技巧:基于channel实现的并发安全的字节池
实战演示一个并发技巧,用channel实现并发安全的字节池。
?
第三部分: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.2new 函数
15.3变量初始化
15.4指针变量初始化
15.5make 函数
15.6总结
第16章运行时反射:字符串和结构体之间如何转换
16.1反射是什么?
16.2reflect.Value 和 reflect.Type
16.2.1 reflect.Value
16.2.2 reflect.Type
16.3字符串和结构体互转
16.3.1 JSON 和 Struct 互转
16.3.2 Struct Tag
16.3.3 实现 Struct 转 JSON
16.4反射定律
16.5总结
第17章非类型安全:不安全但高效的 unsafe
17.1指针类型转换
17.2 unsafe.Pointer
17.3uintptr 指针类型
17.4指针转换规则
17.5unsafe.Sizeof
17.6总结
第18章零拷贝:slice 为何如此高效
18.1数组
18.2slice 切片和动态扩容
18.3数据结构
18.4高效的原因
18.5string 和 []byte 互转
18.6总结
第19章零拷贝实战:字符串如何高效拼接
通过对比字符串不同的拼接方式,最终实现一个零内存拷贝的字符串拼接实战。
?
第四部分:Go语言工程管理
第20章测试:质量保证的基石
20.1单元测试
20.1.1 什么是单元测试
20.1.2 Go 语言的单元测试
20.2单元测试覆盖率
20.3基准测试
20.3.1 什么是基准测试
20.3.2 Go 语言的基准测试
20.3.3 计时方法
20.3.4 内存统计
20.4并发基准测试
20.5基准测试实战
20.6总结
第21章性能优化:如何写出高质量的代码
21.1代码规范检查
21.1.1 什么是代码规范检查
21.1.2 golangci-lint配置
21.1.3 集成 golangci-lint 到 CI
21.2性能优化
21.3堆分配还是栈
21.4逃逸分析
21.5优化技巧
21.6总结
第22章协作开发:模块化管理
22.1Go 语言中的包
22.1.1 什么是包
22.1.2 使用包
22.1.3 作用域
22.1.4 自定义包
22.2Go 语言中的模块
22.3使用第三方模块
22.4总结
?
第五部分:Go语言泛型
第23章初识泛型:使用泛型简化编程
泛型的入门,分析和示例实战。

教学资源推荐
作者: 主 编 刘 平(封面只上主编) 副主编 李 坚 窦 乐 梁 旭 邸 砧参 编 梁宁娜 钟育秀 张 颖 张 超
作者: (美) 布雷特 W.佩勒姆(Brett W.Pelham)纽约州立大学布法罗分校 哈特·布兰顿(Hart Blanton)得克萨斯A&M大学 著
作者: (美)利迪(Leedy,P.D.),(美)奥姆罗德(Ormrod,J.E.)
作者: [美] 约翰·W.桑特洛克(John W.Santrock) 著
参考读物推荐
作者: [美]唐娜·杰克逊·中泽(Donna Jackson Nakazawa)著
作者: [美] 威廉·格拉瑟(William Glasser)著
作者: [美]彼得?孔普(Peter Kump)著
作者: [美]乔恩·博德纳(Jon Bodner)著