设计和实践

下个月会参加一个设计模式的课程,希望能获得一些新的知识。

设计模式和OO的设计方法,都是为了改进软件设计,提高代码复用率,提高可扩展性,适应不断变化的需求,包括现在和将来的变化。

而我看来,设计并不是个问题。当一个项目开始的时候,我们总能做出一个良好的,甚至强大优雅的设计。困难点在于,怎样把初始的设计保持下去。随着软件项目的进展,事先设计的功能一一实现,但往往,我们还必须承认,在计划之外,总有一些非计划的东西浮出水面。频繁变化的需求,平台或其他应用的限制,架构上隐含的缺陷,某个强力boss一瞬间的美好愿景。软件项目从来不是按照一张固定不变的蓝图施工,所以,设计必须面对变化。

即使很幸运的,我们能勉勉强强磕磕碰碰的让初始的设计伴随着项目的进度一起成长,还有更大的难题,即怎么在实现层面上来紧随这这种变化。特别是面对着总是非常紧张的进度压力,某个也许不合实际但必须去达到的时间点,总是不能避免的人员的变更。项目初始的代码总是清晰优雅的。结构清楚,功能健全,注释完整。它一天天膨胀,不同的人不同的代码一行行参杂进来,慢慢的变成了一个繁杂混乱的大线团。我们面对着几个月前的代码苦苦思考着它的逻辑,为了某个新功能自以为小心翼翼的修改了一个不起眼的地方,基于无数的痛苦经验,这个修改当然引起了一千个新的bug,然后为了干掉这些莫名其妙的bug,又是新的一千个...大家不断谈论着还有三天就要进行的release,而代码和面条一样,缠绕在一起,慢慢的腐败掉,面对这么一坨臭烘烘的东西的时候谁还有心情管什么设计,那个东西自从初稿後就改了一百遍了,天知道后面还会不会改来改去...

面向对象也好设计模式也好,让大家觉得我们很安全,我们的设计适应变化,我们能解决所有问题。但这只是技术人员基于技术的立场以技术方式解决问题的一个美好愿望,仅仅只能解决技术问题,如果足够幸运的话。

posted on 2008-08-26 13:40  Realloc  阅读(177)  评论(0)    收藏  举报

导航