02 | 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?¶
对于程序员来说,辨别代码写得“好”还是“烂”,是一个非常重要的能力。
如何评价代码质量的高低?¶
描述代码质量的所有常用词汇,大致如下所列:
- 灵活性(flexibility)、
- 可扩展性(extensibility)、
- 可维护性(maintainability)、
- 可读性(readability)、
- 可理解性(understandability)、
- 易修改性(changeability)、
- 可复用(reusability)、
- 可测试性(testability)、
- 模块化(modularity)、
- 高内聚低耦合(high cohesion loose coupling)、
- 高效(high effciency)、
- 高性能(high performance)、
- 安全性(security)、
- 兼容性(compatibility)、
- 易用性 (usability)、
- 整洁(clean)、
- 清晰(clarity)、
- 简单(simple)、
- 直接 (straightforward)、
- 少即是多(less code is more)、
- 文档详尽(well- documented)、
- 分层清晰(well-layered)、
- 正确性(correctness、bug free)、
- 健壮性(robustness)、
- 鲁棒性(robustness)、
- 可用性(reliability)、
- 可伸缩性 (scalability)、
- 稳定性(stability)、
- 优雅(elegant)、
- 好(good)、
- 坏(bad)
- ......
代码质量的评判维度是多样的¶
我们很难通过其中的某个或者某几个词汇来全面地评价代码质量。因为这些词汇都是从不同维度来说的。
代码质量高低是一个综合各种因素得到的结论。并不能通过单一的维度去评价一段代码写的好坏。
代码的评判维度并不独立,也不非黑即白¶
不同的评价维度也并不是完全独立的,有些是具有包含关系、重叠关系或者可以互相影响的。而且,各种评价维度也不是非黑即白的。
代码评判带有主观性¶
对一段代码的质量评价,常常有很强的主观性。比如,怎么样的代码才算可读性好,每个人的评判标准都不大一样。这种主观评价的准确度,跟工程师自身经验有极大的关系。
越是有经验的工程师,给出的评价也就越准确。资历比较浅的工程师常常会没有一个可执行的客观的评价标准作为参考,很难准确地判断一段代码写得好与坏。
如果没有人指导的话,自己一个人闷头写代码,即便写再多的代码,代码能力也可能一直没有太大提高。
最常用的评价标准有哪几个?¶
-
可维护性(maintainability)
-
可读性(readability)
-
可扩展性(extensibility)
-
灵活性(flexibility)
-
简洁性(simplicity)
-
可复用性(reusability)
-
可测试性(testability)
如何才能写出高质量的代码?¶
重点回顾¶
- 如何评价代码质量的高低?
代码质量的评价有很强的主观性,描述代码质量的词汇也有很多,比如可读性、可维护性、灵活、优雅、简洁等,这些词汇是从不同的维度去评价代码质量的。
它们之间有互相作用,并不是独立的,比如,代码的可读性好、可扩展性好就意味着代码的可维护性好。
代码质量高低是一个综合各种因素得到的结论。我们并不能通过单一的维度去评价一段代码的好坏。
- 最常用的评价标准有哪几个?
最常用到几个评判代码质量的标准是:
- 可维护性、
- 可读性、
- 可扩展性、
- 灵活性、
- 简洁性、
- 可复用性、
- 可测试性。 其中,可维护性、可读性、可扩展性又是提到最多的、最重要的三个评价标准。
- 如何才能写出高质量的代码?
要写出高质量代码,就需要掌握一些更加细化、更加能落地的编程方法论,这就包含:
- 面向对象设计思想、
- 设计原则、
- 设计模式、
- 编码规范、
- 重构技巧等等