走出Spring“轮子”的误区

来源:互联网 发布:matlab cell转字符矩阵 编辑:程序博客网 时间:2024/04/27 15:02

  关于国内外专家学者经常谈到Spring中有所涉及的一些“轮子”现象,我曾经在《Spring中的Rod Johnson 与“轮子理论” 》一文中系统地发表过自己观点,当然思想及理论的东西很多时候跟文化、习惯、思维、信仰等很多非技术的东西有着更多的关系。然而,我不赞成去钻牛角尖,去咬文嚼子。下面是本人跟一位网友的讨论,希望能借此走出Spring“轮子”的误区。我们没必要再为Spring有没有“轮子”再争论,放开手来做技术、做学问、做发明,让“轮子”们自己去理论、较量吧!

  2006-07-14 13:28  网友: Tendy

  我觉得有必要搞清楚什么是“重复的轮子”。
也许又要咬文嚼字了,但不是钻牛角尖

1. 举个例子。
假设宝马车的轮子,直径 1 M。
有种运输车的轮子,可以运载几百吨的泥土(这种车的确存在,在电视上见过)
如果用宝马的车子装在这种运输车的,显然不合适
于是发明了一种直径 2M 的轮子,用于运输车上(实际的轮子直径好像超过 2M)
上面所说无论直径 1M 的或直径 2M的,都是轮子,但它们决不重复
换句话说,它们满足不同需要。

2. 引用:
1 ) 江南白衣贴的
“Spring对于已有的优秀Project,自己不会重复开发轮子,比如ORM,而如果已存在的项目当时都不和Rod的要求,他就会在Spring里重新开发,比如Spring MVC”,这段话Rod在N个地方说过,应该不难找。

我的看法:像 Struts MVC 之类并不能满足Spring 的要求,所以 Rod 搞了个 Spring MVC,因此它们并不重复;Spring 使用 Hibernate 之类的 ORM ,不是因为它们优秀,是因为它们可以满足 Spring 的要求。

2) 大峡贴的
我想上面提到的Webwork、Tapestry以及Spring MVC等,也是遇到类似的轮子不合适或者不完美的问题,才会不断寻求改进的方法,才能不断的更新换代,也才导致一个又一个的新的、漂亮的轮子被重复发明出来。结论就是,轮子不在于有没有,不在于是否属于“重复发明”,其关键在于“合不合适”。子曾经也曰过:存在即合理嘛!

我的看法:大峡说的跟上面的差不多,都是是否满足需要的问题(合不合适)。

个人结论:我认同上面两段被引用的观点。

3.
最后说一句,
直径 1M 的轮子 和 直径 2M 的轮子都叫轮子(废话),但不能因为它们都叫轮子就认为是重复发明了;
Struts MVC 和 Spring MVC 都叫 MVC,但不能因为它们都叫 MVC 就认为是重复的MVC

下面是我的回复

2006-07-14 13:44 大峡

@Tendy
  像 Struts MVC 之类并不能满足Spring 的要求?哪webwork、Tapestry、JSF又都不满足了要求了?Spring+Struts+hibernate国内不是用得好好的吗?(有市场的原因、有习惯的原因还有其它一些社会的原因)。这是一个抽象的问题,公说公有理的问题,从用户角度说是一个适用性问题,从文字上说就是有点咬文嚼字的话题。

  因此,我是看着国内很多人引了他的“轮子理论”才写的那篇文章。请注意看我原文,我文章的愿意并不是而且也没有证明“Spring发明了轮子”,因此没必要为Spring究竟有没有发明轮子而争论(当然理性的争论是需要的)。
  
  我这一系列文章的目的很简单,就是希望大家保持一些平和的心态,国内程序员联合起来,共创一个良好、谐调的开源环境。而不是要通过贬低别人来抬高自己。你看我有因为自己不喜欢国内某个开源项目,甚至骂他们吗?好或者坏,是用户来评价,不是靠自己说的。你看我有在公众场合说过SpringSide的东西怎么了吗?你又看我有到处去鼓吹EasyJF做的东西就牛B了吗?国内当前的社会环境,要做一个好的软件出来难,要做一个开源并且能让大家称道的项目及产品更是难上加难。

  关键是思想的问题,思路的问题。若像某些“春迷”一样,只知道到我文章后面骂,去谈论生理学中的人体器官,去吐口水?会对国产开源的环境及社区文化建立有帮助吗?
 
 楼上举的例子很明白的,重复跟改进是两回事,这有一个度的问题,甚至最开始都有点主观的因素在其中的问题。“非中庸”的观点来观:功能的重复可以叫重复(比如都MVC),而一点细微代码的改动也可以称为改进(比如改一下某个项目的一些代码).

  “华山论剑”最近看点:

     一个“Spring轮子”引发的血案(1)

   一个“轮子理论”引发的“血案”(2)

  一个“Sprng轮子”引发的“血案”(3)

  一个“Spring轮子”引发的“血案”(4)

  一个“Spring轮子”引发的“血案”(5)

  Spring轮子血案的插曲

 一个“Spring轮子”引发的“血案”(6)-血案展示与现场花絮实录

原创粉丝点击