喜提 redir contributor

看多了 Go 源代码,看一看应用,尤其是比较短小且有趣的应用代码,感觉很有意思,而且举重若轻。

如果顺带修一下小的错误,成为 Contributor,那就更多了一种成就感。就像杨文前几天成为 Go Contributor 那样,从小处开始,慢慢提升技术含量,总有一天,慢慢成为真正的 Contributor,像曹大那样

阅读全文

深度阅读之《Concurrency in Go》

作为一个终身学习者,输入和输出是必不可少的。输入多了之后,会发现很多中文文章很难读,可能还有很多错漏之处。不客气地说,输入的是垃圾,输出的只能是垃圾。

曹大经常说需要多看英文资料,包括各种新出的英文书、文章等等,这从他的书单也可以看出来。我自己的情况是:英文资料读的不多,英文技术书则基本就没完整地读过一本。之前在写文章的过程中,还是看了一些英文文章,收获很大。

阅读全文

《Linux 性能优化》读书笔记

第九周

最后一周专栏推荐了一些书,讲了一些用户的故事。第一次看还是很激动的,这次重读感觉还好。推荐的书好些都没看过,CSAPP 也只是过了一遍,没有细致地钻研。

阅读全文

《Head First 设计模式》读书笔记

第一章 设计模式入门

使用模式最好的方式是:把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。

阅读全文

深度解密Go语言之sync.map

工作中,经常会碰到并发读写 map 而造成 panic 的情况,为什么在并发读写的时候,会 panic 呢?因为在并发读写的情况下,map 里的数据会被写乱,之后就是 Garbage in, garbage out,还不如直接 panic 了。

是什么

Go 语言原生 map 并不是线程安全的,对它进行并发读写操作的时候,需要加锁。而 sync.map 则是一种并发安全的 map,在 Go 1.9 引入。

阅读全文

“���”引发的线上事故

最近遇到了一起依赖升级 + 异常数据引发的线上事故,教训惨痛,本文对此进行回故和总结。

背景

起因是我们使用的服务框架版本比较老,GC 次数的 metrics 打点一直为 0,咨询了相关同学后,决定升级框架。升级的过程中,出现了 use of internal package xxx not allowed 的报错,又咨询了一下相关同学后,尝试使用 go mod 解决。

阅读全文