posts - 176, comments - 240, trackbacks - 0, articles - 7

[导入]过度设计与设计不足

Posted on 2005-12-28 23:11 canonical 阅读(1538) 评论(3)  编辑  收藏 所属分类: 设计理论
     Agile批评过度设计(over-engineering)的声音很大,但对于设计不足(under-engineering)同样是持坚决的否定态度 的。修改过度设计的应用比修改设计不足的程序要容易的多。因为简化的途径是明确的,而走向复杂的途径却往往是难以控制的。Refactoring To Patterns试图引入一些经验,但这些可预见的调整多半只在细节处,其影响是局部的。一个复杂性低层次的设计要支持一个复杂性高的应用,所需的代码量 不是线性的堆砌,而是几何级数式的增长,重构的时候需要做出的改变往往也是影响全局的。而事实上,设计不足是比过度设计更加常见的情况。真实的情况也许 是,在真正需要我们做出创造性设计的地方我们因为无知和无能而设计不足,而在那些渴求简单的地方,我们却自诩为先知而加上很多华丽的设计来维护虚幻的可扩 展性。这里的度是很难把握的。高段位的棋手可以比低段位的棋手预见到更多的步数,而一个优秀的软件架构师也需要比普通的程序员更早的预见到系统发展的障 碍。在我们明确可预见的范围内,当然是要把所有的设计做好,而在我们思维的边界处,"行"就变得比"思"重要了。
    大谈"over-engineering"的主多半都有着丰富的过度设计的经验,千万不要把他们回顾时的话语当成是普遍的真理。所谓大巧若拙,精炼的小诗 可比长篇大论难写的多了。有时采用一种简单的处理方式,是因为我们感觉到它不会成为障碍,虽然此时并没有明确的设计过程。你必须有能力进行过度设计,才能 真正理解简单设计的精妙之处

Feedback

# re: [导入]过度设计与设计不足  回复  更多评论   

2005-12-29 09:15 by TrampEagle
很同意上述观点,那些大师们的很多设计都有其精妙之处,但不可避免的都有其不足之处,他们对自己经验的总结,并不一定就适合他人,设计不是单靠模仿就能学得来的,这就是所谓的读万卷书不如行千里路,但经验的积累又不是一蹴而就的,不但需要知识的沉积,还需要长久经验的总结升华,设计就象写文章,不可能一下子就长篇大论,但如果没有长篇大论的阶段,写出的文章很难短小精悍。

# re: [导入]过度设计与设计不足  回复  更多评论   

2005-12-29 11:30 by Qutr
看了楼主的一系列文章,感觉楼主的知识面很广。
总是能站在一个相当的高度上看待问题。
长期关注你的文章!

# re: [导入]过度设计与设计不足  回复  更多评论   

2006-02-24 13:47 by sodme
文中所含思想, 很值得我们反思: 在阅读一些所谓的名家名作时, 应该抱着怎么的一种辩证观点去思考和采纳.

只有注册用户登录后才能发表评论。


网站导航: