Home > 我就是未分类 > 复用,灵活,复杂

复用,灵活,复杂

March 1st, 2006

“软件危机”让程序设计人员发现难于维护的软件成本是极其高昂的,当软件的规模不断扩大时,这种综合成本没有人能负担,并且即使投入了高昂的资金也难以得到可靠的产品,而软件复用的思想是解决这一问题的根本方法。

将软件看成是由不同功能部分的组件组成的有机体,将编写一特定软件的工作就变成了把不同组件组织连接体来的简单问题。为了得到这种灵活性,每一个组件在设计编写时被设计成完成同类工作的通用工具,使其适用于各种场景。

现实中的问题是:对于项目开发而言,有一些特定的应用场景,场景的变化是需要重新设定一些(或者很多)细节的配置文件的,这同样也是获得灵活性所需要付出代价的一部分。框架性的东西确实需要灵活性,但现在这世界是不是过分的强调了灵活的重要性?这似乎成了一个哲学问题。

任何试图以100%灵活性的配置文件解决所有问题的想法,其效果只是以一种复杂性来换取另一种复杂性。

现代程序设计,强调模块化,高灵活性,不管是OOP,还是炒的很火爆的AOP,复用性已经成了终极目的,他的重要性,无意间甚至超过了程序的可用性,这本身就是对软件工程的嘲讽。复用的目的是什么?快速开发,避免重复劳动,使工作变的简单,节约劳动力。

要复用就要灵活。为了提高灵活性,我们疯狂的编写各种各样的类,尽量的拆分。有一天,发现这么做也不足够,我们开始用动态代理。虽然它需要的运行时runtime)支持,无比的耗费资源。经历过作网页不敢用框架怕客户端速度慢的年代的我,实在没办法认同任何一种对资源的浪费。可它确实带来了方便,带来了灵活性。所以我们又开始疯狂的设置接口,写配置文件。然后我们发现,这样似乎更复杂了。

我 不反对复用和灵活,相反,我也希望自己的写的东西足够灵活。可是问题是,复用已经被提到了一个太高的高度。现在各大社区内已经很少见到对软件可用行,代码 运行速度,程序性能的讨论了,相反,我们放了过多的精力在灵活性上。可结果呢?为了灵活,我们让程序变的复杂,我们为一个向世界问声好,需要给程序增加一 个又一个的配置文件,成倍增加程序的开发周期。难道这能算是我们的初衷?

Ruby宣称让初学者在半天内完成web应用的时候,突然觉得有些什么值得期待。

我就是未分类

  1. No comments yet.
  1. No trackbacks yet.