zoukankan      html  css  js  c++  java
  • 敏捷设计理念

    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)]

  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/robyn/p/3452791.html
Copyright © 2011-2022 走看看