`
happmaoo
  • 浏览: 4309807 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

  对于胡戈同学的“馒头血案”中的故事来说,那确实是血淋淋的事件发生,而且也是虚构的环节,所以我们可以当着娱乐(当然你要能反思一些东西也没人会管你)。而对于“春迷”们这次非组织、自发的维护Spring的运动并最终制度了“Spring轮子血案”的真实事件来说,让我们看到了一场比鲜红沸腾的热血还要可怕的血――冰冷的血,Web 2.0时代里的血,从红色变成了白色、然后又变成了黑色的血。

  从开始的一些莫须有的批评,然后发展到非组织、自发公开对EasyJF的诋毁,然后发展到一些资格非常老的“春迷”开始拿性器官来说事;最后是利用自己的权力,删除了一位说了几句Spring“坏话”的同学的帐号及文章。

  故事的开始是一些比较理智的“春迷”站出来跟我非常友好讨论,并纠正我《轮子理论》一文中的一些错误。下面是摘两句:

匿名:
  “相当无聊,你以后做项目的时候先写一个JDK的类库好了,然后慢慢做...看你很喜欢发明轮子,干脆从钉子,螺丝,开始做好了. ”
Jonney(此君开始的表现是一个非常冷静也比较理智的春迷)
  事情没有大家想的那么复杂,当问题变得复杂的时候,就得到问题的根源去寻找答案了。
有没有已经重复地发明轮子这是一个问题,有没有能力去发明一个轮子这是一个问题,对现有轮子去改造这个也是个问题……无所谓,无论是什么问题,只要它能解决开发中的难题就是正确的!!这也就是Rod Johnson所说的一切实事求是的“循证架构”的工作方式!!

  当然其中,在众多“春迷”当中,最具有代表性的讨论应该是下面这位在Spring领域中有一定“成就”,资质及武学修为上都算是上层的“春迷”代表的谈话。因为这份讨论是公开的,因此,大家可以看到,我们的讨论幽默及风趣中,不时带有点八卦的性质,然而他却透露出了所发生血案的一些原因。

  这个讨论是发生在一个同学写了一篇对比Spring与Jdon等框架中的代码分析的文章后面,当时文章后面满篇针对该同学的批判,我在后面插了一句,于是该春迷代表马上冒了出来。
大峡:
  Spring也是人写出来的,没有什么神话的存在,人写的程序都会有问题,不要因为楼主想站出来那么客观的说了几句真话,大家就受不了。不过建议楼上的多帮忙测测国内的东西,有时间帮我们也测测,呵呵,结果可能会更加惨不忍睹,不过也得有人来测。看看本人愚作《玩玩Spring之Rod Johnson 与“轮子理论” 》,你会发现其实会忽悠人的不仅仅是我们中国人,  http://www.blogjava.net/daxia/archive/2006/05/07/44855.html  
  
江南白衣:
@大峡 你那篇东西就是我总是对寒寒这么火爆的前戏:)
 还是那句,先搞定Spring到底做了什么,再来推倒和玩玩吧。你们是保持在一个一知半解的状态,一边把他神秘化神话化,一边进行胡乱的抨击.....真正的程序员根本不觉得Spring是神话,也不会胡乱的进行贬低。
比如你说Spring既宣传轮子理论,又有自己的Spring MVC,这个理由Rod已经解释过无数次了,不知道你为什么可以坚决听不到。
“Spring对于已有的优秀Project,自己不会重复开发轮子,比如ORM,而如果已存在的项目当时都不和Rod的要求,他就会在Spring里重新开发,比如Spring MVC”,这段话Rod在N个地方说过,应该不难找。
  
大峡:
  @江南白衣
  我那篇文章中具体贬低Spring的地方吗?希望江南大侠帮助可以指出来,谢谢。否则大家会误解的!我有一个坏习惯:强调的设计思想,而不是具体的技术或者工具。更确却的说,我不是一合格的coder。
  “Spring对于已有的优秀Project,自己不会重复开发轮子,比如ORM,而如果已存在的项目当时都不和Rod的要求,他就会在Spring里重新开发,比如Spring MVC”。
  这句话,换过说法就是:“绝不发明自己认为好的轮子,而只发明自己认为不好的轮子”,有两样吗?反正都是发明轮子。
  唉,咬这种字眼没太多意思,反正大家都知道Spring与hibernate之间的暧昧,也知道Spring与webwork之间的一些瓜葛。本人愚作《玩玩Spring之IOC(一)》中也有提到一些。
  
  
江南白衣:
  送佛送到西,学习Spring必看的一段总纲,Rod自己的<introducing to spring framework><br>  “Spring 不重新发明轮子。因此你会发现Spring 中没有日志,没有连接池,没有分布式事务调度。所有这些东西都由开源项目(例如提供我们所有的日志输出的Commons Logging,或者是Commons DBCP)或你的应用服务器提供。同样的道理,我们不提供实体/关系映射层。因为有像TopLink、Hibernate和JDO 这样的优秀的解决方案。 <br>  Spring不直接与其他开源项目竞争,除非我们觉得我们能提供些新的东西。比如说,像其他开发者一样,我们从未就Struts感到满意,我们觉得MVC Web框架还有改进的余地。(随着Spring应用地快速推广,很多人也同意了我们的观点。)在其他领域,例如它的轻量级IoC容器和AOP框架,Spring有直接的竞争,但Spring确实是这些领域的先锋。” <br>  连这段都不看,不知道你从哪里了解Spring的轮子理论的。<br>  <br><strong>大峡:</strong> <br>  @江南白衣 <br>  Spring不直接与其他开源项目竞争,除非我们觉得我们能提供些新的东西。这句话你慢慢读会发现问题的?MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了? <br>  还有“随着Spring应用地快速推广,很多人也同意了我们的观点。”这句话,更是忽悠了,“很多人”是多少?是所有java web开发中的百分之多少?一半以上?0.3成?还是围着spring转圈的那群人?可以作一个抽样调查的。 </introducing>

江南白衣
  @大峡
  "如果Spring的MVC等能证明他本身也是发明轮子的话,我们再去想想Rod Johnson大叔说这话的动机,难免会让人往其他不友好的方面想。"
  别说骂秃驴不是骂和尚,你整篇东西都是上面引文那调调。

大峡:
  @江南白衣
  “如果Spring的MVC等能证明他本身也是发明轮子的话,我们再去想想Rod Johnson大叔说这话的动机,难免会让人往其他不友好的方面想。”
  这也是我写这篇文章的时候比较动激动的时候写的一句话。从不同的角度可以读出不同的东西。呵呵,当时那篇文章是否要这句话,可是作了很久的思想斗争的。一个人要做一件事情,反对的人肯定会找很多理由,而做这事情的人也会找更多的理由。
  你应该看到,我说的是“如果”。我没有证明,我自己也无法证明,也没有资格来证明,等专家来证明。所以后面的结论在没有证明的情况下也不成立的。
  所以那文中后面我加了这么一段:
  “问:大峡,作为Spring的超级粉丝,我很负责任的告诉你,你是在钻Spring的牛角尖,拿“轮子理论”来说事,这是无理取闹,更是对Rod Johnson大叔的不敬。
  答:从Rod Johnson大叔身上学习了很多东西,我敬重Rod Johnson大叔,也敬重科学技术,我所说的只是实事求是,您觉得不对的地方请予指正,万分感谢。”
  
江南白衣:
  @大峡
  “MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了。反正大家都知道Spring与hibernate之间的暧昧,也知道Spring与webwork之间的一些瓜葛。”
  拜托,连八卦都没搞清就"反正大家都知道了", Rod与gavin之间早就粗口相向了,还暧昧个头阿。

大峡:
  @江南白衣
  Rod与Kevin之间早就粗口相向了,还暧昧个头阿。
  --------------------------
  哈哈。至少“曾经拥有”过吧,八卦的东西总归有点八卦。所以我没太把那八卦的事儿太当真。瓜葛又如何,暧昧又如何,反正受罪的不是他们............。
  但“MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了”这句话,语法及语义应该都不存在问题。谁又能够保证,说不定那天Rod Johnson突然发现现ORM也有改进的余地了,大刀阔釜把spring现在有关jdbc封装的东西改一改,一个能代替hibernate的ORM就出来了呢。所以他的那句“改进的余地”,也只是给自己找的一个说法而已。实在想不通,就用这句话来解释吧:存在即合理。再科学客观一点:让市场及历史来证明一切吧。
  
  从与该“春迷”代表所讨论问题来看,一切都非常中规中矩,让我也从心底里面佩服“春迷”们的知识及技术水平。就像我曾经经常跟朋友聊起就说,中国什么都缺,缺资金、缺环境、缺管理,但唯一不缺的是人才。这就是为什么要提倡先学学“发明轮子”的原因!
  我想若是所有“春迷”都能这样来讨论,就不会发生那些可怕的血案了。

  欲知后事如何,请看下回分解!

  下一回:一个“Sprng轮子”引发的“血案”(3)
  看点:

  作为一名有了6年工作经历的程序员,我看重的是思想,是方法,而不是具体的语言。从微观一点来说,更看重的是商业逻辑的实现部分,而对于哪些辅助开发性质的框架或工具来说,掌握其核心原理,能达到精通一门,并能根据软件项目中用户需求或者项目需求,有选择性的使用即可。
  当然,这些言论在我看来,纯粹属于无理取闹的评论!不过也受到一些影响,毕竟没想到写点技术上的东西也受到如此多的束缚。我动了“春迷”家的奶酷,或偷了“春迷”的什么东西似的。我何苦呢,好好写自己的程序,不要被扣工资,多挣点奖金就是了,生活也很滋润的啊。毕竟自己胆小啊,以至于本人到现在为止都无法继续写关于《玩玩Spring系列》的文章。
  我想,我不写Spring了行吗?惹不起,我躲得起啊!

  详细进入>>



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=913780


分享到:
评论

相关推荐

    spring boot入门的第一个项目

    spring boot入门的第一个项目spring boot入门的第一个项目spring boot入门的第一个项目spring boot入门的第一个项目

    spring教程spring教程spring教程spring教程

    很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程很好的一个spring教程

    eclipse通过Maven创建一个Spring MVC项目

    eclipse通过Maven创建一个Spring MVC项目

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    spring2.0升级到spring3.0.5的开发包

    将spring2的开发包spring.jar替换为附件中压缩文件的所有jar包,既可以将spring2.0的应用升级到spring3.0.5

    spring cloud和spring boot两个完整项目

    spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 ...

    spring-boot spring-security-oauth2 完整demo

    spring-boot spring-security-oauth2 完整demo,可以使用微信的方式来获取token和查看资源,注意看代码中的备注

    SpringBoot+SpringCloud面试题.doc

    Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注...

    论坛系统项目(Struts 2+Hibernate+Spring实现)

    论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...

    Spring in action 2nd

    Spring in action Spring in action Spring in action Spring in action Spring in action Spring in action

    spring3、struts2、mybatis结合的一个简单web实现

    spring3、struts2、mybatis和tiles结合的一个简单java web实现(XX学园管理系统),意在这几个框架的结合配置,供初学者学习参考。附件包含完成的代码和数据库脚本。

    一个spring项目

    一个适合刚入门springmvc的项目,希望对各位同学有所帮助

    Spring Boot 2.X 实战教程.pdf

    本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个Spring Boot程序(使用Spring Initializr构建、Spring Boot代码讲解、安装Notepad++)、构建系统、代码、配置、三种方式运行程序、安装...

    Spring3,Spring4,Spring5 jar包

    Spring3.2 Spring4.3 Spring5.0三个版本的jar包,都是官方下载,亲测可用,放心下载。

    spring v3.2源码

    无错运行,还有一个原因就是里面包含大量的测试用例,你可以启动他们的测试用例,然后跟着测试用例在eclipse按着F5或者F6或者F8跟着代码走一遍,印象会深刻很多。虽然每个版本之间有差别,由于我们想要研究的都是...

    springcloud实战

    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格...

    spring的一个适合初学者的项目

    spring的一个适合初学者的项目

    SpringCloud+SpringBoot+OAuth2+Spring Security+Redis实现的微服务统一认证授权.doc

    SpringCloud+SpringBoot+OAuth2+Spring Security+Redis实现的微服务统一认证授权

    阳哥_SpringCloud思维导图.mmap

    Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易...

    spring2_5 系列jar包

    spring.jar spring-agent.jar spring-aop.jar spring-aspects.jar spring-beans.jar spring-context.jar spring-context-support.jar spring-core.jar spring-jdbc.jar spring-jms.jar spring-orm.jar spring-test....

Global site tag (gtag.js) - Google Analytics