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

    一.设计臭味

    1.僵化性

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

    2.脆弱性

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

    3.顽固性

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

    4.粘滞性

      软件粘滞性

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

      环境粘滞性

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

    5.不必要的复杂性

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

    6.不必要的重复性

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

    7.晦涩性

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

    二、软件为何会腐朽

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

    三、什么是敏捷

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

  • 相关阅读:
    log4net使用封装,无缝切换 dotnet 和 dotnetcore
    使用 certbot 申请泛域名https证书
    StackExchange.Redis中文使用文档
    在 asp.net core 中使用类似 Application 的服务
    不一样的 SQL Server 日期格式化
    你可能不知道的 docker 命令的奇淫怪巧
    [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
    [k8s]k8s 1.9(on the fly搭建) 1.9_cni-flannel部署排错 ipvs模式
    [k8s] kubelet单组件启动静态pod
    [svc]runinit管理多进程
  • 原文地址:https://www.cnblogs.com/zxj159/p/4058673.html
Copyright © 2011-2022 走看看