软件开发中应该避免设计不足与过度设计

发布于:2015年11月19日 18:35

      软件设计作为软件开发过程中极为重要的步骤,他直接决定了软件是什么样子(软件功能、结构、样式)。那么软件设计中我们需要注意些什么呢?下面小编就和大家聊聊软件开发设计中两个最常见的误区:设计不足与设计过度。


      首先来说说软件设计不足,该问题常见于新手,但是也会出现在老手身上,甚至我还见过有一类老程序员在经历过多次过度设计的打击之后,转向另一个极端,否定抽象封装的作用,走上“反设计”的道路。

软件开发中应该避免设计不足与过度设计

      软件设计过度主要指软件设计中进行了过多的面向未来的设计,进行了不必要的抽象封装,为系统增加了不必要的复杂度。该问题常见于程序员在掌握了一些基本的设计能力之后,最常见也是最难克服的设计问题往往就是过度设计。

      举个例子,你要做一个功能模块,但你考虑到到这个系统里还有几个未完成的模块和你要做的东西类似,所以你决定为此额外做一些抽象和封装,以便将来复用。然而到后来你开发那些相似的模块时你才发现,可能是由于抽象不足或抽象错误,你不得不重新修改之前的封装才能完成复用,导致最终成本实际上还不如不做;或者你发现复用的部分所降低的成本实际上还不如包装花费的成本。 这些都是最常见的过度设计的例子。

      可见软件开发设计中把握度的重要性,需要每一个程序员都要认真对待过度设计和设计不足的平衡问题,当然目前还没有很好的解决办法,只有依靠经验的积累和不断的总结思考。如何把握这个度是最能考验程序员的经验和价值的问题之一。