2025-09-04
在走着不断发出尖叫的海军陆战队训练教官、观看海军飞行员撞上钢制甲板以及一直担心因“胜利锦旗”而被责骂的过程中,我学到了一些关于编写优秀代码的宝贵经验。
1987年秋,我被任命为海军少尉。这份任命来源于我在航空军官候补学校(AOCS)接受美国海军陆战队枪炮军士伯恩哈德·琼斯(Bernhard Jones)为期14周的密集的个人指导。在之后的五年里,我在FA-18中队担任航空情报官,负责训练海军飞行员,并且向他们讲解他们在执行任务时可能要面临的威胁。
那些年的经历很大程度上塑造了今天的我,而我在海军服役期间学到的很多经验也延续到了我作为软件开发工程师和开发经理的职业生涯中。
以下是其中最有意义的四条经验。
虽然大多数软件开发并非事关生死,但注重细节对于成功至关重要。编码时,如果关注所有细节——正确的命名、良好的格式、确保涵盖所有极端情况——那么代码将更更易于维护,错误也会更少。今天关注细节,明天就能减少很多的麻烦。
练习俯卧撑的另一大秘诀是团队合作。
军人们很少单独行动。飞机飞行几乎至少是两人一组飞行,而且大多数飞机都有多名机组人员。让一架飞机从航空母舰甲板上起飞需要许多人高度协调的配合。几乎每一步都需要与他人合作才能完成目标。
在软件开发中,一些开发人员独自开发产品,通常是为自己开发。然而,大多数开发人员都是团队的一员,而团队合作对于任何项目的成功都至关重要。无论是结对编程、在 Slack 上解答问题、进行代码审查还是提供培训,软件开发人员都必须与他人合作,才能将项目交付给客户。
我认为编码是一种被低估的沟通方式。我甚至想说,它是开发者沟通最重要的方式。代码不仅是与编译器沟通,还与所有未来维护该代码的开发者沟通。确保自己能够清晰地向一个你可能永远不会见面的人表达自己的想法,这听起来可能有点奇怪,但这正是编写优秀代码的关键所在。
所有海军飞行员都必须严格遵守《海军航空训练与操作程序标准化》(NATOPS)手册,该手册概述了可接受、正确且经过验证的飞机操作方法。飞行员必须对其飞机的《NATOPS》手册了如指掌。该手册被人们称之为“血书”,因为其中的许多程序都是在坠机事故中制定的。
在软件开发领域,我们也拥有很多的“最佳实践”。值得庆幸的是,我们的手册是写在项目事后总结中,而不是实际的实践中。正确的做事方法便是通过错误做法的经验来学习的。一个优秀的开发团队会遵循一套规则——包括代码格式化、代码审查、对象库构建等等——这些规则都是行之有效的成功之道。
汲取的经验教训将成为未来产品运营的蓝图。
海军航空兵的每次飞行都要遵循一套严格的程序:简报会中将讨论飞行中可能发生的所有情况;起飞前要绕飞机走一圈,确保飞机处于良好的工作状态;飞行本身也按照简报进行;最后,对飞行过程中发生的所有情况进行详尽的汇报。
任何做过计划会议、代码审查和任务回顾的软件开发团队想必都不会对这种程序感到陌生。