`
cantellow
  • 浏览: 847608 次
  • 性别: Icon_minigender_1
  • 来自: 草帽海贼团
社区版块
存档分类
最新评论

代码质量之可维护性

阅读更多

 

我的心态变化

第一次接触编程,学习C语言,交换两个数的值: 

c = a 

a = b 

b = c 

后来我我从师兄那学到了下面这段代码,觉得写的比我之前的更漂亮:

a = a + b 

b = a - b 

a = a - b 

最后参加工作了,看到很多别人的代码,最后又觉得最漂亮的代码是这样的: 

c = a 

a = b 

b = c 

请问大家,为什么我的心态有这样的变化?

 

软件开发的现实

  • 一个软件生命周期中,80%的时间和精力花费在维护阶段。
  • 几乎没有任何一个软件,在其整个生命周期中,均有最初的开发人员维护。
  • 几乎没有任何一个软件,在其整个生命周期中,它的文档与代码是保持同步的。

场景再现

有两种人,第一种人维护的是自己的代码,但是,随着时间的流逝,以前的关于系统的理解和记忆已经逐渐消失了,每次修改bug或增加新功能时,要通过看文档、看代码来回忆当时开发系统的场景。

第二种人,代码不是自己写的,需要阅读相关文档和代码,为了弄明白某一处代码的意图,需要了解整个模块的逻辑流程,还要看相关需求和设计文档,但是很遗憾,这些文档都和实际代码不同步。

最终,没有彻底理解到代码意图的人们急于修改代码,只会给系统引入新的bug

 

如何解决—提高软件的可维护性

影响可维护性的因素

1.是否是同一个开发人员

2.人的质量如何,技术功底,对业务领域的熟悉程度

3.是否有完善的文档,文档是否同步

4.代码是否自解释,是否有足够的注释

 

落地措施

1.提高自身的质量,技术功底(面向对象、重构),熟悉业务,多与同事face to face交流

2.关键地方一定要写单元测试,单元测试能够让你更快速回忆当初开发系统时的场景。

3.利用卡片、白板、或者excel(如果你喜欢敏捷,可以试试scrum),为你维护的项目或者模块写一个故事,每一个项目,每一个模块,甚至每一行代码都有自己的故事,我们大部分时间都只是它的过客。你为它们建立了历史档案,总有一天你用得着。

4.你可以写一个小的工具自动化完成相关维护任务( 常规性的,有规律),提高你的工作效率。

5.养成随时记录思维的好习惯,利用思维导图软件,我用的就是xmind

6.代码要多些注释,改动代码要写名字和原因,写名字的意思表示个人对此次改动负责,能够提高代码主人翁精神,潜移默化的影响开发人员反复琢磨代码的好坏。

 

可维护性的前提——可理解性,如果你不理解它,你怎么维护它?

其实,维护软件最头痛的是,随着时间的流逝,以前的关于系统的理解和记忆已经逐渐消失了。每次修改bug或增加新功能,要通过看文档,看代码来回忆当时开发系统时的场景。

软件质量特性中最重要的我认为是可维护性,而可维护性的前提是可理解性。

 

我们要理解谁?

1.理解人,我们每天的开会,日常交流,任务分配,培训都是在人和人的交流。 你是一个理解性强的人,还是一个表达性强的人?这都很重要。

2.理解文档,信息只有被用心组织才能有更好的可理解性。

3.理解代码,好的代码会自解释,会说话,坏的代码面目狰狞,五官发育不全,代码的可理解性是靠开发人员来控制的,是造一个天使还是一个怪物,全看我们的态度是怎么样的。

 

可理解性强的代码不是一门技术,而是一门艺术。

5
3
分享到:
评论
1 楼 Coder211 2011-03-29  
写的不错,

相关推荐

    如何在C++中实现代码可维护性分析工具集

    在C/C++开发中,代码可维护性分析是一个关键步骤,它可以帮助开发者识别潜在的问题,提高代码质量,降低维护成本。以下是如何在C/C++项目中实现代码可维护性分析的详细指南。 集成代码可维护性分析工具到C/C++项目中...

    参考资料-C.0.1-0610 系统实时性、可维护性、可靠性分项工程质量验收记录表.zip

    良好的文档、模块化设计、代码质量、测试策略等都是提高系统可维护性的关键因素。 3. **系统可靠性**:可靠性则是指系统在特定时间内,按照预期功能运行的概率。它是评估系统稳定性的重要指标。系统可靠性可通过...

    C++代码可维护性报告生成:策略、工具与实践指

    在软件开发的生命周期中,代码的可维护性是衡量软件质量的关键指标之一。对于C/C++这样的性能敏感型语言,代码的可维护性不仅关系到软件的长期稳定性,还直接影响到开发和维护的成本。本文将探讨如何在C/C++项目中...

    如何提高代码质量

    本文将深入探讨提高代码质量的三大要素:可读性、可维护性和可变更性。 **可读性**是代码质量的基石。代码应清晰易懂,让其他开发者能迅速理解其功能和逻辑。这包括但不限于: 1. **避免大段代码**:过长的函数或...

    深入剖析C++代码可维护性分析:工具、策略与实

    在软件开发的生命周期中,代码的可维护性是衡量软件质量的关键指标之一。对于C/C++这样的底层语言,代码的可维护性不仅关系到软件的长期稳定性,还直接影响到开发和维护的成本。本文将深入探讨C/C++代码可维护性分析...

    Python中的类型注解:提升代码质量和可维护性

    类型注解是Python编程中一个强大的工具,它可以提高代码质量,减少类型错误,并增强代码的可维护性。虽然Python的运行时不会强制类型检查,但类型注解与静态类型检查器和IDEs的结合使用,可以在开发过程中提供巨大的...

    代码质量管理资料 包

    在IT行业中,代码质量管理是确保软件开发过程中的关键环节,旨在提高代码的可读性、可维护性和稳定性。本资料包包含了一系列与代码质量管理相关的文章和文档,涵盖了多个重要方面,如代码评审、单元测试、程序复杂度...

    浅析计算机软件可维护性方法-如何度量软件可维护性WORD文档版本.docx

    计算机软件的可维护性是软件开发和维护过程中的核心关注点,因为它直接影响到软件的长期使用和成本效益。本文主要探讨了计算机软件的可维护性及其度量方法,旨在提高软件的可靠性和效率。 首先,软件的可维护性涉及...

    java代码质量控制

    Java代码质量控制是软件开发过程中不可或缺的一环,它关乎到代码的可读性、可维护性、性能以及潜在的bug预防。本篇将详细介绍几种常用的代码质量控制工具,包括它们的功能、用途以及如何使用。 首先,我们需要理解...

    高质量代码有三要素:可读性、可维护性、可变更性

    我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。一提到可读性似乎有一些老生常谈的味道,但令人沮丧的是,虽然大家一而再,再而三地...

    论文研究-代码质量静态度量的研究与应用.pdf

    针对Java代码质量度量进行研究,使用Ant工具整合各种开源的静态测试工具,并制定基于静态分析的Java代码质量综合评价方案,可支持包括代码规模、规范性、可维护性、可扩展性和潜在危险等方面的综合检测,为项目的...

    CISQ代码质量度量标准

    《CISQ代码质量度量标准》是软件质量协会推出的一套权威的代码质量衡量体系,旨在提升软件的可靠性和可维护性,优化性能效率,保障安全性。这一标准分为四个核心方面,每一方面都对软件开发过程中的不同维度进行了...

    如何提高c_c++代码质量

    高质量的代码能够提高软件的可维护性、可读性和可扩展性,减少 bug 和错误的出现。本文总结了提高C++/C代码质量的经验,旨在帮助软件开发者编写高质量的代码。 1. 文件结构 文件结构是编写高质量代码的基础。一个...

    软件开发:浅谈计算机软件可维护性方法.pdf

    此外,使用结构化程序设计技术、自动重建结构和重新格式化的工具、代码评价程序、重定格式程序、结构化工具等自动软件工具,也可以提高软件的可维护性。 此外,进行明确的质量保证审查也是软件可维护性的重要保证。...

    软件工程中的可维护性与可扩展性设计.pptx

    #### 第4章 代码质量与可维护性 为了提高软件的可维护性,除了在设计层面采取措施之外,还需要关注代码的质量。这包括但不限于: - **代码注释**:良好的注释可以帮助其他开发者更快地理解代码的功能和逻辑。 - **...

    深入探索C++代码质量报告生

    高质量的代码不仅能够减少潜在的错误,还能提高代码的可维护性和扩展性。为了系统地评估和提升代码质量,生成代码质量报告成为了一个不可或缺的步骤。本文将详细介绍如何在C/C++项目中实现代码质量报告的生成,包括...

    代码行统计工具(统计代码质量)

    关键在于代码的结构、可读性、可维护性和遵循的编程最佳实践。 为了提高代码质量,开发者应该结合代码审查、静态代码分析和自动化测试等其他方法。而代码行统计工具则提供了一种量化的方式,帮助我们更好地理解和...

    加强计算机软件设计可维护性的措施探究.docx

    1. 设定明确的软件质量目标:将可维护性作为开发目标,通过权衡各种质量特性,实现理想的质量与可维护性的平衡。 2. 科学的软件设计和选择合适的开发工具:使用面向对象、模块化的设计方法,选择支持版本控制和自动...

    计算机软件可靠性和可维护性管理GB.docx

    可维护性主要涉及软件在后续维护、升级或改正错误时的便捷程度。它包括了可理解性、可修改性、可测试性、可移植性等多个方面。可理解性是指代码的清晰度和文档的完备性,使得新加入的开发者能快速理解软件结构。可...

Global site tag (gtag.js) - Google Analytics