知道什么时候不编码可能是程序员可以学习的最重要的技能。
保持编码但知道何时拒绝编码。
编写的每一行代码的开销
- 必须由其他程序员阅读和理解的代码
- 必须进行测试和调试的代码
- 代码会增加软件中的缺陷
- 代码可能会在将来引入新的 bug
编写代码引出的问题
- 加剧代码腐烂:代码很糟糕,它腐烂了,需要定期维护,它有需要找到的错误,新功能意味着必须调整旧代码。
- 开发维护成本:你拥有的代码越多,隐藏错误的地方就越多。调试时间或构建时间较长。新员工理解您的系统所需的时间越长。如果你必须重构,那么有更多的东西要移动。
- 反 KISS 原则:此外,更多代码通常意味着更少的灵活性和功能。这是违反直觉的,但很多时候,一个简单,优雅的解决方案比由较少人才的程序员制作的代码混乱更快,更通用。
- 增加沟通成本:代码由工程师生成。要制作更多代码,需要更多工程师。工程师有 n² 通信成本,他们添加到系统中的所有代码,同时扩展其功能,也增加了一大堆成本。
何时选择不编码
- 了解软件的用途及其核心定义是了解何时不进行编码的第一步。
- 切勿扩展软件的用途。
- 知道何时不进行编码会使代码库变小。
- 保持编码但知道何时拒绝编码。