这节内容作者主要介绍如何在项目质量与成本之间做权衡。
建立可持续的代码评审流程
Code review在很多公司都是必须的步骤,它的好处显而易见:
- 尽早发现bug或者设计缺陷
- 增加代码可靠性
- 建立优秀代码设计的正反馈
- 相互熟悉其他人编写的业务逻辑
- 从长期来看,高质量代码能加快迭代速率
团队需要在code review的开销和更快的功能开发上做一点权衡。而随着团队的增长和项目的逻辑日益复杂,code review几乎是不可避免的。
通过抽象来管理复杂度
建立适当的抽象层代码,对于日后的逻辑扩展、复用意义重大。良好的抽象应该具备以下特点:
- 容易学习
- 良好的自描述性
- 很难被误用
- 足够强大以满足需求
- 容易扩展
从自己熟悉的语言入手,从这门语言的官方API入手,到社区最流行的代码库,大公司开源的代码库,从文档到源代码,一步一步深入抽象的设计。
自动化测试
单元测试提供了多人协作下的逻辑正确保证。单元测试为代码的修改,bug的修复,代码的大规模重构提供了保障。
偿还技术债务
在某些业务驱动的场景下,由于时间紧急,常常需要用一些不符合规范的方法来完成编码。当然,时间紧急不是技术债务产生的唯一原因,对于业务场景理解的不透彻也有可能导致不良的设计。适时进行局部代码重构和清理是防止项目失控的必要步骤。