In defense of not understanding your codebase
3 hours ago
- 软件工程师对代码库的理解有不同的看法:小型、低人员流动率的团队主张完全理解,而大型、高人员流动率的团队则接受部分理解。
- 彼得·诺尔(Peter Naur)的'编程即理论构建'认为代码是程序员'程序理论'的副产品,但他的结论——当理论丢失时应该丢弃代码——对大型系统而言不切实际。
- 由于无数细微特性,大型软件系统无法从头重建;重写必须通过逐步拆分小块进行增量式完成。
- 即使没有原始团队成员,工程师也可以从单一流程开始,逐步扩展理解,从而复兴被遗弃的代码库。
- 在足够大的代码库中,每个人都带着部分错误的理论运作;有效性需要做出有根据的猜测并处理后果。
- 维护代码库理论只是众多工程价值之一,常常为了速度、法律合规或其他优先事项而权衡。
- 大型语言模型阻碍了详细理论的构建,但能快速提供部分理论并实现有效的借力,代表了复杂的权衡。
- 阻碍理论维护的其他因素包括团队人员流动、法律要求、安全补丁和依赖项。