写代码时,一定要使用 linter。
现代编程语言的特性过于丰富,设计上做不到纯粹和最优,总是有很多办法写出有问题的 bug。Linter 会对代码中不好的写法做提示和警告。比如这个代码(来自 这里):
var wg sync.WaitGroup
for i := 0; i < 5; i++ {
go func() {
wg.Add(1)
// do something...
wg.Done()
}()
}
wg.Wait()
linter 会告诉你 wg.Add(1)
不应该放在协程内,因为会引发 data races。但人眼可能没法马上分辨出来。
好的 linter 就是在教你写代码。