设计模式学习之如何评判代码质量
评判的标准有很多,各种各样的维度,下面主要通过几个常见的维度去分析
-
可维护性(maintainability)
维护性的重要性不言而喻,工程师大部分的时间都在代码的维护上,修改原代码,添加新功能,这个时候代码的维护难易程度就显得格外重要。
影响维护性的因素有很多,比如代码的可读性,结构是否清晰,文档是否齐全,业务复杂度,代码量,拓展性等。但是这些大部分主观性都比较强,从侧面说,如果代码修改,新增比较容易完成,那可维护性就是好的。 -
可读性(readability)
代码可读性是最重要的评判指标之一,代码被阅读的次数远远大于被编写和执行的次数。那什么样的代码是可读性好的呢?我们需要看代码是否符合规范,命名是否规范,注释是否详细,函数名是否长短适中,是否符合高内聚低耦合等,最重要的是在code review时候,能否很容易的被理解,如果这个过程中会产生疑问,不能够理解,那可读性还有待提高。 -
可拓展性(extensibility)
可拓展性也是很重要的指标之一,可拓展性,也是决定可维护性难易程度。是在应对新的需求时,我们在不修改或者只需要修改少量代码即可实现新加的需求。一个重要的原则是“对修改关闭,对拓展开放”。 -
灵活性(flexibility)
灵活性的概念更是抽象,比如我们说一个拓展性很好的代码,新增功能完全不需要修改原有代码,只需要在预留的拓展点上插入新的功能即可,这可以说代码狠灵活。如果一段代码易拓展,易复用,我们就可以说这个代码狠灵活。 -
简洁性(simplicity)
KISS原则,Keep It Simple Stupid,保持代码的简洁,可读。用最简单的代码去实现复杂的逻辑。 -
可复用性(reusability)
重要的DRY原则–Don‘t Repeat Yourself。也是继承和多态存在的目的之一,让代码可复用性强,减少冗余。 -
可测试性(testability)
代码可测试性虽然很少被提及,但是重要性也不小,一个代码如果很难写单元测试去测,那证明这个接口设计的有问题,侧面反映该接口代码质量问题。