设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者
123425 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 113 讲
设计模式与范式:行为型 (18讲)
设计模式之美
15
15
1.0x
00:00/00:00
登录|注册

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

课堂讨论
写出高质量代码
评价标准
评价维度
代码质量评判

该思维导图由 AI 生成,仅供参考

在我的工作经历中,每当同事评论起项目代码质量的时候,听到的最多的评语就是:“代码写得很烂”或者“代码写得很好”。用“好”“烂”这样的字眼来描述,非常地笼统。当我具体问到底如何烂、如何好的时候,尽管大部分同事都能简单地罗列上几个点,但往往都不够全面、非常零碎,也切不中要害。
当然,也有一些工程师对如何评价代码质量有所认识,比如,好代码是易扩展、易读、简单、易维护的等等,但他们对于这些评价的理解往往只停留在表面概念上,对于诸多更深入的问题,比如,“怎么才算可读性好?什么样的代码才算易扩展、易维护?可读、可扩展与可维护之间有什么关系?可维护中‘维护’两字该如何理解?”等等,并没有太清晰的认识。
对于程序员来说,辨别代码写得“好”还是“烂”,是一个非常重要的能力。这也是我们写出好代码的前提。毕竟,如果我们连什么是好代码、什么是烂代码,都分辨不清,又谈何写出好代码呢?
所以,今天我们就聊一聊关于代码质量评判的相关问题,希望你在学完今天的内容之后,对代码质量的评判有个更加清晰、更加透彻的认识和理解。

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

实际上,咱们平时嘴中常说的“好”和“烂”,是对代码质量的一种描述。“好”笼统地表示代码质量高,“烂”笼统地表示代码质量低。对于代码质量的描述,除了“好”“烂”这样比较简单粗暴的描述方式之外,我们也经常会听到很多其他的描述方式。这些描述方法语义更丰富、更专业、更细化。我搜集整理了一下,罗列在了下面。这些几乎涵盖我们所能听到的描述代码质量的所有常用词汇,你可以看一看。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

评判代码质量是程序员的重要能力之一。本文从多个维度探讨了如何评价代码质量,包括可维护性、可读性、可扩展性、灵活性和简洁性等。代码质量评价需要综合多个因素,具有主观性,需要经验丰富的工程师进行准确评价。最重要的评价标准包括可维护性、可读性、可扩展性、灵活性和简洁性。通过本文,读者可以更清晰、更全面地了解代码质量评判的相关问题,提升自己写出高质量代码的能力。 本文还介绍了代码的可复用性和可测试性,这两个评价标准同样重要。高质量的代码应具有良好的可复用性,减少重复代码的编写,以及良好的可测试性,能够方便地进行单元测试。为了写出高质量的代码,工程师需要掌握面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等编程方法论。这些方法论的最终目的都是为了编写出高质量的代码。 在评价代码质量时,需要综合多个因素,而不是单一维度的评价。最常用的评判代码质量的标准包括可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性。其中,可维护性、可读性、可扩展性是最重要的三个评价标准。要写出高质量代码,工程师需要掌握一些更加细化、更加能落地的编程方法论,这也是后续课程学习的重点。 总之,本文全面介绍了评价代码质量的多个维度和方法,为工程师提升代码质量评判能力提供了重要参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《设计模式之美》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(401)

  • 最新
  • 精选
  • 郑童文
    个人感觉,有的时候为了提高代码的可扩展性和可复用性 就会抽象出好多的接口,类和方法。 然后代码的简洁性和可读性就降低了。不知道我这样的感觉对不对?请问老师如何看待这个问题?

    作者回复: 是的,扩展性和可读性有的时候是相冲突的,后面会讲到的。

    2019-11-12
    3
    46
  • xiong
    所在的公司也很少有code review 的流程,所以有时候都无法评估自己写的代码是好还是坏。这种情况该如何去提高自己的code 水平呢?

    作者回复: 多去看看开源优秀的代码如何写的,我觉得比较有帮助。

    2019-11-11
    5
    21
  • SweetyTang
    争哥,好的代码是不是也得考虑错误处理

    作者回复: 是的!

    2019-11-04
    3
    15
  • 汤小高
    老师,怎么感觉您说的可维护性和可拓展性是同一个东西,都是让未来修改某个功能,某个bug或者新增功能需求更简单? 是不是维护性更针对于现有功能的维护修改,拓展性更针对与未来新增需求的修改?

    作者回复: 扩展主要是指添加功能,维护更广些,添加、修改...可读性和可扩展性都影响到代码的可维护性。除此之外,这些判定标准本身就有点重合,文章中也提到了。

    2019-11-04
    13
  • Y024
    Day003 02 收获金句:“思从深而行从简”。 比较遗憾的是,开头讲了好代码的标准太过泛泛而谈,以为会有量化的标准,结果还是没有。

    作者回复: 你就没认真看 我觉得 说了没量化的标准的

    2019-11-07
    4
    8
  • Tiger
    一直有个疑问,很多人都说一开始写代码尽量不要用设计模式,避免过度设计。要根据业务的发展和当前的场景进行重构代码时再考虑用设计模式。真是这样的吗?

    作者回复: 是的 说的没错 但也不能一概而论 专栏后面会讲到 别急

    2019-11-08
    6
  • 桃翁
    老师,对于更好的写出可测试性的代码TDD我觉得是一种非常好的方式,测试在前必然写出来的代码易于测试,但是写测试用例往往会占用很多的时间,请问老师你是如何看待TDD的?

    作者回复: 可以看下我之前写的这篇文章 https://mp.weixin.qq.com/s/Wv5kNmRBY2ZurFq7Rxv6Kw

    2019-11-08
    3
    3
  • 木子00
    这一篇老师讲的太好了,老师讲的一些自己的问题。我现在也是处于这个阶段。 让我写一个从无到有到系统,或者独立的模块。都不知道从何下手。也看过设计模式,也看过框架源码,知道这么写的,但是让我写就是写不出来,没有一点思路。 学完设计模式之美能改变现在的状况吗? (能说说老师怎么脱离这样的状况吗?)

    作者回复: 后面有几篇实战文章,你可以借鉴一下。

    2019-11-14
    2
  • 张驰
    老师是否可以提供下,您日常工作中CR环节的一些标准呢。目前团队内对代码质量的把控能力一般,CR环节也是最近开始强制执行的,以前都没有,但是整个CR过程有点生搬硬套一些标准了,比如单测覆盖率、编码规范等,这些都比较初级,想了解下google都是如何做CR的。

    作者回复: 抽空写篇文章说说吧

    2019-11-11
    2
  • Coding小先
    代码质量,我觉得首先最重要的是代码规范,还有一个就是代码注释,起码要让自己过段时间后,还有同事能够一眼明白你的代码的作用是什么。另外在架构 代码设计上,扩展性也是非常重要的。有些不好的设计和架构,要添加一个功能得修改很多的代码才行

    作者回复: ������

    2020-11-16
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部