皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

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

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

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

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

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

其中许多约定是 Go 的通用准则,而其它准则则参考了外部资源:

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

Uber 开放公司内部《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

转自 https://www.oschina.net/news/110525/uber-go-style-guide