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

  • 相关阅读:
    Java实现 洛谷 P1423 小玉在游泳
    Java设置session超时(失效)的时间
    How Tomcat works — 八、tomcat中的session管理
    三种常用的MySQL建表语句
    mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)
    oracle 基础表 mysql版
    oracle员工表和部门表基本操作
    Oracle
    java生成6位随机数
    用Ajax图片上传、预览、修改图片
  • 原文地址:https://www.cnblogs.com/robyn/p/3452791.html
Copyright © 2011-2022 走看看