`
flysnail
  • 浏览: 92843 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

软件模块的职责与设计的臭味

阅读更多
每一个软件模块都应具有三个职责:
1.第一职责是它运行起来所完成的功能.这也是该模块得以存在的原因.
2.第二职责是它要应对变化,几乎所有的模块在它们的生命周期中变化,开发者有责任保证这种改变应该可能的简单.一个难以改变的模块是拙劣的,即使可以工作,也需要对其进行修正.
3.第三职责是要和阅读它的人进行沟通,对该模块不熟悉的开发人员应该能够比较容易的阅读并理解它.一个无法沟通的模块也是拙劣的,同样要进行修改.
当软件出现下面任何一种气味时,说明软件正在腐化
1.僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动.
2.脆弱性:对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题.
3.牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件.
4.粘滞性:做正确的事情比做错误的事情更困难.
5.不必要的复杂性:设计中包含有不具有任何直接好处的基础结构.
6.不必要的重复:设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一.
7.晦涩性:很难阅读和理解,没有很好的表现出意图.
2
0
分享到:
评论

相关推荐

    单一职责原则(SRP)

    在软件设计中,测试驱动的开发实践可以迫使我们分离职责,避免类的臭味。臭味是指类的设计中存在的问题,例如,类的职责不明确、类的耦合度高、类的设计复杂度高等。 单一职责原则的优点是可以降低类的耦合度和设计...

    面向对象的软件设计技术

    通过遵循面向对象设计的关键原则,可以有效地避免“软件设计的臭味”,从而提升软件的质量。然而,实践中需要注意避免常见的设计陷阱,如创建过胖的类、过度预测需求等,以确保软件系统能够持续发展并适应不断变化的...

    设计模式、架构模式 整理笔记

    ### 设计模式与架构模式概览 #### 一、设计模式与架构模式的定义与重要性 设计模式和架构模式是软件工程中的重要概念,它们提供了解决特定问题的通用方案,帮助开发者创建出结构良好、易于维护的软件系统。设计...

    软件重构的思考与实践

    5. **闻到代码“异味”**:当代码出现某种“异味”,即不好的设计模式时,应该考虑重构。 #### 九、重构与命名 良好的命名是重构的一个重要方面,包括: 1. **类命名**:使用简单明了的名字来传达类的主要职责。 ...

    Java软件度量源代码文档资料

    - **类和方法的粒度**:衡量类与方法的大小和职责,理想的粒度应遵循单一职责原则。 - **继承深度**:测量类在继承层次结构中的位置,过深可能表示设计问题。 - **耦合与内聚**:耦合度衡量类之间的依赖关系,内...

    重构_改善既有代码的设计

    重构可以帮助我们逐步消除代码异味,提升设计模式的使用,使得代码更符合面向对象的原则,如单一职责原则(Single Responsibility Principle)、开闭原则(Open-Closed Principle)等。 书中详细介绍了各种重构技术,...

    重构-改善既有代码的设计

    通过重构,可以引入更优秀的设计模式和原则,比如单一职责原则、开放封闭原则等,使得代码更加遵循面向对象编程的原则,提升整体设计水平。 ### 三、重构的方法与技巧 #### 1. 代码嗅探 这是重构的第一步,即识别...

    敏捷软件开发的必要技巧

    《敏捷软件开发的必要技巧》一书由王伟杰(Wingel)翻译自Essential Skills for Agile Development,深入探讨了敏捷开发的核心技能与实践,旨在帮助开发者掌握敏捷开发的关键要素,提升软件项目的成功率和团队协作...

    敏捷软件开发的必要技巧完整版

    - **领域驱动设计**:关注业务逻辑的核心领域,将其与基础设施层分离。 **3. 实践与示例** - **解决方法示例**:通过具体的案例分析,说明如何有效地实现分离,并提高系统的整体质量。 #### 九、以用户故事管理...

    clean_code(完整版).rar

    《整洁代码:实践与提升》 “clean_code(完整版).rar”这个压缩包文件包含的是关于代码整洁和良好编程实践的重要资源,主要体现在“clean_code(中文完整版).pdf”这本书籍中。这本书深入探讨了如何通过遵循一系列...

    臭味

    标题"臭味"可能是在引用编程中的一个概念——代码异味(Code Smell),它指的是代码中可能存在问题或者不良设计的迹象,虽然它们不一定导致错误,但通常会影响代码的可读性、可维护性和性能。这种"臭味"暗示了代码...

    重构-改善既有代码的设计

    4. **关注单一职责**:每个模块或函数应只负责一个功能,这有助于代码的可读性和可维护性。 5. **优先处理高风险区域**:优先重构那些最可能导致问题的代码区域,如频繁修改的代码块。 #### 知识点四:重构的具体...

    架构与代码质量重构实践

    它涉及到模块划分、接口设计、数据流优化等多个方面。例如,将单体应用拆分为微服务架构,可以增强系统的解耦和扩展能力;或者引入领域驱动设计(DDD)原则,使业务逻辑更加清晰,降低复杂性。 代码质量重构则是对...

    Refactoring.in.Ruby.pdf

    解决方法:采用模块化设计,利用混合模块来实现代码重用。 **7. 责任问题** - **特征羡慕 (Feature Envy)** 描述:一个类过分依赖于另一个类的内部状态或行为。 解决方法:可以尝试将相关的功能转移到拥有...

    敏捷开发的必要技巧(完整版)

    它强调快速响应变化、持续交付可用软件、紧密合作与适应性规划。《敏捷开发的必要技巧》这本书由Wingel翻译自Essential Skills for Agile Development,旨在通过丰富的实例和练习帮助Java开发者掌握敏捷开发的核心...

    Refactoring In Ruby

    我们将逐一分析书中提到的一些常见代码“异味”(代码设计中的问题)以及相应的解决方案。 #### 代码“异味” 1. **数据异味** - **数据类 (Data Class, p. 110)** - 描述:一个类主要用作数据存储,而缺乏行为...

    重构者的20种死法及重构的注意事项

    2. 耦合与内聚:保持模块间低耦合,高内聚,使得每个模块专注自己的职责,易于理解和维护。 3. 代码整洁:消除代码异味,如过长函数、过大的类、冗余的变量,保持代码简洁。 4. 通用性:设计时考虑未来变化,使...

Global site tag (gtag.js) - Google Analytics