敏捷软件开发之——软件坏味儿

      在软件开发的过程中,存在着两个级别的坏味。处于低级别的是代码坏味,在《重构-改善既有代码的设计》一书中给出了详细的说明与解决办法,这种坏味主要是指软件在代码实现中存在的。另外一种坏味是更高级别的,主要是指软件设计层面上的。下面就仔细介绍一下设计层面上的代码坏味。

      首先给出问题,也就是都有哪些坏味,然后在剖析原因。软件坏味主要有:

  • 僵化性:很难对系统做出改动,因为每个改动都会迫使许多对系统其他部分的其他改动。
  • 脆弱性:对系统的改动会导致一些和改动部分本质上毫无关系的其他部分出现问题。
  • 牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。
  • 粘滞性:做正确的事要比做错误的事情要困难。
  • 不必要的复杂性:设计中包含有不具任何直接好处的基础结构。
  • 不必要的重复:设计中包含有重复的结构,二该重复的结构本可以使用单一的抽象进行统一。
  • 晦涩性:很难阅读、理解。没有很好的表现意图。

       接下来分析以上这些产生这些坏味的原因。

 

       先看一下前三种坏味:僵化性、脆弱性和牢固性。这三个坏味都是在系统需要变化的时候体现出来的(僵化性:系统很难做出改动,即使是很小的改动;脆弱性:对系统做出一个改动,其他地方出现问题;牢固性:系统很难被复用)。那么,是什么原因造成了这些问题呢?罪魁祸首就是高耦合!因为耦合,程序之间存在着千丝万缕的联系,牵一发而动全身。当对系统做出改动时,会发生一连串的连锁反应,由于程序关系盘根错节,即时一个简单的改动也要小心翼翼。因为耦合,使程序的各个部分紧密的联系在一起,无法形成一个个可以重用的组件。

      粘滞性:粘滞性分为两种,软件粘滞性和环境粘滞性。当面临一个改动时,或者保持设计,或者破坏设计。如果保持设计比破坏设计更难实现时,那么软件就具有软件粘滞性。当开发环境迟钝、低效时,就会产生环境粘滞性。

      不必要的复杂性:如果设计中包含着当前没有用的组成部分,它就含有不必要的复杂性。所谓不必要的复杂性,就是过度设计。形成这种坏味的原因在于试图通过良好的设计来灵活的应对需求的变化,然而最经常的情况是对需求的变化判断错误,这样系统中就存在了不必要的、没有任何价值的代码,通常这些代码是很难理解的。

      不必要的重复:程序中存在功能相同的代码。造成的原因也就是使用了copy和paste。重复代码可是一个大问题,当变化发生时,需要改动的地方不止一个,如果忘记了某一个地方,那就会是一个bug。所以说重复代码是bug的滋生地。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值