主要观点:作者与一位科技 CEO 和工程师交谈,了解到一种偶尔使用的软件开发方法,并由此引发对其他启发式和概括的思考。
关键信息:
- 软件开发方法:每天开始时处理功能,若当天未完成则全部删除第二天重新开始,可保留单元测试;若几天后无法实现功能,先做基础工作等再回来处理。该方法与 90 年代末 00 年代初的极限编程运动有关。
- “Write everything twice”:建议初级工程师将代码写两遍,意外发现重写代码时间仅为初始实现的 25%,且质量更好,“每天重新开始”方法是其更极端版本。
- “Quantity has a quality all of its own”:成为好的软件工程师要积累 100K 行代码,重复解决相同问题对保留知识有益。
- 与“gun to the head”启发式比较:通过设定时间压力让人们想出不同解决方案,虽实际时间不一定为设定时间,但新方案往往更好。
- 路径寻找:这些启发式与不同路径寻找算法有类比关系,成为更好的工程师就是在问题空间中成为更好的路径寻找者,可能有通用理论但未在本文探讨。
重要细节: - 作者因笔记本电脑故障意外发现“写两遍”方法的好处。
- “gun to the head”启发式在实践中很有效,能诱导人们想出更快的解决方案。
- 各种路径寻找算法各有优缺点,与工程启发式类似。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。