貌似有段时间没写什么博客了,有质量的博客更少,虽然写博客的初衷是记录本身的学习内容,相似笔记性质的东西,但也但愿能更有内容,而不是空泛的一些东西。。。架构
最近一大堆杂事,公司、生活,心力俱疲。节后算是找回了一些状态,这个月的学习计划,大概就是《敏捷软件开发》这本书。。。函数
这篇博客,就大概介绍下敏捷软件开发的宣言、原则和面向对象设计的原则,以及我的的一些理解(楷体字体作区别)。。。工具
我的感受,了解一种东西,必定要明白它的设计理念,才能更懂如何去学习。。。学习
1、敏捷软件开发宣言测试
个体和互动高于流程和工具字体
工做的软件高于详尽的文档spa
--注重产品自己,而不是形式和流程,文档应简洁易阅读,方便维护和同步设计
客户合做高于合同谈判对象
--主动拥抱变化,及时响应,持续交付接口
响应变化高于遵循计划
--制定可实现的短时间清晰的目标,中期的粗略的计划,长期的大方向有大概目标便可
2、敏捷宣言遵循的原则
一、咱们最重要的目标,是经过持续不断的及早交付有价值的软件使客户满意。
--持续交付,快速迭代
二、欣然面对变化,即便在开发后期也同样,为了客户的竞争优点,敏捷过程掌握变化。
--敏捷更多适用于互联网企业,移动端更甚,一个机会的存在期可能短的可怜,应尽可能保持软件的灵活性,减少对系统形成的影响
三、常常交付可工做的软件,相隔几星期或一两个月,倾向于采起较短的周期。
--尽早的、常常的交付可工做的知足需求的软件,在Google,甚至能够作到天天交付一个可工做的软件,即beta版本
四、业务人员和开发人员必须互相合做,项目中的每一天都不例外。
--及时沟通,避免信息断层,减小延时,随时调整
五、激发个体的斗志,以他们为核心搭建项目,提供所需的环境和支援,辅以信任,从而打成目标。
--过程和方法对于项目的影响只有次要的影响,首要的影响是人
六、不论团队内外,传递信息效果最好效率最高的方式是面对面的交谈。
--邮件听不了语气,语音看不到表情,面对面沟通是最高效的办法
七、可工做的软件是进度的首要度量标准。
--最终产出物是可工做的软件,so,快速迭代交付的重要性不言而喻,这也是衡量一个项目进度的重要的element
八、敏捷过程倡导可持续开发,负责人、开发人员和用户要可以共同维持其步调稳定延续。
--目标清晰,设定可实现的短时间的详细的目标,固然这种步调须要长时间的培养和锻炼
九、坚持不懈的追求技术卓越和良好设计,敏捷能力由此加强。
--拒绝平庸,追求卓越,良好的设计能减小不少工做中后期的麻烦,好比技术负债!
十、以简洁为本,它是极力减小没必要要工做量的艺术。
--轻文档,轻流程,重产出,重目标
十一、最好的架构、需求和设计出自自组织团队。
--想起一句话:管理的最高境界是为共同的目标,整个团队共同承担责任,而不是单一职权负责制
十二、团队按期的反思如何能提升成效,并所以调整自身的举止表现。
--不断思考总结,调优,减小没必要要的资源消耗
3、面向对象设计原则
SRP:单一职责原则
就一个类而言,应该仅有一个引发它变化的缘由。
OCP:开放封闭原则
软件实体(类、模块、函数等)应该是可扩展的,可是不可修改。
LSP:Liskov替换原则
子类型必须能替换掉他们的基本类型。
DIP:依赖倒置原则
抽象不该该依赖于细节,细节应该依赖于抽象。
ISP:接口隔离原则
不该强迫用户依赖于他们不用的方法,接口属于用户,不属于它所在的类层次结构。
REP:重用发布等价原则
重用的粒度就是发布的粒度。
CCP:共同重用原则
一个包中全部的类应该是共同重用的,若是重用了包中的一个类,那么就要重用包中的全部类,相互之间没有紧密联系的类不该该在同一个包中。
CRP:共同封闭原则
一个包中全部类对于同一类性质的变化应该是共同封闭的,一个变化若对一个包影响,则将对包中的全部类产生影响,而对其余包不形成任何影响。
ADP:无依赖原则
在包的依赖关系中不容许存在环,细节不该该被依赖。
SDP:稳定依赖原则
朝着稳定的方向进行依赖。
SAP:稳定抽象原则
一个包的抽象程度应该和其余稳定程度一致。
关于敏捷软件开发模式,其宣言和原则就是上面的一些内容,后续会不断更新相关的,关于开发设计,敏捷测试的一些内容。