02.从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?

02 | 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?

如何评价代码质量的高低?

  实际上,咱们平时嘴中常说的“好”和“烂”,是对代码质量的一种描述。但是单纯的用“好”或者“烂”不足以真正的表述代码的质量情况。我们可以更专业更丰富的用以下词语来表述代码:

灵活性()、可扩展性()、可维护性、可读性()、可理解性()、易修改性()、可复用(reusability)、可测试性(testability) 、模块化(modularity) 、高内聚低耦合(highcohesion loose coupling) 、高效(high effciency) 、高性能(high performance) 、 安全性(security) 、 兼容性(compatibility) 、 易用性(usability) 、 整洁(clean) 、 清晰(clarity) 、 简单(simple) 、 直接(straightforward) 、 少即是多(less code is more) 、 文档详尽(well-documented) 、 分层清晰(well-layered) 、 正确性(correctness、 bugfree) 、 健壮性(robustness) 、 鲁棒性(robustness) 、 可用性(reliability) 、 可伸缩性(scalability) 、 稳定性(stability) 、 优雅(elegant) 、 好(good) 、 坏(bad) 

  实际上,我们很难从某方面来评价一段代码质量的高低。对代码质量的评价,常常有很强的主观性。正因为这种主观性,使得代码评价的准确度,跟工程师的自身经验有极大的关系。

最常用的评价标准有哪些?

1、可维护性(maintainability )

如果代码中bug容易修复,修改、添加功能能够轻松完成,那我们就可以主观的认为代码对我们来说易维护。相反,如果修改一个bug,修改、添加一个功能,需要花费很长的时间,那我们就主观的认为代码对我们来说不易维护。

2、可读性( readability

  个人认为:代码可读性应该是评价代码质量最重要的标准之一。

  那我们又改如何评价一段代码的可读性呢?

我们需要看代码是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等等。

3、可扩展性( extensibilty

  可扩展性也是一个评价代码质量非常重要的标准。 它表示我们的代码应对未来需求变化的能力。跟可读性一样, 代码是否易扩展也很大程度上决定代码是否易维护。 那到底什么是代码的可扩展性呢?
代码的可扩展性表示, 我们在不修改或少量修改原有代码的情况下, 通过扩展的方式添加新的功能代码。 说直白点就是, 代码预留了一些功能扩展点, 你可以把新功能代码, 直接插到扩展点上, 而不需要因为要添加一个功能而大动干戈, 改动大量的原始代码。

4、灵活性( flexibility)

  实际上,灵活是一个挺抽象的评价标准,要给灵活下定义也挺难得。

  如果一段代码易扩展、易复用或者易用,我们都可以称这段代码写的比较灵活。

5、简洁性( simplity)

  有一条非常著名的设计原则, 你一定听过, 那就是KISS原则: “Keep It Simple, Stupid”。 这个原则说的意思就是, 尽量保持代码简单。 代码简单、 逻辑清晰, 也就意味着易读、 易维护。 我们在编写代码的时候, 往往也会把简单、 清晰放到首位。

6.可复用性( reusability)  

  代码的可复用性可以简单地理解为, 尽量减少重复代码的编写, 复用已有的代码。 

7.可测试性( testability)

代码可测试性的好坏, 能从侧面上非常准确地反应代码质量的好坏。 代码的可测试性差, 比较难写单元测试, 那基本上就能说明代码设计得有问题。 

如何才能写出高质量的代码?

  我相信每个工程师都想写出高质量的代码, 不想一直写没有成长、 被人吐槽的烂代码。 那如何才能写出高质量的代码呢? 针对什么是高质量的代码, 我们刚刚讲到了七个最常用、 最重要的评价指标。 所以, 问如何写出高质量的代码, 也就等同于在问, 如何写出易维护、 易读、 易扩展、 灵活、 简洁、 可复用、 可测试的代码。
  要写出满足这些评价标准的高质量代码, 我们需要掌握一些更加细化、 更加能落地的编程方法论, 包括面向对象设计思想、 设计原则、 设计模式、 编码规范、 重构技巧等。 而所有这些编程方法论的最终目的都是为了编写出高质量的代码。


 

重点回顾

1、如何评价代码质量的高低?

  代码质量的评价有很强的主观性, 描述代码质量的词汇也有很多, 比如可读性、 可维护性、 灵活、 优雅、 简洁等, 这些词汇是从不同的维度去评价代码质量的。 它们之间有互相作用, 并不是独立的, 比如, 代码的可读性好、 可扩展性好就意味着代码的可维护性好。 代码质量高低是一个综合各种因素得到的结论。 我们并不能通过单一的维度去评价一段代码的好坏。

2.最常用的评价标准有哪几个?

  最常用到几个评判代码质量的标准是: 可维护性、 可读性、 可扩展性、 灵活性、 简洁性、 可复用性、 可测试性。 其中, 可维护性、 可读性、 可扩展性又是提到最多的、 最重要的三个评价标准。

3.如何才能写出高质量的代码?

  要写出高质量代码, 我们就需要掌握一些更加细化、 更加能落地的编程方法论, 这就包含面向对象设计思想、 设计原则、 设计模式、 编码规范、 重构技巧等等, 这也是我们后面课程学习的重点。


课堂讨论

除了我今天提到的这些, 你觉得还有哪些其他的代码评价标准非常重要? 聊一聊你心目中的好代码是什么样子的?

 

个人觉得代码的稳定性也是评价代码好坏的一项标准。因为只有代码稳定运行、才能发挥它的价值。

 

posted @ 2020-02-16 17:02  源问三生  阅读(1268)  评论(0)    收藏  举报