我为什么不喜欢框架

导读:本文由敏捷翻译 – 李盛晖翻译自 Benji Smith 发布在 Joel Spolsky 网站上的文章《Why I Hate Frameworks》。原文写于2005年9月,已有些年头了。前几周有用户在Hacker News上推荐了这篇文章,相关讨论也很激烈,故而翻译。如需转载,请查看文章末尾处的声明。

我正在规划构建一个Java web应用程序(是的,它只能是java,由于很多原因,我现在不想谈论这个)。在构建过程中,我正在评估一堆J2EE支持信息组建的符合JSR的基于MVC规则的CMS网络服务应用程序的容器框架。

花了很多时间读完特征列表和文件之后,我的眼睛都快瞎了。

假设我已经决定要搭建一个调味料的架子。

我以前做过一些小型木工项目,我想我完全知道我需要什么:一些木头和一些基本工具:卷尺、锯子、水平仪和锤子。

如果我打算建一整座房子,而不仅仅是一个调味料架子,我还是需要一些木头和一些基本工具:卷尺、锯子、水平仪和锤子(以及其他工具)。

所以我去五金商店买工具,问售货员哪里能买到锤子。

“锤子?”他说,“再也没有人买锤子了。他们都过时了。”

惊讶于时代的发展,我问了他原因。

“问题在于锤子多种多样。大锤、羊角锤、球喷丸锤。假如你买了一把锤子,后来却发现你需要的是另外一把不同类型的锤子怎么办?为了工作你只能再买一把。事实证明,大多数人想要的是一把简单的能够完成在你的生活中会遇到的不同锻造任务的锤子。”

“嗯。好吧,假设你说的全对。你可以告诉我哪里能找到一把通用的锤子吗?”

“不,我们这再也没有卖锤子了。他们都过时了。”

“真的吗?我还以为你只是说通用的锤子是大势所趋。”

“事实证明,如果你仅仅制造了一种锤子,它具有完成所有不同类型的锤子所能完成的相同工作,那么它并不能面面俱到。用大锤来锤击钉子不是很有效。还有,如果你想做掉你的前女友,那么一把球喷丸锤无可替代。”

“没错。所以,如果再也没有人买通用的锤子,而且你也没有再卖所有那些过时的锤子的话,你有什么类型的锤子卖?”

“事实上,我们根本没有卖锤子。”

“那么……”

“根据我们的研究,人们真正需要的终究不是一把通用的锤子。拥有一把适合干活的锤子往往更加重要。所以,我们开始卖锤子的加工厂,这些工厂能够制造你有兴趣使用的锤子。你所有需要做的事情就是为锤子加工厂配置工人,开动设备,购进原料,支付公共费用,以及PRESTO……你就可以马上拥有刚好满足你需要的一类锤子。”

“但我并非真的想买一个锤子加工厂……”

“这很好。因为我们再也没有卖锤子加工厂了。”

“但我认为你刚才说的……”

“我们发现大多数人实际上都不需要一整个锤子加工厂。有些人,比如说,他们永远不需要球喷丸锤。(也许他们至今仍未与女友分手。或者他们改用碎冰锥杀/死她们。)所以对有些人来说,购买一家可以制造几乎所有类型的锤子的锤子加工厂没有必要。”

“恩,很有道理。”

“所以,相反的,我们开始卖示意图给锤子加工厂,让我们的客户能够建立他们自己的锤子加工厂,常规设计制造他们实际上需要的一类锤子。”

“我猜猜。你们再也没有卖那些示意图。”

“不。当然不。事实证明,人们不希望建一整个工厂只是为了制造两把锤子。把工厂制造留给这方面的专家,那是我经常说的。”

“这点我完全同意。”

“是的。所以我们不再卖那些示意图并开始卖锤厂制造工厂。每一个锤子工厂由锤子工厂业务上的顶级专家为你打造,所以你不用担心在工厂制造过程中的所有细节。然而,根据你自己特定的锤子设计,你拥有你自己的定制锤子工厂,批量生产你自己的定制锤子,在这些方面还是很有好处的。”

“呃,这不是真的……”

“我知道你想要说什么!!……我们也不再卖那些(锤厂制造工厂)。因为某些原因,很少人买锤厂制造工厂,所以我们想出了一个新的方案来解决这个问题。”

“恩恩。”

“当我们后退,看着全球工具基础架构的时候,我们认定人们被锤子工厂的管理和运营,以及其生产的锤子弄得沮丧不已。当你在运营卷尺加工厂、锯子加工厂和水平仪加工厂,应付类似的情景时,这类开销也会让人生厌,更不用说经营一个木材制造集团控股公司。当我们真正面对这种情况的时候,我们认定,对于只是想搭建一个调味料架子的人来说,情况太过复杂。”

“是的,没错。”

“所以这个星期,我们在引进一个通用的工具加工厂,那样的话,你所有由不同的工具加工厂生产的产品,都可以由一个单一的工厂制造。加工厂将生产你真正需要的唯一的工具,而且每一个加工厂将生产基于你的定制工具说明的单一产品。这个过程制造出来的最后一组工具将是适合你的特别项目的理想工具。在你按下按下按钮之后,你将拥有想需要的最合适的锤子,最适合你任务的卷尺(尽管你也不得不部署一些“配置文件”,使它能够按照你的期望运行)。”

“所以你任何锤子都没有?一把都没有?”

“不,如果你真的想要一个高质量的工业设计的调味料架子,你迫切需要一些比从劣质的五金店买来的简易锤子更加先进的东西。”

“这是现在每个人都这样做的方式吗?每个人现在都正在使用通用的工具制造工厂,无论他们什么时候需要一把锤子?”

“是的。”

“恩……好吧。我想这就是我必须去做的。如果这就是当前做事的方式的话,我想我得好好学习怎么去做。”

“祝你好运!”

“这有一个文档,对吧?”

(编注:下面内容是 Benji Smith 发布在Joel Spolsky网站后的回复更新。)

现在我已经自豪地拥有了自己的通用工具工厂的制造工厂,我很高兴知道它符合“工具制造工厂”的GPTBFF 0.97 RC2草案。

幸运的是,面向工具的元工厂联盟里的70%工人都通过了这个版本规范的验证。

不过标准之争即将开始:有一种引人注目的技术,名为UXCTBFFF(Universal Trans-Continental Tool Building FFF)的,它承诺统一制造工厂行业,使之符合那些同时使用公制和标准工具的国家指导方针。

我的理解是,会有一个补丁包,利用UXCTBFF的用户界面创建抽象层,就可以使 GPTBFF 0.97 RC2 与 UXCTBFF 标准的兼容性几乎达到95%。

不错!

这种新的发展定当能够提升调料架的质量(只要我的工厂建造完后开始运行,培训好工人,从柬埔寨进口原材料,这些天我就要开工做调料架了)。

 

原文:BenjiSmith  编译:敏捷翻译李盛晖

如需转载,但请注明原文/译文出处、译文超链接和译者等信息,否则视为侵权,谢谢合作!

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部