看 go runtime 和 go 标准库的源码能够快速提升 Go 语言的基础理解,而且能学习一套可能是 Go 团队比较中意的实践代码风格(其实很像 C )。
《 Go 语言设计与实现》 -
https://draveness.me/golang/golang-note -
https://github.com/cch123/golang-notes/tree/master这是 Go 语言设计实现源码分析的系列文章可以看下,注意下文章里对应的 Go 版本可能比较老了。不过关于 Go 的 GC 这两个项目没有讲得很全面,要看的话估计还得再找找。
Go 语言是自举的,所以通过学习 Go 语言本身的源码确实提升很快。
K8S 的源码我个人感觉其实风格不是很 Go ,即便用 Java 重新写一套感觉也没啥违和感。我自己最近在看 VictoriaMetrics , 作者应该算是 Go 性能大师了,可以学到很多内存管理、并发控制、IO 优化的内容,里面也包括一些他自己写的轮子:fastcache 、uint64set 等等,都是挺值得琢磨的,欢迎讨论。
看完 VM 以及作者的其他项目(如 fasthttp )我可能会去看 NATS ,因为作为 Go 实现的消息队列它已经实现了很多对标 Kafka 的功能,所以也看看设计,以及思考性能上有没有优化空间。