From 01c74ec3d61a0f090d97d9f234658552fe754668 Mon Sep 17 00:00:00 2001 From: Hai Shi Date: Sat, 28 Dec 2024 11:38:29 +0800 Subject: [PATCH] =?UTF-8?q?Update=202024-12-28-=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E8=AF=84=E4=BB=B7.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...50\351\207\217\350\257\204\344\273\267.md" | 48 +++++++++++++++---- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git "a/_posts/2024-12-28-\344\273\243\347\240\201\350\264\250\351\207\217\350\257\204\344\273\267.md" "b/_posts/2024-12-28-\344\273\243\347\240\201\350\264\250\351\207\217\350\257\204\344\273\267.md" index 69449eb..4187bca 100644 --- "a/_posts/2024-12-28-\344\273\243\347\240\201\350\264\250\351\207\217\350\257\204\344\273\267.md" +++ "b/_posts/2024-12-28-\344\273\243\347\240\201\350\264\250\351\207\217\350\257\204\344\273\267.md" @@ -3,7 +3,7 @@ layout: post title: 代码质量评价 category: software engineering catalog: true -published: false +published: true tags: - software engineering time: '2024.12.28 09:58:00' @@ -12,20 +12,50 @@ time: '2024.12.28 09:58:00' # 什么是代码质量? 我们看代码的时候,经常会说这个代码看起来好或者不太好,实际这是一种笼统的说法,实际里面有很多维度信息要进行详细说明,列如:代码可读性、可靠性等。 当然,在不同的业务场景下代码质量的衡量标准是不一样的。如:在云场景下,用户最关注的是资源创建的速度和应用效率,那除了对软件系统的质量要求外, -那就需要特别关注可靠性和性能;但在医疗场景下,比如给患者进行化疗,医生最先关注的是给用户给定进准的药物注入,这时对准确性的重视度会高于可靠性。 +那就需要特别关注可靠性和性能;但在医疗场景下,比如给患者进行化疗,医生最先关注的可能是给用户给定进准的药物注入,这时对准确性的重视度会高于可靠性。(随便举个例子说明一下,如果有不严谨的逻辑,请大家忽略。) # 代码质量为什么重要? -在说这个话题前,我先插入一句诗和一幅画,大家看看能不能找到更好的方式来表达这幅画: -一个词:浮光跃金。 -一幅画: - +在说这个话题前,我先插入一个词和一幅画,大家看看能不能找到更好的词语来表达这幅画? +**一个词**:浮光跃金。 +**一幅画**: + +我猜想大家大概率找不到比“浮光跃金”更好的词来表达这幅画了。 +把这个好词+美景的逻辑投射到代码质量维度,那就是:好的代码能让团队成员干的更轻松开心(看优美和丑陋的代码,我个人感受上确实会有些区别,可能多少会影响到一些工作幸福感)。好的代码也能更好的压榨机器资源,我们也大概率不能找到更好的重构及定义方式。 + +参考文档中的AWS这句话总结听准确的,直接拷贝放这里: +- 高质量的代码可以帮助开发人员重读、构建和重构自己的代码 +- 它可以帮助其他开发人员理解他人的代码以及就他人的代码进行协作 +- 它可以帮助系统架构师或项目负责人检查结构是否符合并协调团队的工作 +- 它可以帮助软件开发中的其他利益相关者(例如安全团队或运营团队)测试、部署和保护代码 +不断累积的经验可以帮助开发人员完善其编码技术和方法,以产生高质量的代码。 # 衡量代码质量的方式有哪些? - +下面这些维度是衡量代码质量比较常用的一些维度,我按我自己理解的优先级来进行划分: +- 第一优先级:围绕人来定义,所有代码都是需要团队每个成员共同配合才能往前迭代,所以我把**可读性**放到第一优先级; +- 第二优先级:围绕业务来定义,需要面对不同业务场景能进行快速迭代且质量有保障,所以我把**可扩展**、**可测试**和**可重复**放到第二优先级; +- 第三优先级:围绕业务属性来定义,不同业务领域对可靠性、性能等有不同的要求,所以放到第三优先级。 + +## 可读性 +To Be Done. +## 可扩展 +To Be Done. +## 可测试 +To Be Done. +## 可重复 +To Be Done. +## 可移植 +To Be Done. +## 可靠性 +To Be Done. +## 性能 +To Be Done. +## 安全性 +To Be Done. # 怎么才能提高代码质量? -各种检查工具、代码交叉检视是常用且有效的方式。我个人比较喜欢的一种方式是看别人写的代码,特别是那些业内软件大拿写的代码,这种过程是一种比较享受的过程, -好的代码看多了,我们或多或少也能依葫芦画瓢。 +学习常用的设计模式和算法、熟练使用各种检查工具、代码交叉检视是常用且有效的方式。 +我个人比较喜欢的一种方式是看别人写的代码以及配合Use Case看历史代码的持续迭代过程,特别是那些业内软件大拿写的代码,这种过程本身就是一种比较享受的过程, +当然,当我们对好的代码和迭代看多了,我们或多或少都能做到依葫芦画瓢。 另外,我很喜欢Tim Peters写的[《Python之禅》](https://zh.wikipedia.org/zh-cn/Python%E4%B9%8B%E7%A6%85),绝大多数建议都是在围绕改进代码质量这个议题来描述的: ```shell 优美优于丑陋,