zoukankan      html  css  js  c++  java
  • 敏捷开发的宣言和原则

    貌似有段时间没写什么博客了,有质量的博客更少,虽然写博客的初衷是记录自己的学习内容,类似笔记性质的东西,但也希望能更有内容,而不是空泛的一些东西。。。

    最近一大堆琐事,公司、生活,心力俱疲。节后算是找回了一些状态,这个月的学习计划,大概就是《敏捷软件开发》这本书。。。

    这篇博客,就大概介绍下敏捷软件开发的宣言、原则和面向对象设计的原则,以及个人的一些理解(楷体字体做区别)。。。

    个人感觉,了解一种东西,一定要明白它的设计理念,才能更懂如何去学习。。。

    一、敏捷软件开发宣言

    个体和互动高于流程和工具

    工作的软件高于详尽的文档

    --注重产品本身,而不是形式和流程,文档应简洁易阅读,方便维护和同步

    客户合作高于合同谈判

    --主动拥抱变化,及时响应,持续交付

    响应变化高于遵循计划

    --制定可实现的短期清晰的目标,中期的粗略的计划,长期的大方向有大概目标即可

    二、敏捷宣言遵循的原则

    1、我们最重要的目标,是通过持续不断的及早交付有价值的软件使客户满意。

    --持续交付,快速迭代

    2、欣然面对变化,即使在开发后期也一样,为了客户的竞争优势,敏捷过程掌握变化。

    --敏捷更多适用于互联网企业,移动端更甚,一个机会的存在期可能短的可怜,应尽量保持软件的灵活性,减小对系统造成的影响

    3、经常交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

    --尽早的、经常的交付可工作的满足需求的软件,在Google,甚至可以做到每天交付一个可工作的软件,即beta版本

    4、业务人员和开发人员必须互相合作,项目中的每一天都不例外。

    --及时沟通,避免信息断层,减少延时,随时调整

    5、激发个体的斗志,以他们为核心搭建项目,提供所需的环境和支援,辅以信任,从而打成目标。

    --过程和方法对于项目的影响只有次要的影响,首要的影响是人

    6、不论团队内外,传递信息效果最好效率最高的方式是面对面的交谈。

    --邮件听不了语气,语音看不到表情,面对面沟通是最高效的办法

    7、可工作的软件是进度的首要度量标准。

    --最终产出物是可工作的软件,so,快速迭代交付的重要性不言而喻,这也是衡量一个项目进度的重要的element

    8、敏捷过程倡导可持续开发,负责人、开发人员和用户要能够共同维持其步调稳定延续。

    --目标清晰,设定可实现的短期的详细的目标,当然这种步调需要长时间的培养和锻炼

    9、坚持不懈的追求技术卓越和良好设计,敏捷能力由此增强。

    --拒绝平庸,追求卓越,良好的设计能减少很多工作中后期的麻烦,比如技术负债!

    10、以简洁为本,它是极力减少不必要工作量的艺术。

    --轻文档,轻流程,重产出,重目标

    11、最好的架构、需求和设计出自自组织团队。

    --想起一句话:管理的最高境界是为共同的目标,整个团队共同承担责任,而不是单一职权负责制

    12、团队定期的反思如何能提高成效,并因此调整自身的举止表现。

    --不断思考总结,调优,减少不必要的资源消耗

    三、面向对象设计原则

    SRP:单一职责原则

       就一个类而言,应该仅有一个引起它变化的原因。

    OCP:开放封闭原则

       软件实体(类、模块、函数等)应该是可扩展的,但是不可修改。

    LSP:Liskov替换原则

       子类型必须能替换掉他们的基本类型。

    DIP:依赖倒置原则

       抽象不应该依赖于细节,细节应该依赖于抽象。

    ISP:接口隔离原则

       不应强迫用户依赖于他们不用的方法,接口属于用户,不属于它所在的类层次结构。

    REP:重用发布等价原则

       重用的粒度就是发布的粒度。

    CCP:共同重用原则

       一个包中所有的类应该是共同重用的,如果重用了包中的一个类,那么就要重用包中的所有类,相互之间没有紧密联系的类不应该在同一个包中。

    CRP:共同封闭原则

       一个包中所有类对于同一类性质的变化应该是共同封闭的,一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他包不造成任何影响。

    ADP:无依赖原则

       在包的依赖关系中不允许存在环,细节不应该被依赖。

    SDP:稳定依赖原则

       朝着稳定的方向进行依赖。

    SAP:稳定抽象原则

       一个包的抽象程度应该和其他稳定程度一致。

    关于敏捷软件开发模式,其宣言和原则就是上面的一些内容,后续会不断更新相关的,关于开发设计,敏捷测试的一些内容。

  • 相关阅读:
    golang 简易聊天
    golang 自定义封包协议(转的)
    PHP 7 测试用例(转)
    android 百度地图开发
    Android studio 签名使用转
    百度ueditor 拖文件或world 里面复制粘贴图片到编辑中 上传到第三方问题
    Android控件属性大全(转)
    Android studio 一个项目中添加两个module遇到的bug
    win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)
    Python学习--07迭代器、生成器
  • 原文地址:https://www.cnblogs.com/imyalost/p/7653574.html
Copyright © 2011-2022 走看看