zoukankan      html  css  js  c++  java
  • 什么是敏捷设计

    一.设计臭味

    1.僵化性

      僵化性是指难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。改动时,必须要改动的模块越多,设计就越僵化。

    2.脆弱性

      脆弱性是指,在进行一个改动时,可能会导致程序的许多地方出现问题。常常是,出现新问题的地方与改动的地方没有概念上的关联。

    3.顽固性

      顽固性是指,设计中包含了对其他系统有用的部分,但是要把这些部分从系统中分离出来所需要的代价很巨大的。

    4.粘滞性

      软件粘滞性

      当面临一个改动时,开发人员常常发现会有多种改动的方法。其中,一些方法会保持设计;而另一些方法会破坏方法(也就是拼凑的方法)。当可以保持系统设计的方法比拼凑手法更难应用时,就表明设计具有很高的粘滞性。

      环境粘滞性

      当开发环境迟钝。低效时,就会产生环境的粘滞性。

    5.不必要的复杂性

      如果设计中包含了当前没有用到的组成部分,他就包含不必要的复杂性。为过多的可能性做准备,致使设计中含有绝对用不到的结构,从而变得混乱。这些准备工作也许会带来回报,但更多的不会有什么好的回报。同时,设计时背负着这些用不到的部分,是软件变得复杂,并且难以理解。

    6.不必要的重复性

      剪切和粘贴也许是有用的文本编辑器操作,但却是灾难性的代码罪魁祸首。

    7.晦涩性

      晦涩性是指模块难以理解。代码随着时间而演化,往往会变得越来越灰色,让开发人员越来越难理解模块的工作方式。为了使代码的晦涩性保持最低,就需要持续地保持代码清晰和富有表达力。

    二、软件为何会腐朽

      在非敏捷的环境中,由于需求没有按照初始预期的方式进行变化,从而导致设计的退化。通常,改动都非常很急迫,并且进行改动的开发人员对于原始的设计思路并不熟悉。因而,虽然是可以对设计进行改动,但是却在某种程度上违反了原始的设计。随着改动的不断进行,这些诟病将渐渐的积累起来,直到恶性肿瘤的出现。

    三、什么是敏捷

      敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能的简单、干净和富有表达力。

  • 相关阅读:
    【转】jar参数运行应用时classpath的设置方法
    【转】命令行执行main方法
    【转】JAVA下的多线程程序造成系统时钟变快
    Spring MVC学习总结(6)——一些Spring MVC的使用技巧
    Spring MVC学习总结(6)——一些Spring MVC的使用技巧
    Maven学习总结(21)——Maven常用的几个核心概念
    专访李智慧:架构是最高层次的规划和难以改变的决定
    华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
    华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
    Spring学习总结(12)——Druid连接池及监控在spring配置
  • 原文地址:https://www.cnblogs.com/zxj159/p/4058673.html
Copyright © 2011-2022 走看看