真正理解awesome-go-style,要从它处理的任务开始:汇总 Go 语言代码风格指南、惯用写法和工程规范的资源清单。在软件开发场景里,常见问题是依赖、接口和异常处理往往比主路径更影响采用,这正是评估时需要盯住的地方。先在隔离分支完成一个可回滚的小任务更稳妥;过程中要观察安装步骤、接口契约、测试结果和错误信息,失败也应能解释原因。如果团队属于需要可检查开发流程而非单次演示的工程师,它有继续测试的理由;否则先看替代方案会更省时间。
这是 Go 风格指南的集合。
请务必阅读编写工程 guidelines 在尝试批发采用其中之一之前。
(有关这些的更多评论,请参阅我的博客文章 惯用 Go 资源)
经典
谷歌员工讲座
Go 维基页面
非 Google 员工
进一步阅读
Corporate/Project-specific 风格指南
代码审查的一般提示:
我自己对 TODO 注释的最佳实践的尝试(摘自现有的 Go 实践,但大多没有记录):
// For TODOs, BUGs, and NOTEs please use the standard form:
//
// // TODO(username): ...
//
// The username (generally yours) means "for more information see", not
// "I claim responsibility for fixing this." Please use TODO rather than FIXME,
// XXX, HACK, etc. This limits the number of things to grep for.
//
// * TODO denotes missing features or functionality
// * BUG denotes known broken code; these are displayed in godoc
// * NOTE is used to highlight a particularly important or subtle section of code
// * SECURITY and SECBUG are used for security related notes and issues
如果您有错误跟踪器,TODO(bug#) 可能更有用,因为它们可能 保持静态,而维护人员随着时间的推移而移动。 同样,包括日期或 评论中的发布版本可以确保 TODOs 在适当的时候重新访问 次。