敏捷软件开发--敏捷开发原则

编写单元测试是一种验证行为,更是一种设计行为。
测试时一个无价的文档。如果你想知道如何调用一个函数或者创建一个对象,会有一个测试展示给你看。

什么是设计?不应该认为设计就是一组和代码分离的UML图。
一组UML图也许描绘了设计的一些部分,但是它不是设计。(还是要代码化)

僵化性是指难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块的连锁改动,那么设计就是僵化的。

脆弱性是指在进行一个改动时,程序的许多地方就可能出现问题。要修正这些问题就又会引出更多的问题。

牢固性是指设计中包含了其他系统有用的部分,但是要把这些部分从系统中分离出来所需要的努力和风险是巨大的。

晦涩性是指模块难以理解。代码可以用清晰、富有表现力的方式编写,或者可以用晦涩、费解的方式编写。

在实现新需求是,团队抓住这次机会去改进设计,以便设计对于将来的同类变化具有弹性,而不是设法去给设计打补丁。

单一职责原则,如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。如果一个类承担的职责过多,就等于把这些职责耦合在了一起。
一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。

开放一封闭原则(OCP)
如果程序中的一处改动就会产生连锁反应,导致一系列相关模块的改动,那么设计就具有僵化性的臭味。
1.对于扩展是开放的。
2.对于更改是封闭的。
(抽象来实现)
创建正确的抽象是要花费开发时间和精力的,同时,那些抽象也增加了软件设计的复杂性。
遵循这个原则可以带来面向对象技术所声称的巨大好处(灵活性、可重用性以及可维护性)
对于应用程序中的每个部分都肆意地进行抽象不是一个好主意。应该对程序中频繁变化的那些部分做出抽象。拒绝不成熟的抽象和抽象本身一样重要。

Liskov替换原则
子类型必须能够替换掉它们的基类型。如果新派生类的创建会导致我们改变基类,这就意味着设计是有缺陷的。也违反了OCP。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值