首先,看看敏捷宣言遵循的原则 :
(1)我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
(2) 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
(3) 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
(4) 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
(5) 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
(6) 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
(7)工作的软件是首要的进度度量标准。
(8) 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
(9) 不断地关注优秀的技能和好的设计会增强敏捷能力。
(10) 简单是最根本的。
(11) 最好的构架、需求和设计出于自组织团队。
(12)每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
再看看面向对象涉及的原则:
(1)SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因
(2)OCP 开放--封闭原则
软件实体应该是可以扩展的,但是不可以更改
(3)LSP Listkov替换原则
子类型必须能够替换它们的基类型
(4)DIP 依赖倒置原则
抽象不应该依赖于细节,细节应该依赖于抽象
(5)ISP 接口隔离原则
不应该强迫客户依赖于他们不用的方法。接口属于客户,不属于它所在的类层次结构
(6)REP 重用发布等价原则
重用的粒度就是发布的粒度
(7)CCP 共同封闭原则
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则对该包中的所有类产生影响,而对其他包不产生影响
(8)CRP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类
(9)ADP 无环依赖原则
在包的依赖关系图中不允许存在环
(10)SDP 稳定依赖原则
朝着稳定的方向进行依赖
(11)SDP 稳定抽象原则
包的抽象程度应该和其稳定程度一致
先理解并设法了解以上规则的优缺点,从而在项目的进展中合理地运用。 做事不能绝对,只有巧妙地利用一些即有的知识运筹而达到目的才是最重要的。