一架梯子,一头程序猿,仰望星空!
Golang开发规范

Golang开发规范

本主题整理社区关于Golang的项目规范、编码风格、设计规范资料,方便大家参考,不同的团队针对自己的情况可以自由定制合适的规范。
  • 1. Uber Golang 编码规范介绍

    Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 GitHub,经过一年的积累和更新,该规范已经初具规模,并受到广大 Gopher 的关注。本文是该规范的中文版本。

  • 3. 指导原则-指向 interface 的指针

    您几乎不需要指向接口类型的指针。您应该将接口作为值进行传递,在这样的传递过程中,实质上传递的底层数据仍然可以是指针。

  • 10. 指导原则-主函数退出方式

    Go 程序使用 os.Exit 或者 log.Fatal* 立即退出 (使用panic不是退出程序的好方法,请 不要使用 panic。) 仅在main() 中调用其中一个 os.Exit 或者 log.Fatal*。所有其他函数应将错误返回到信号失败中。

  • 11. 指导原则-不要一劳永逸地使用 goroutine

    Goroutines 是轻量级的,但它们不是免费的: 至少,它们会为堆栈和 CPU 的调度消耗内存。 虽然这些成本对于 Goroutines 的使用来说很小,但当它们在没有受控生命周期的情况下大量生成时会导致严重的性能问题。

  • 12. 性能优化原则

    本节从Golang编码角度,定制有利于改善性能的编码指导原则。

  • 14. Go项目目录结构规范最佳实践

    这是一个针对Go应用程序项目的基本布局规范。它**`并不是由Go核心开发团队定义的官方标准`**;他是社区GO项目比较常用的目录布局。