一本帮助你成为更棒 Go 开发者的图书免费下载

共 1886字,需浏览 4分钟

 ·

2020-12-11 10:35

很多 Go 爱好者可能学习了 Go 基础知识,比如看了一些入门级书籍。为了大家更好进阶,今天推荐一本适合进阶的图书。即:Mastering Go。这里提供英文版和中文版给你。

看看该书各章节的简单介绍。

第一章,Go 与操作系统,首先讨论了 Go 的历史、Go 的优势、及godoc的用法,并且教你如何编译和执行一个 Go 程序;接下来阐述了用户输入输出,如何使用命令行参数以及 log 文件;本章最后一个主题是错误处理,其在 Go 里具有举足轻重的地位。

第二章,深入剖析 Go 的各种内部原理,讨论了 Go 垃圾回收机制及其内部原理;然后展示了一些不安全的代码和包,C 代码与 Go 的互相调用,defer 关键字及 strace、dtrace 两个小工具的使用示例;本章最后你将学习如何使用 Go 汇编器获取环境变量的信息。

第三章,Go 基本数据类型,讨论 Go 提供的基本数据类型,包括数组,切片,映射,指针,常量,循环以及时间与日期的基本操作。我想你不会愿意错过这一章的!

第四章,组合类型的使用,以 Go 结构体与 struct 关键字开始本章,之后讨论了元组、字符串、rune、字节切片以及字符串字面量;最后讲解了正则表达式与模式匹配,switch 语句、strings 包、math/big 包,以及如何使用 Go 实现简单的 k-v 存储。

第五章,数据结构的 Go 描述,当 Go 提供的内置基本类型不能满足你的需求时,你可以实现自己的数据类型,本章将教你实现包括二叉树、链表、哈希表、栈、队列在内的数据结构并了解它们的优势及具体使用场景。最后,你将学会如何使用 Go 产生随机数。

第六章, Go package 中不为人知的知识,本章包括 Go 的包和函数的知识,如 init()函数,syscall 标准库,text/template 和 html/template 包。这一章将会让你成为更棒的 Go 开发者。

第七章,反射和接口,我们将讨论更高级的概念,包括反射,接口,类型方法。Go 的面向对象编程也会在本章出现!

第八章,Go UNIX 系统编程,本章关于如何使用 Go 进行 UNIX 系统编程,包括使用 flag 包获取命令行参数,处理 UNIX 信号量,文件的输入输出,bytes 包以及 io.Reader 和 io.Writer 接口。我之前提到过,如果你想在系统编程进行更加深入的研究,读完本书后可以阅读Go 系统编程一书。

第九章,并发-Goroutines,Channel 和 Pipeline,本章讨论 Goroutines,Channel 和 Pipeline,Go 使用这些技术实现并发操作。你将了解到进程、线程、goroutine 之间的区别,sync 包和调度器原理也会涉及。

第十章,Go 并发-进阶讨论,在上一章的基础上进一步讨论 Go 并发编程,旨在帮助你成为 goroutine 和 channel 的专家!主要内容有,Go 调度器深入讲解,强大的 select 关键字的使用,channel 的不同类型,共享内存,互斥锁,sync.Mutex 与 syncRWMutex 类型的使用。最后将会讨论 context 包,工作池以及如何检测竞争代码的状态。

十一章,代码测试,优化以及分析,本章内容包括代码测试,优化,代码分析以及交叉编译,创建文档,基准测试等内容。

十二章, Go 网络编程基础,主要内容是 net/http 包的使用以及如何使用 Go 设计实现 web 客户端与服务器。除此之外涉及 http.Response,http.Request 的使用,http.Transport 结构和 http.NewServerMux 类型的讲解。通过本章学习,你将能够使用 Go 开发完整的网站!最后,你会了解如何使用 Go 读取网络接口配置和实现 DNS 轮询。

十三章, 网络编程-构建服务器与客户端,本章讨论如何基于 net 包实现 UDP 和 TCP 客户端与服务器,如何创建 RPC 客户端与服务器,实现并发的 TCP 服务器以及读取原生网络包。

该书原版是英文,也有中文翻译版。现在免费提供给各位。

关注公众号「Go招聘」回复 master 获取

回复「master」获取


浏览 9
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报