《JavaScript专家编程》——9.3 为什么要度量代码质量

9.3 为什么要度量代码质量

“我不能为代码质量而索价。”这是我问我的朋友关于这个问题的想法时,他的原话。他的意思是,代码质量主要是对程序员有利,而对客户来说是一种无形的税收。我能理解他的观点;我有几次经验,其中一个潜在客户将目光投向了我引以为傲的有关测试的方法论上。我的朋友接着说,“客户支付的是结果,而不是过程。当我买票到西南部,我付的钱是为了到达我的目的地,而不是为了乘坐飞机。”这句话听起来好像有点道理,但我会在这一节讨论度量代码质量并不会让你失去竞争优势, 而会成为你的竞争优势。

管理顾问Tom Peters曾说过:“能度量的事情就能完成。”度量在当前上下文中的意思是往前看以便预测变化。通常测试和质量测量只是在出了问题后才执行的,类似于验尸。而当把它应用在开发过程中时,它便能告诉你项目的健康状况。它也可以暗示未来负面事件发生的可能性。请看下面的方式,代码质量不仅可以提高你的代码,而且可以提高你的项目底线:

  • 技术债务是一个隐喻,描述在时间、金钱和资源方面的成本增加,这些是坏的代码随着时间的推移从项目中抢走的资源。有很多质量指标,包括代码复杂度分析,可以识别你的软件代码的债务范畴。
  • 有几个指标(如Halstead指标,我将在后面谈到),可以暗示未来需要花费多少努力在维护你的代码库上。了解了这一点可以让你对未来的改进做出准确地预算。
  • 许多代码质量度量方式试图通过代码来了解来龙去脉。这些方式可以识别存在缺陷的可能性,并能识别这些缺陷的潜在位置。当评估其他团队的代码时,这些工具会特别有用,因为它们可以像地雷探测器一样,从算法上扫描功能的未知领域。
  • 发现新bug的能力很重要,知道什么时候可以停止写测试也一样重要。许多著名的开发者已经证明,测试不是免费的2,所以知道何时停止可以节省资金。许多代码质量的工具可以启发你是否已经达到了一个合适的测试覆盖率。
  • 拥抱代码质量的度量是预防性维护的一种形式。我已经听到人们在轻蔑地谈论代码质量,说这就像刷牙。在某种程度上来说,他们是对的,本质上说,质量本来就很难在以后添加,就像刷牙不会摆脱现有的蛀牙一样。

现在有了对代码质量的基线,你有一个有效的定义,不仅能理解质量该如何度量,也能明白为什么应该这样做。在下一节中,我将解释你在追求质量时所用到的各种工具和技术。

时间: 2024-09-09 07:11:16

《JavaScript专家编程》——9.3 为什么要度量代码质量的相关文章

《JavaScript专家编程》——9.2 如何度量质量

9.2 如何度量质量 你正在为质量寻找一个可用的定义,但因为它们涉及到编程,所以需要首先考虑它的各个方面.通常会将这些方面表示为软件度量: 软件度量是一个软件在某些属性或其规格上的度量.由于定量度量在所有科学中都是必不可少的,因此计算机科学从业者和理论家通过不断努力,将类似的方法引入软件开发中.我们的目标是获得客观的.可重复的和可量化的度量,这可能包含很多有价值的实践,包括进度规划.预算规划.成本估算.质量保证测试.软件调试.软件性能优化以及人员任务分配优化. 我已经努力总结出六个指标,来度量代

《JavaScript专家编程》——导读

**前言**在我看来,好的技术书籍是磁带.藏宝图和现场札记内容的混合体.本书就是我灌注了很多心血而将这些不同形式融为一体的一本书. 老一辈的人还记得,磁带内容是由很多歌曲组成的.这些磁带经常被作为礼物送给朋友.恋人.人们会挑选一些个人喜欢的歌,或者围绕某个主题组织在一起的歌,录入这盘磁带中.通常,当听磁带的人听到这些歌时,这些歌就会勾起人们对录制者的记忆.这本书就是一盘我录给你们的JavaScript方面的磁带.这些章节包括JavaScript中我喜欢的一些方面,也包括不容易被理解的主题,因为这

《JavaScript专家编程》——9.4 度量JavaScript代码质量

