
大家好,我是Tony Bai。
在阔别公众视野数年后,Go 社区的传奇人物 Dave Cheney 终于重返 GopherCon Europe 的舞台,发表了一场备受瞩目的复出首谈(注:我印象中的回归首谈^_^)。这场题为《那些我反复强调的 Go 编程之事》的演讲,没有追逐时髦的技术热点,而是选择回归编程的本源,分享了他十五年 Go 编程生涯中,那些被反复实践、验证并沉淀下来的核心理念。

本文将和大家一起深入解读这场演讲的三大核心支柱:命名、初始化与流程控制、以及辅助函数,并探讨为何这些看似简单的模式,却是编写可读、可维护、可测试 Go 代码的基石。
引言:一位 Go “哲人”的回归与沉淀
对于许多 Go 开发者而言,Dave Cheney 的名字不仅代表着一位高产的贡献者,更像是一位编程哲学的布道者。在他“消失”的几年里,社区依旧在流传和实践着他提出的诸多模式。因此,当他重返 GopherCon Europe 2025的舞台时,整个社区都在好奇:他反复强调的那些 Go 编程理念,变了吗?
答案既是“没有”,也是“更加深刻了”。
正如他在开场时所言,这次演讲是他对自己为多家公司编写了超过十年 Go 代码的经验总结,是他对 Peter Bourgon 经典演讲《Ways to do things》的致敬,更是一次对他自己编程风格的提纯与升华。他所分享的,正是那些在无数次代码审查、项目重构和生产救火中,被他反复提及、反复实践的编程模式。这些“重复之事”,构成了他编程哲学的坚实内核。

支柱一:命名 —— 程序的灵魂与第一印象
“我们应该执着地、狂热地关注程序中使用的每一个名字。” 演讲开篇,Dave 便直指编程的核心——命名。它涵盖了变量、常量、包、类型、方法和函数,是代码清晰度的源头。
告别“短标识符”的圣战
对于 Go 社区经久不衰的“短标识符 vs. 长标识符”之争,Dave 引用了 Andrew Gerrand 的智慧之言,并将其作为命名第一法则:
“最好的标识符,是能够描述其存在理由的最短的那个。”
这意味着,名称的长度应与其生命周期和作用域成正比。一个只活几行的循环变量用 i 即可,而一个贯穿整个包的重要配置,则需要一个描述性的全名。
重要的部分放前面
“你不是在写惊悚小说”,Dave 强调,标识符中最重要的、最独特的部分应该放在前面,而不是让读者猜到最后。特别是在同一作用域内有多个同类事物时,清晰的前缀至关重要。
包内外视角的二元性与一致性约定
一个常见的问题是,包的作者和消费者对“好名字”的看法不同。在包内,request 可能是一个合理的变量名;但在包外

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



