• 敏捷设计理念


    1. Agility,指以微小增量的方式构建软件.
      1. 全局视图和软件一起演化.每次迭代中,都使设计尽可能适合于当前系统,而不会花时间去预测未来的需求,更不会试图构建一些基础结构去支撑未来才需要的特性.更关注的是当前的系统.
      2. 不进行预先设计,不需要成熟的初始设计.而保持设计尽可能的干净,简单.并使用单元测试和验收测试来保证.
      3. 需求处在不停变化的状态之中,如果设计由于需求变化而退化,那么就不是敏捷的.
      4. 在实现新需求时,应改进原有设计以让设计对新变化的同类变化具有弹性.而不是设法给设计打补丁.
      5. 敏捷设计是一个过程,而不是事件.
    2. Design,源代码就是设计,而UML图示只是设计的附属物而不是设计本身.
    3. 设计中的臭味常常是由于违反了原则而导致的.当臭味出现时,才应用原则来去除臭味.但不应该无条件的使用这些原则,这样会导致不必要的设计上的臭味(复杂性).
      1. rigidity僵化.       难以改动.改动会迫使许多对系统其它部分的其他改动.
      2. fragility脆弱.      改动会导致在概念上无关的部分出现问题.
      3. immobility牢固.  很难将一些对其它系统有用的部分从系统中分离出来.
      4. viscosity粘滞.     做正确的事情要难于做错误的事情.
      5. 不必要的复杂性.   不具有任何直接好处的基础结构.为了预测的变化而设计的.
      6. 不必要的重复.      本可以使用单一的抽象进行统一的重复的结构.(copy-paste).
      7. Opacity晦涩.       没有表现出意图.难以阅读理解.
    4. 不能因为设计的退化而责怪需求的变化.因为需求是项目中最不稳定的因素.所以,应让设计对于变化具有弹性,并且应用实践来防止设计腐化.

     [Agile Software Development(Principles,Patterns,and Pracitices)]

  • 相关阅读:
    Eclipse的安装及汉化图解
    Intent常用使用汇总
    Android Notification (转)
    垃圾回收
    svn常见错误汇总
    位运算
    FusionCharts简单教程(一)---建立第一个FusionCharts图形
    Delphi发送邮件...
    协程库的一些笔记
    学习日记之单例模式和Effective C++
  • 原文地址:https://www.cnblogs.com/robyn/p/3452791.html
Copyright © 2020-2023  润新知