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

oschina
 oschina
发布于 2019年10月13日
收藏 76

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

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Uber 开放公司内部《Go 语言风格指南》
加载中

精彩评论

橙汁儿
橙汁儿
吴红军
吴红军

最新评论(12

♂茶舞
♂茶舞
这与 google 的又不一样,这么多标准
OSC首席键客
OSC首席键客
go的代码风格都固定了,看了那个截图,好像只是告诉你怎么写会要更好一点。
无爱可葬
无爱可葬
看了一下没什么特别的,都是基本操作,除了那个原子操作基本没用过
冷冷gg
冷冷gg
👍 棒
顾鑫-lygtq
哈哈!英文不好,坐等中文版😄
冰力
冰力
你有能耐自己写个语言或标准库才有资格制定标准。
橙汁儿
橙汁儿
吴红军
吴红军
二进制艺术
二进制艺术
哈哈
鲁鲁托马西
呵呵
1515979434
1515979434
嘿嘿
Andyfoo
Andyfoo
学习
返回顶部
顶部