zoukankan      html  css  js  c++  java
  • 浅谈敏捷设计

    在软件开发过程中,都避免不了进行概要设计、详细设计等过程,这和软件测试过程中进行测试计划测试方案设计很类似。

    这篇博客,就说说敏捷设计的一些内容,以及拙劣设计对软件应用的严重影响。

    我们日常接触到的软件项目是一个抽象的概念,它和程序包括形状、结构以及每一个模块、类和方法都有关。可以通过很多媒介和语言去描述它,但它最终体现为源代码——源代码就是设计。

    应该知道的一件事是:软件都是有生命周期的。当出现以下任何一点时,就表明软件正在步入声明晚期。

    一、拙劣设计的表现

    1、僵化性(Rigidity)

    僵化性指的是难以对软件进行改动,即使是简单的改动。单一的改动可能会导致有依赖关系的模块出现不可预知的变化,可以将其称之为:业务和技术的屏障!最常见的具体表现为:需求变更!

    2、脆弱性(Fragility)

    脆弱性指的是进行一个改动时,程序的许多地方可能会出问题。常见的表现是出问题的地方与改动的地方并没有概念上的关联,修正这些问题就会引起更多的问题,这样会导致技术负债不断变大!

    3、牢固性(Immobility)

    牢固性是指设计难以重用。比如设计中包含了对其他系统有用的部分,要将其从系统中剥离出来所需要的努力和风险太大。

    PS:这也是这几年微服务和DevOps越来越流行的原因。

    4、粘滞性(Viscosity)

    粘滞性有2中表现形式:

    ①软件的粘滞性:对软件进行改动有很多方法,有些可以保持设计,有些会破坏设计。当可以保持系统设计的方法比生硬方法更难以使用时,就表明系统具有较高的粘滞性。

      敏捷设计的目标是:软件设计应该可以容易的进行那些保持设计的变动。

    ②环境的粘滞性:开发环境的迟钝、低效,就会产生环境的粘滞性。比如编译花费时间长,比如代码管理需要花费几个小时去check in仅仅几个文件,这样都很难保持项目中的软件设计。

      敏捷设计目标是:创建易于保持系统设计的软件环境。

    5、复杂性(Complexity)

    复杂性则指的是设计中包含了当前没有用的组成部分。它还有不必要的复杂性。我们在进行软件设计时经常为了保持代码的灵活性和扩展性,而设置本次迭代并不会用到的结构设计,这样会使得

    软件变得复杂,并且难以理解。

    6、重复性(Repetition)

    滥用重复的代码,这是软件设计重复性表现最频繁的方式。代码设计应该是抽象、简洁的。当系统中重复的代码较多时,会使得系统难以改动,且难以阅读,出现问题时也需要对其进行一一修正。

    但每个重复体之间都有细微的差别,所以修正的方式也不同,这样会导致大量重复的工作,降低了工作效率。应该努力做正确的、产生更多价值的事情,而不是造轮子

    7、晦涩性(Opacity)

    晦涩性指的是模块难以理解。如果模块代码难以理解阅读,随着时间变化而代码进行演化,会变得越来越难以理解。所以,编程是一门艺术,代码应该是优雅、易读的

    二、为什么设计会变得拙劣?

    需要知道的一点:需求是项目中最不稳定的因素。如果我们的软件设计由于持续的、大量的需求变更而变得拙劣,那就表明我们的设计和实践本身是具有缺陷的。

    三、保持尽可能好的设计

    敏捷开发人员应致力于保持设计尽可能的适当、干净。不断优化设计,不是几周甚至几个月才进行一次的事情,而应该贯穿与软件的整个项目周期,经常性的去优化。

    源代码是设计最重要的指表示,所以它同样要保持干净。这也是一种职业素养

    四、什么是敏捷设计

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

  • 相关阅读:
    连号区间数|2013年蓝桥杯B组题解析第十题-fishers
    带分数|2013年蓝桥杯B组题解析第九题-fishers
    翻硬币|2013年蓝桥杯B组题解析第八题-fishers
    错误票据|2013年蓝桥杯B组题解析第七题-fishers
    三部排序|2013年蓝桥杯B组题解析第六题-fishers
    前缀判断|2013年蓝桥杯B组题解析第五题-fishers
    黄金连分数|2013年蓝桥杯B组题解析第四题-fishers
    第39级台阶|2013年蓝桥杯B组题解析第三题-fishers
    马虎的算式|2013年蓝桥杯B组题解析第二题-fishers
    高斯日记|2013年蓝桥杯B组题解析第一题-fishers
  • 原文地址:https://www.cnblogs.com/imyalost/p/7689920.html
Copyright © 2011-2022 走看看