最近我准备做一个基于Java的web程序(必须是Java,有各种原因,现在就不详细说了)。在这个过程中,我评估了一大堆J2EE组件(支持JSR,遵循MVC,基于角色CMS web服务程序容器框架)。
在花了大半天时间阅读特性列表和文档后,我都想把我的眼睛挖出来了。
假设我是在准备做一个调料架。
我之前做过一些小的木工活,非常清楚需要些什么:一些木头和一些基本的工具:一把卷尺,一把锯子,一个水平仪和一把锤子。
如果我是准备建一整座房子,跟做一个调料架一样,我还是需要一把卷尺,一把锯子,一个水平仪和一把锤子(当然还有些其他东西)。
就这样,我去了五金店买一些工具,我问营业员有没有锤子。
“锤子?” 他说,“现在谁还买锤子啊,老土。”
我惊讶的问他为什么。
“唉,锤子的问题在于种类太多,有大铁锤,羊角锤,球形锤。如果你买了一种又发现之后又想要另一种怎么办?你必须得再单独买一把。事实证明,大多数人确实需要一把能胜任所有工作的锤子。”
“嗯……,好吧,我想你是对的,那哪里有全能的锤子呢?”
“我早就不卖这种锤子了,这也相当过时了”
“啊?听你刚才这么一说,我还以为全能锤子是以后的潮流呢。”
“事实证明,如果你只有一种这样锤子来做所有的事,那就不一定都做的好。拿大铁锤敲钉子就不太方便。如果你想用锤子杀了你的前女友,球形锤是不二选择。”
“对,那,如果没人买这种全能锤子,你又不卖这种过时的锤子,那你卖什么样的锤子?”
“事实上,我们根本不卖锤子”
“呃……”
“根据我们的调查,人们其实根本不需要全能锤子。对的锤子做对的事情最好。所以,我们开始卖锤子工厂,可以生产各种各样的你想要的锤子。你所要做的就是和工人一起工作,开动机器,购买原料,付水电费,然后嘛咪嘛咪哄……你就可以立即得到一把完全符合你需要的锤子。”
“但是我可不想买锤子工厂”
“没关系,我们也已经不卖这个了”
“但是你刚刚说……”
“我们调查发现大部分人不是想要整个工厂。比如有一些人从来不会用球形锤(可能他们没有前女友,或者用冰锥代替)。所以买一个能生产世界上所有种类锤子的工厂对他们来说没意义。”
“嗯,有道理”
“所以,现在我们改卖锤子工厂的示意图了,这样我们的客户就可以建造他们自定义的只生产他们需要锤子种类的工厂了。”
“我猜你们也不卖这个了吧”
“当然不卖了。事实证明,人们并不想仅为了生产几把锤子去建整个工厂。我经常说,让工厂建造专家去建工厂吧。”
“我同意”
“是的。所以我们不卖示意图,改卖建造锤子工厂的工厂。每一个工厂都是顶级专家为你建造的,所以你不需要关心建造工厂的细节。同时你还能看到有你自己锤子工厂的好处,可以大量生产出根据你自己特定设计的锤子。”
“嗯,你们还……?”
“我知道你要说什么!!……我们也不卖这个了。由于某些原因,没多少人买这种造锤子工厂的工厂,所以我想出了个新办法来解决这个问题。”
“嗯哼”
“回头看看这种全功能基础结构,我们发现管理运行这种造锤子工厂的工厂非常恼火,锤子工厂也是。当你要运行一个类似的卷尺厂锯子厂水平仪厂时,就会很繁琐很复杂,就别说是一个木材制造集团控股公司了。看到了这个情况,我们觉得对于只是想做个调料架的人,这些的确过于复杂。”
“嗯,可不是”
“所以这个星期,我们推出一个制造通用工具工厂的工厂的工厂,这样你的可以造不同工具工厂的工厂就可以由一个独立的统一的工厂生产出来。它将只生产你所特定需要的造工具工厂的工厂,而且每个这种造工厂的工厂将生产一个基于你定制工具规范的工厂。最后出来的就是一套适用你项目的理想工具。你将有一把完全是你需要的锤子,一把定制的卷尺,所有的一切就只要按一个按钮(当然为了使其按照你期望的去做,你还需要部署一些配置文件)”
“那么你这根本没有锤子,一个都没有?”
“没有。如果你真的想要一个高质量的,符合工业设计的调料架,你绝对需要一些更先进的东西,而不是在过时的五金店买一把简单的锤子。”
“现在所有人都这么干吗?所有人现在都在用这种造通用工具工厂的工厂的工厂,虽然他们只是想要个锤子?”
“是的”
“好,我想我知道我该怎么做了。如果现在都这么做,我想我最好该学学怎么做。”
“好样的!!”
“有文档的是吧?”
【完】
原文链接:
http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12
本文来自CSDN博客,转载请标明出处:
http://blog.csdn.net/husheng86/archive/2010/11/12/6004618.aspx