9.4 度量JavaScript代码质量 为了让计算精度上升到最高,客观质量分析以程序化的方式对代码进行分析.这项任务可以使用编程工具完成,这些工具能够在多种情况下评估代码,根据各项指标得到最终的质量得分.本节介绍了静态代码分析,这种方法非常适合评估JavaScript的质量. 静态代码分析 静态代码分析就是不通过运行代码来分析代码的过程.静态分析看起来非常像一个文本编辑器的拼写检查器.拼写检查器扫描文档的正文来寻找错误和含糊之处,而并不需要了解文本的意义.同时,静态代码分析从功能上分析源代码的

《JavaScript专家编程》——9.5 小结

9.5 小结 本章介绍了JavaScript代码质量的必要性及其原因.一个程序的质量往往会影响程序员维护.改进甚至是否有能力完全了解源代码.质量差的代码通常被称为技术债,剥夺了项目的时间和资源,而这些时间和资源用在其他地方能更好地发挥作用.然而,编程往往是一门跨越了艺术和科学之间的学科,这使得对质量的定义变的更为复杂.而且,质量又是从主观和客观上的双重度量. 有这样一种观点认为,一个人所在时代的文化,以及他们的个人经历都会对质量产生影响.这种观点将质量描述为具有"内在卓越"的东西,只有

《JavaScript专家编程》——第9章 代码质量 9.1 定义代码质量

第9章 代码质量 质量不是一种行为,而是一种习惯. --Aristotle 写高质量的JavaScript是什么意思?质量能度量吗?还是说它是一个主观感受,类似于美和艺术的柏拉图式的理想?程序员往往会在质量的主观和客观理解之间摇摆不定.他们提出了诸如软件工艺的概念,这是一种用类似手工艺的方法来编写软件的方式.软件工匠常被这样描述:他们拥有超群的技术,总是能将工作提炼为基本的.本质的部件.这样一个工匠在电气上被称为摇滚明星程序员.这基于两个标准,一是这个人具有如同艺术家一样的独特天赋,二是他工作的

《JavaScript专家编程》——1.2 对象概述

1.2 对象概述 JavaScript是由Brendan Eich创建的一种面向对象编程(OOP)语言,当时他还在Netscape公司工作,花了几周的开发时间就发布了.虽然JavaScript的名字中有个"Java",但它实际上跟Java语言没什么关系.在InfoWorld的一篇对Eich的采访稿中,他解释了JavaScript命名的由来: InfoWorld:据我所知,JavaScript开始的时候叫Mocha,后来改名叫LiveScript,在 Netscape和Sun合并以后才叫

《JavaScript专家编程》——1.3 小结

1.3 小结 对象是持有零个或多个属性的包. 对象的属性要么是基本类型,要么是复杂类型.对象可以持有它们自己的基本类型的拷贝,但仅能持有复杂类型的引用.出于这个原因,JavaScript的属性要么传引用,要么传值. 对象的属性可以有标记符,可以在修改对象时,控制对象的行为和能力. 对象可以通过以下三种方式之一创建. 使用字面量语法'{}'. 联合使用new运算符和构造函数,例如'new Foo()'. 使用内置的Object.create()函数. JavaScript是一种基于原型的语言,对象

《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript

第1章 对象和原型 练习不会造就完美,只有使用最佳的方法来练习才能造就完美. --Vince Lombardi 对专家来说,把JavaScript的核心概念讲上3章似乎有点多,毕竟这些是语言最基本的组成部分.我的主张是,有的人虽然不能读写,但可以说话.就像有的开发人员对JavaScript的基本功能很熟悉,但对里面那些复杂的东西可能就没那么了解了. 本书的目标是像明灯一样照亮语言中那些晦涩的角落.里面包含的很多概念你可能已经试着学习过了,甚至可以假设你已经理解了.这里可以想象一下:你正降落到你大

JavaScript Dom编程:介绍学习书籍

JavaScript Dom编程 学习书籍选择 JavaScript Dom编程学习,很多朋友无疑对如何选择入门的书籍,比较头疼.或许也是他们一直畏惧,甚至放弃学习JavaScript的理由. 在JavaScript 方面,自己不是什么专家,也不是什么高手,但自己一路走来,JavaScript 从迷茫到认识,对于JavaScript 书籍的认识或许还有些借鉴价值. 入门推荐首选书籍:<JavaScript DOM 编程艺术 > 当初读了不下4遍,书内容简单,易学,上手快,编程思想严谨.好的入门