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

简介: 软件度量是一个软件在某些属性或其规格上的度量。由于定量度量在所有科学中都是必不可少的,因此计算机科学从业者和理论家通过不断努力,将类似的方法引入软件开发中。我们的目标是获得客观的、可重复的和可量化的度量,这可能包含很多有价值的实践,包括进度规划、预算规划、成本估算、质量保证测试、软件调试、软件性能优化以及人员任务分配优化。

本节书摘来自异步社区《JavaScript专家编程》一书中的第9章,第9.2节,作者:【美】Mark Daggett(达格特)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

9.2 如何度量质量

你正在为质量寻找一个可用的定义,但因为它们涉及到编程,所以需要首先考虑它的各个方面。通常会将这些方面表示为软件度量:

软件度量是一个软件在某些属性或其规格上的度量。由于定量度量在所有科学中都是必不可少的,因此计算机科学从业者和理论家通过不断努力,将类似的方法引入软件开发中。我们的目标是获得客观的、可重复的和可量化的度量,这可能包含很多有价值的实践,包括进度规划、预算规划、成本估算、质量保证测试、软件调试、软件性能优化以及人员任务分配优化。

我已经努力总结出六个指标,来度量代码的质量。

  • 美观性:该指标度量代码的可视化内聚,同时也包括格式、命名、文档结构上的周到考虑和一致。度量美观性需要回答这些问题:

    • 代码的可读性如何?
    • 页面上各个部分的代码是如何组织的?
    • 从编程风格来看是否使用了最佳实践?
  • 完整性:完整性度量代码是否符合客户要求1。要实现完整性,程序必须满足或超出具体问题的需求。完整性还可以度量具体的实现是否符合行业标准或理想化的程度。关于完整性的度量需要回答以下问题:

    • 代码是否解决了要解决的问题?
    • 对于给定的期望输入,代码能否产生所需的输出?
    • 是否符合所有已定义的用例?
    • 是否安全?
    • 是否能很好地处理边界情况?
    • 是否已通过测试?
  • 性能:性能度量是将实现与公认的标准进行对比,以确定它有多成功。这些指标包含程序大小、系统资源利用效率、加载时间或每行代码的bugs数等属性。要想使用性能指标,你需要回答以下问题:

    • 这种方法的效率如何?
    • 它能够处理多大的负载?
    • 代码能力的极限如何?
  • 成本: 这个指标度量开发和为维护代码的成本。成本包含时间、金钱以及使用的资源。度量成本需要回答以下问题:

    • 代码的可维护性如何?
    • 能否轻松部署?
    • 是否有文档?
    • 花费了多少精力?
  • 耐久性: 通过度量程序在实际中运行的生命周期来衡量耐久性。耐久性也可以看作是可靠性的一个度量,这是度量寿命的另一种方式。可以回答以下问题来度量耐久性:

    • 是否能可靠地执行?
    • 在重新启动、升级和/或更换之前,程序能运行多久?
    • 是否可扩展?
  • 可接受性: 可接受性度量的是其他程序员如何评估和评价代码。跟踪可接受性可以回答以下问题:

    • 理解代码有多困难?
    • 设计决策经过了多少深思熟虑?
    • 这种方法是否利用了最佳实践?
    • 使用起来是否愉快?
相关文章
|
8月前
|
JavaScript 前端开发 Java
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
231 24
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
|
存储 JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果+1
JavaScript编程实现tab选项卡切换的效果+1
|
9月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
10月前
|
JavaScript 前端开发 IDE
【编程向导】Js与Ts差异详解:选择与权衡
JavaScript 一直是 Web 开发的基石,以其灵活性和动态性著称,但其松散类型可能导致大型项目中出现难以调试的错误。TypeScript 作为 JavaScript 的超集,通过引入静态类型系统,提供了更高的类型安全性和更好的工具支持,尤其适合大型团队和复杂项目。本文详细对比了 JavaScript 和 TypeScript 的优缺点,并提供了实际代码示例,帮助开发者根据项目需求选择合适的工具。
1241 2
|
前端开发 JavaScript 持续交付
提高JavaScript编程效率
提高JavaScript编程效率
154 3
|
JavaScript 前端开发 安全
掌握TypeScript:提升JavaScript开发质量
本文介绍了TypeScript如何通过其静态类型系统、面向对象特性及对现代JavaScript特性的支持,提升JavaScript开发的质量,包括减少错误、增强代码可维护性和利用类型推断等功能,适用于大型项目开发。
|
自然语言处理 JavaScript 前端开发
JavaScript闭包:解锁编程潜能,释放你的创造力
【10月更文挑战第25天】本文深入探讨了JavaScript中的闭包,包括其基本概念、创建方法和实践应用。闭包允许函数访问其定义时的作用域链,常用于数据封装、函数柯里化和模块化编程。文章还提供了闭包的最佳实践,帮助读者更好地理解和使用这一强大特性。
108 2
|
JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果
JavaScript编程实现tab选项卡切换的效果
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
291 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
224 1
JavaScript中的原型 保姆级文章一文搞懂