敏捷软件开发 第七章、第八章、第九章
第七章 什么是敏捷设计
软件腐化的几个指标:
1、僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其它部分的其他改动
2、脆弱性:对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题
3、牢固性:很难解开系统的纠结,是指成为一些可在其他系统中重用的组件
4、粘滞性:做正确的事情比做错误的事情要困难
5、不必要的复杂性:设计中包含不具任何好处的基础结构
6、不必要的重复:设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一
7、晦涩性:很难阅读、理解。没有很好地表现出意图
什么激化了软件的腐化?
不是需求的变动,而是开发人员对于需求本身就是不断变化的这一事实的抗拒
由以下几点,敏捷开发人员只要要做什么以及如何做:
1、他们遵循敏捷实践去发现问题
2、他们引用设计原则去诊断问题(设计原则的作用)
3、他们应用适当的设计模式去解决问题(设计模式的作用)
第八章 单一职责原则(SRP)
单一职责原则的定义:
就一个类而言,应该仅有一个引起它变化的原因
注:
“职责”一词的意思,即“变化的原因”
每个类都应该只承担一个职责,如果某个类承担了多个职责,应该按职责将这个类进行拆分
SRP 是所有原则中最简单的之一,也是最难正确运用的之一。
我们自然地会把职责结合在一起。
软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。
事实上,我们将要论述的其余原则都会以这样的方式回到这个问题上。
第九章 开发-关闭原则(OCP)
定义:
软件实体(类、模块、函数等等)应该是可以扩展的,但是不可修改的。
O:Open
对扩展是开发的
C:Close
对修改时关闭的
保证这一原则的手段主要是:
抽象
抽象分为接口抽象和接口抽象