[书摘]《敏捷软件开发: 原则、模式与实践》第二部分:敏捷设计(1)

第七章 什么是敏捷设计

软件项目的设计是一个抽象的概念。它和程序的归纳形状、结构以及每个模块、类和方法的详细形状和结构有关。可使用许多不一样的媒介去描绘它,可是它最终体现为源代码。最后,源代码就是设计。函数

软件设计的臭味

  • 僵化性-设计难以改变
  • 脆弱性-设计易遭到破坏
  • 牢固性-设计难以重用
  • 粘滞性-难以作正确的事情
  • 没必要要的复杂性-过度的设计
  • 没必要要的重复-频繁的粘贴,赋值
  • 晦涩性-混乱的表达,代码难以理解

软件腐化的缘由

因为需求并无按照初始设计的方式进行变化,从而致使了软件的退化,改动都很急迫,而且进行改动的开发人员对原始的设计思路并不熟悉,所以,虽然对设计的改动能够工做,可是他却以某种方式违反了原始设计,随着改动的不断进行,这些违反渐渐积累,设计开始出现臭味。单元测试

敏捷团队

敏捷团队依靠变化获取活力,不尽兴预先设计,保持系统设计尽量的干净,简单,并使用许多单元测试和验收测试做为志愿,保持了设计的灵活性,易于理解性,利用这种灵活性,持续地改进设计,以便于每次迭代结束所生成的系统都具备最适合于那次迭代中需求的设计。测试

敏捷设计

敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任什么时候间都尽量得简单、 干净以及富有表现力。设计

第八章 单一责任原则(SRP)

在SRP中,咱们把职责定义为变化的缘由。若是你可以想到多于一个的动机去改变一个类,那么这个类就具备多于一个的职责。咱们须要分离耦合的职责,并对其持久化。对象

结论

SRP是全部原则中最简单的之一,也是最难运用的之一。咱们会天然地把职责结合在一块儿。软件设计真正要作的许多内容,就是发现职责并把那些职责相互分离。事实上,咱们要将论述的其他原则都会以这样或者那样的方式回到这个问题上。事件

第九章 开放—封闭原则(OCP)

软件实体(类、模块、函数)应该是能够扩展的,可是不可修改的。开发

开放封闭原则有两大特征

  • 对于扩展是开放的
    有新的需求或变化时,能够对现有代码进行扩展,以适应新的状况。
  • 对于修改是封闭的
    类一旦设计完成,就能够独立其工做,而不要对类尽任何修改。

结论

在许多方面,OCP都是面向对象设计的核心所在。遵循这个原则能够带来面向对象技术所声称的巨大好处(也就是,灵活性、可重用性以及可维护性)。然而,并非说只要使用一种面向对象语言就是遵循了这个原则。 对于应用程序中的每一个部分都肆意地进行抽象一样不是一个好主意。正确的作法是,开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象。 拒毫不成熟的抽象和抽象自己同样重要。扩展

相关文章
相关标签/搜索