Uber 开放公司内部《Go 语言风格指南》

2019-10-13 14:05

Uber 近日开放了其公司内部使用的《Go 语言风格指南》。

Uber 介绍,“风格”也就是支配我们代码的惯例,该指南出现在 Uber 公司内部是为了使代码库易于管理,同时让工程师有效地使用 Go 语言特性。

文档中详细描述了在 Uber 编写 Go 代码的注意事项,具体列出来的是“Dos and Don'ts of writing Go code at Uber”,也就是不该怎样写,而应该怎样写 Go 代码。

其中许多约定是 Go 的通用准则,而其它准则则参考了外部,比如这两个知名的资源:

指南涵盖了“指导方针”、“性能”、“风格”与“模式”几个大模块,下设有各项具体的注意事项:

以“Defer to Clean Up(使用 defer 清理)”小节为例,该指南这样描述:

使用 defer 清理资源,例如文件和锁。

Bad Good

p.Lock()
if p.count < 10 {
  p.Unlock()
  return p.count
}

p.count++
newCount := p.count
p.Unlock()

return newCount

// easy to miss unlocks due to multiple returns

p.Lock()
defer p.Unlock()

if p.count < 10 {
  return p.count
}

p.count++
return p.count

// more readable

defer 的开销非常小,只有在可以证明函数执行时间处于纳秒级的程度时,才应避免使用。使用 defer 可以获得更好的代码可读性,而它的开销相比来说可以忽略不计。对于具有更多更大内存访问的方法来说 defer 会显得更加重要。

详情查看该指南:

https://github.com/uber-go/guide/blob/master/style.md


路过

雷人

握手

鲜花

鸡蛋

周一至周日9:00-18:00

反馈建议

service#bjjem.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! © 2001-2019