在实际的开发过程中,经常会存在两种设计极端,一种是过度设计,一种是设计不足。两种情况对于项目来讲都会造成不好的影响,所以在开发过程中应该尽量去避免这两种极端,但是这两种极端的尺度对于项目开发人员来讲又不是特别的容易界定,所以这就造成了我们在实际的开发过程不可避免的出现两种极端。如何解决呢?
1、过度设计(over-engineering)
过度设计通常是指开发人员在编写代码的过程中,经常会封装一些类、在一些地方预留一些接口或者方法等等,这对开发的灵活性来非常重要,但凡是都有利弊两个方面,如果在开发的过程中过度的进行封装、预留一些无用的接口或方法,那么对于开发人员来讲就不会产生一些额外的工作,同时也会将一些简单的问题变的复杂。过度设计,通常出现在一些经验较为丰富,但在开发过程中考虑的情况太多而缺乏针对性的开发人员身上。2、设计不足(under-engineering)
设计不足是指设计出来的系统复用性差、扩展性不强、不能灵活的应对变化,换一种说法就是不能够灵活的应对需求的变化,编写的代码在某些特定的地方被一些特定的方法处理或调用,相似的功能多次编写,类似的结构无法复用等等,这样对于开发人员来讲就造成了重复编写一些无意义的代码对于开发人员的积极性来讲就造成了致命的打击。设计不足,多半是因为经验有限,设计能力有限所致。3、渐进式设计(Evolutionary Design)
在敏捷开发中,过度设计和设计不足都是设计错误的表现方式,但两者之间又很难界定,所以在敏捷开发中对于设计采用的是渐进式的设计方式,它的特点在于系统的设计不局限于项目的开始或某一时刻,而注重在系统设计的整个过程中,在项目的进行中将最新的需求映射到一次次的重构和迭代中,最大限度的满足客户的功能和非功能性能需求。事实上,敏捷开发中也并没有完全解决需求不断变化导致设计不断变更这样一个问题,但却提供了一个可行的实现思路,那就是渐进式的去设计,有计划性的去进行设计,既不在系统开发的初期过度的重视设计,也不在系统开发过程中大范围的修改设计,敏捷开发强调在开发过程中循序渐进的优化设计和实现,这与敏捷开发与人为本,注重过程的基本思想是完全一致的。
到目前为止,关于敏捷开发的相关内容,我就先为大家介绍到这里,对于敏捷开发,还有很多的内容和工具需要我们去不断学习和实践,所以,我们还要不断的前行。
给大家推荐几本关于敏捷开发的书籍,如下: