软件腐化的七个特征之牢固性和粘滞性(设计模式原则的反面) (《敏捷软件开发》读书总结第二篇)

文章目录

  • 前言
  • 牢固性(Immobility)
      • 原文
      • 我的理解
  • 粘滞性(Viscosity)
      • 原文
      • 我的理解

前言

设计模式有六大原则:单一原则;里氏替换原则;依赖倒置原则;接口隔离原则;迪米特原则;开闭原则。软件腐化可以理解为是设计模式六大原则的对立面。

当软件出现以下七种特征之一时,就说明软件正在腐化:僵化性(Rigidity)、脆弱性(Fragility)、牢固性(Immobility)、粘滞性(Viscosity)、不必要的复杂性(Needless Complexity)、不必要的重复(Needless Repetition)、晦涩性(Opacity)。


牢固性(Immobility)

原文

设计中包含了对其他系统有用的部分,但是要把这些部分从系统中分离出来需要的努力和风险是巨大的。

我的理解

牢固性(Immobility)在实际做项目做开发时还是很常见的,这里我就不具体举例说明了。

大致列举几种我认为最常见的导致牢固性(Immobility)的场景:代码注释不足、代码中经常针对特殊情况开小灶(做特殊处理)、代码写的比较反人类(比如各种“与”、“或”、“非”逻辑运算的复杂排列组合)。


粘滞性(Viscosity)

原文

当面临一个改动时,开发人员常常会发现会有多种改动的方法。其中,一些会保持设计;而另外一些会 破坏设计(也就是生硬的手法) 。当那些可以保持系统设计的方法比那些生硬手法更难应用时,就表明设计具有高的粘滞性。做错误的事情是容易的,但是做正确的事情却很难。

我的理解

说起粘滞性(Viscosity),我们公司目前的项目在架构设计方面就遇到一个和粘滞性(Viscosity)有关的问题,下面我就
以此为例来聊聊。这个例子稍微有点复杂,得耐心一点看下去。

粗略的架构图:

在上述这个例子里,做错误的事情(破坏原有设计的事情)是容易的,做正确的事情(符合设计的事情)很难。原有的架构设计看似优美而且合理,但是落实的时候,由于业务代码拼接表时语法的有限性(相对于数据库自带SQL语法),以及在现有条件下Http通信效率不好等问题,原有架构设计就体现出很严重的粘滞性(Viscosity)。


文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92452 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月6日
下一篇 2022年8月6日

相关推荐