一本帮助你成为更棒 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」获取


浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报