敏捷软件开发学习笔记<一>

敏捷设计:敏捷设计是一个过程,不是一个事件,它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程,它致力于保持系统设计在任何实践都尽可能得简单,干净,及富有表现力;
也可以理解为:在敏捷开发的过程中,都尽量使用敏捷开发的原则,模式来实践,改进软件的结构和可读性的一个过程

当软件发出下面任何一种气味的时候就表明软件正在腐化,
1、僵化性:很难对系统进行改造,因为一改动全身;
2、脆弱性:对系统的改动会导致系统中和被改动的地方在概念
上无关的许多地方出现问题;
3、 牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用 的组件;
4、粘滞性:做正确的事比做错误的事要困难;
5、不必要的复杂性:设计中包含有不具有直接好处的基础结构;
6、不必要的重复:设计中包含有重复的结构,而这些重复的结构是 可以进行抽象的统一的;
7、晦涩性:代码的可读性很差,让人难以理解,没有很好的表现出意图

单一职责原则(SRP):一个类最好只有一个职责;

开放—封闭原则(LSP):软件实体(类、模块、函数等等)应该是可以扩展的,但是不可修改;
特征:①对其扩展开放,当需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为;
②对于更改是封闭的,必须更改模块的源代码;

替换原则(LSP):子类型必须能够替换掉他们的基类型;

依赖倒置原则(DIP):①高层模块不应该依赖于底层模块;二者都应该依赖于抽象
②抽象不该依赖于细节,细节应该依赖于抽象;

依赖于抽象:程序中所有的依赖关系都应该终止与抽象类和或者接口:
任何变量都不应该持有一个指向具体类的指针或者引用;
②任何类都不应该从具体类派生出来;
③任何方法都不应该覆写它的任何基类中已经实现了的方法;

接口隔离原则(ISP):不强迫其他模块依赖于它们不用的方法;
当一个模块依赖于一个含有它不适用的方法的类,但其他模块却要使用该方法,那么当这个类因为需求改变时,就会影响到这个模块;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值