『曹大带我学 Go 』系列文章汇总

Posted qcrao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『曹大带我学 Go 』系列文章汇总相关的知识,希望对你有一定的参考价值。

你好,我是小 X。

之前写了 11 篇跟着曹大学 Go 的文章,今天来汇总一下。

曹大的功力深厚,但能学到多少全看自己。第一期 Go 训练营也早就结束了,但学习还得继续。后面我也会继续发布这个系列,希望大家多多支持。

下面我来一一回顾已经发布的文章,并给出汇总,没看过的可以看起来。

第 1 篇,调度的本质,上课的时候有种醍醐灌顶的感觉,Go 调度没什么神奇的,本质就是一个生产者-消费者模型。各种策略就是如何让消费者消费得更快,宏观表现就是 Go 的执行效率更高。

第 2 篇,迷惑的 goroutine 执行顺序,通过两个有意思的代码片段引出“三级队列”,开始有点懵,想个几秒钟后才恍然大悟。很有可能某个无聊的面试官会面你这种题,知道考点也就不怕了。

第 3 篇,如何用汇编打同事的脸,通过 go tool 工具生成汇编、dlv 打断点调试让一些“谣言”不攻自破。我们除了可以更清楚地看到执行 Go 代码时底层做了一些什么,还能顺带打一下同事的脸。

第 4 篇,初识 ast 的威力,抽象语法树非常有用。Go 提供了一些很好的工具让我们直接上手用,如果学会了,在工作中的某些场景下有不小的帮助。

第 5 篇,哪里来的 goexit,深入源码分析了 goroutine 的退出过程,同时也再次展示了 dlv 工具的使用。

第 6 篇,技术之外,跟着曹大不光能学习技术,还能学到一些场外技能。比如搜索技巧、做动画的能力。文章最后也展示了解答第 2 篇文章的一个动画,非常生动,看完秒懂。

第 7 篇,如何优雅地指定配置项,在一些第三方库提供的接口里见的比较多,它还有个专门的名字:函数选项式。

第 8 篇,一个打点引发的事故,通过一个真实的线上事故带出如何用 pprof 来发现问题,看完后在脑子里就多一个案例,说不定下次就能用上。这个例子在曹大的博客里也有,事故发生时我的第一反应就是 metrics 打点引起的,就因为我之前看过了。

第 9 篇,开始积累自己的工具库,推荐了几个常用的工具库及命令,本来还想出第二期,但读者反响不太行,搁置了。如果还有想看的朋友,给点反馈。

第 10 篇,如何给 Go 提性能优化的 pr,曹大在上家公司期间,对 tls 做了一些优化,这篇文章还原了优化的效果,也讲了优化的原理。

第 11 篇,从 map 的 extra 字段谈起,当 map 的 key/value 是非指针类型时,GC 不会对所有的 bucket 进行扫描。当线上服务使用了一个超大的 map ,如果能优化成非指针类型,会提升性能。

最后,将目前已经发布的文章汇总列出来,祝大家阅读愉快。

第 1 篇,调度的本质

第 2 篇,迷惑的 goroutine 执行顺序

第 3 篇,如何用汇编打同事的脸

第 4 篇,初识 ast 的威力

第 5 篇,哪里来的 goexit

第 6 篇,技术之外

第 7 篇,如何优雅地指定配置项

第 8 篇,一个打点引发的事故

第 9 篇,开始积累自己的工具库

第 10 篇,如何给 Go 提性能优化的 pr

第 11 篇,从 map 的 extra 字段谈起

好了,这就是今天全部的内容了~ 我是小X,我们下期再见~

感谢关注!一线互联网工程师和你一起“精进”职业技能!码农生涯,我们结伴同行~~

希望技术变得有温度!加油~~

目前专注在 Go 语言、后端、性能优化,GTD、效率工具控。开源电子书《Go Questions》已经有 3k star 了。期待交流,一起进步!

喜欢就点个在看再走吧

以上是关于『曹大带我学 Go 』系列文章汇总的主要内容,如果未能解决你的问题,请参考以下文章

曹大带我学 Go(10)—— 如何给 Go 提性能优化的 pr

曹大带我学 Go—— 如何用汇编打同事的脸

曹大带我学 Go—— 技术之外

曹大带我学 Go—— 如何优雅地指定配置项

曹大带我学 Go——调度的本质

曹大带我学 Go(12)—— 面向火焰图编程