原文链接 优质代码的十诫
1.DRY
对代码进行合理的抽象以提高代码的复用性, 可测试性。
2. 短小的代码
短小的代码具有更好的可读性,可测试性,复用性。将一个大函数分解若干个小函数的组合,可以降低大函数内部的代码的耦合性。
3. 良好的命名规范
使代码具备自解释性,便于阅读,有助于提高协作的效率。
4. 赋予每个类正确的职责
明确类/模块/函数的职责有助于接口的设计,计算机网络七层,以及计算机的体系结构
5. 把代码组织起来
- 物理层组织
目录管理,包管理 - 逻辑层组织
模块的组织,关注于接口设计
6. 单元测试
单元测试是最接近BUG的地方,也是修改BUG成本最低的地方,同样也是决定整个软件质量好坏的成败的地方
注重单元测试,这是代码完成后的第一道防线。
7. 经常重构你的代码
软件开发是一种持续的发现的过程,从而让你的代码可以跟上最新的实际需求的变化。所以,我们要经常重构自己的代码来跟上这样的变化。
- 有大量的单元测试来测试。正如前面所说,重构需要用大量的单元测试来做保障和测试。
- 每次重构都不要大,用点点滴滴的小的重构来代替那种大型的重构。有太多的时候,当我们一开始计划重构2000行代码,而在3个小时后,我们就放弃这个计划并把代码恢复到原始的版本。所以,我们推荐的是,重构最好是从点点滴滴积累起来的。
重构代码以适应变化,通过单元测试来保障重构代码的正确性,通过多次小的重构来完成大的重构。
8. 注重接口,而不是实现
接口注重的是——“What”是抽象,实现注重的是——“How”是细节。接口相当于一种合同契约,而实际的细节相当于对这种合同契约的一种运作和实现。运作是可以很灵活的,而合同契约则需要是相对需要稳定和不变的。如果,一个接口没有设计好而需要经常性的变化的话,那我们可以试想一下,这代来的后果,这绝对会是一件成本很大的事情。所以,在软件开发和调设中,接口是重中之重,而不是实现。然而我们的程序员总是注重于实现细节,所以他们局部的代码写的非常不错,但软件整体却设计得相对较差。这点需要我们多多注意。
稳定的接口来应对变化的细节。