浅谈 Go 语言实现原理

Go 语言是 Google 在 2009 年 12 月发布的编程语言,目前的 Go 语言在国内外的社区都非常热门,很多著名的开源框架 Kubernetes、etcd 和 prometheus 等都使用 Go 语言进行开发,近年来热门的微服务架构和云原生技术也为 Go 语言社区带来了非常多的活力。

作者目前也使用 Go 语言作为日常开发的主要语言,虽然 Go 语言没有 Lisp 系语言的开发效率和强大表达能力,但是却是一门非常容易使用并且大规模运用的工程语言,这也是作者学习和使用 Go 语言的主要原因。

1. 关于本书

这本书介绍的主要内容其实就是 Go 语言内部的实现原理,目前的大纲包含以下的八个章节,在编写的过程中还是会对内容的编排顺序和方式进行修改:

golang-interna

虽然文章的目录结构可能会改变,但是你一定会通过这本书了解到 Go 语言相关的以下内容:

  • 从词法语法解析、类型检查、中间代码生成以及机器码生成的编译相关全链路;
  • 数组、哈希表和字符串等数据结构的表示以及基本操作的实现原理;
  • 理解 Go 语言中的函数、方法、闭包和上下文等语言特性;
  • 常见并发编程使用的 WaitGroup、Once 以及互斥锁等结构的实现;
  • 语言中的万能类型 interface 的实现原理;
  • 各种关键字 make、new、defer、select 以及 for 循环的处理过程;
  • Goroutine 和 Channel 相关的结构、调度策略以及原理;
  • ...

TBD:书中的内容将会有不少于 60% 的章节将以公开的形式发布,剩余最多 40% 的内容将通过其他的渠道收费进行发布,不过在 Go 语言的主要版本更新时,会对文章的内容进行整理和更新,历史的章节会在网站中以公开形式发布,最新的章节仍然会通过不同渠道推送给付费的订阅者。

2. 其他

无论你是对目前书中不包含的 Go 语言特性的实现原理感兴趣,还是有其他的建议都可以在下面留言,欢迎持续关注本书的进展,谢谢。

3. 其他

3.1. 关于图片和转载

文章未经许可均禁止转载,图片在使用时请保留图片中的全部内容,可适当缩放并在引用处附上图片所在的文章链接,图片使用 Sketch 进行绘制。

3.2. 微信公众号

wechat-account-qrcode