判断代码质量的好坏的维度

判断代码质量的好坏的维度

  • 1 可维护性maintainability
  • 2 可读性readability
  • 3 可扩展性extensibility
  • 4 灵活性flexibility
  • 5 简洁性(simplicity)
  • 6 可复用性(reusability)
  • 7 可测试性testability
  • 8 总结

1 可维护性maintainability

维护:修改bug,修改老的代码,添加新的代码
代码易维护:在不破坏原有的代码设计,不引入新的bug的情况下,能够快速地修改或者添加代码
代码不易维护:修改或者添加代码需要冒着极大的引入新bug的风险,并且需要花费很长的时间才能完成;

可维护性很难量化,偏向于代码整体的评价标准;
代码质量的评价有很强的主观性;

2 可读性readability

  • “任何傻瓜都会编写计算机能理解的代码。好的程序员能够编写人能够理解的代码。”

  • 不管是修改 bug,还是修改添加功能代码,我们首先要做的事情就是读懂代码。代码读不大懂,就很有可能因为考虑不周全,而引入新的 bug。

  • 需要看代码是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等等。无法量化可读性。

3 可扩展性extensibility

“对修改关闭,对扩展开放”

  • 代码的可扩展性表示,我们在不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。说直白点就是,代码预留了一些功能扩展点,你可以把新功能代码,直接插到扩展点上,而不需要因为要添加一个功能而大动干戈,改动大量的原始代码。

4 灵活性flexibility

如果一段代码易扩展、易复用或者易用,我们都可以称这段代码写得比较灵活。所以,灵活这个词的含义非常宽泛,很多场景下都可以使用

5 简洁性(simplicity)

尽量保持代码简单

思从深而行从简,真正的高手能云淡风轻地用最简单的方法解决最复杂的问题。这也是一个编程老手跟编程新手的本质区别之一。

6 可复用性(reusability)

  • 面向对象特性的继承、多态存在的目的之一,就是为了提高代码的可复用性;
  • 设计原则的单一职责原则也跟代码的可复用性相关;
  • 重构技巧的的解耦、高内聚、模块化等都能提高代码的可复用性。

可见,可复用性也是一个非常重要的代码评价标准,是很多设计原则、思想、模式等所要达到的最终效果。

7 可测试性testability

码的可测试性是一个相对较少被提及,但又非常重要的代码质量评价标准。代码可测试性的好坏,能从侧面上非常准确地反应代码质量的好坏。代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。

8 总结

  • 最常用到几个评判代码质量的标准是:可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性。其中,可维护性、可读性、可扩展性又是提到最多的、最重要的三个评价标准。
  • 要写出高质量代码,我们就需要掌握一些更加细化、更加能落地的编程方法论,这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等等

你可能感兴趣的:(设计模式)