代码质量"好"和"坏"指什么?
"好"可以表示代码的质量高,"坏"表示代码的质量低。
代码质量"高"又是指什么?
代码质量高指代码:可维护性、可读性、可扩展性、灵活性、简洁性、可复用、可测试性。其中可维护性、可读性、可扩展性是最重要的三个指标。
可维护性
可维护性是一个主观性很强的评判标准,因为熟悉系统的资深工程师可能会任务易维护,但是资历浅的工程师就会认为难维护。
- 所谓可维护性就是指,在不破坏原有代码设计、不引入新的
BUG
的情况下,能够快速地修改或者添加代码。 - 所谓代码不易维护就是值,修改或者添加代码需要冒着极大的引入新
bug
的风险,并且需要花费很长的时间才能完成。
可读性
代码的可读性从如下几个方面来进行评价。
- 是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等。
但是最简单的评价标准就是让同事来做Code Receive
,如果同事能够轻松的读懂你的代码,那就是可读性很好,反之就是需要改善代码了。
可扩展性
- 可扩展性表示,我们在不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。
灵活性
代码灵活性主要提现在易扩展方面。
简洁性
我们要遵从KISS
原则,代码要尽可能的简单;但是思从深而行从简,真正的高手能云淡风轻地用最简单的方法解决最复杂的问题。这也是一个编程老手跟编程新手的本质区别之一。
可复用性
- 可复用性是很多设计模式、思想、原则所要达到的最终效果。
可测试性
- 可测试就能从侧面上非常准确地反应代码质量的好坏。
要写出满足上述评价标准的高质量代码,我们需要掌握一些更加细化、更加能落地的编程方法论,包括面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等。
如:
- 面向对象中的继承、多态能让我们写出可复用的代码;
- 编码规范能让我们写出可读性好的代码。
- 设计原则中的单一职责、DRY、基于接口而非实现、里氏替换原则等可以写出易复用、灵活、可读性好、易扩展、易维护的代码;
- 设计模式可以写出易扩展的代码。
- 持续重构可以时刻保持代码的可维护性。