首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> J2EE >> EJB >> 正文

发扬EJB,Spring思想将组件化进行到底

二、EJB、Spring的组件化实践

在EJB之前,大家所知的COM和CORBA已然火过一头了。这说明国外企业在经过长时间的信息化实践后,已经深受上面所说“低水平重复”的非组件环境之苦。COM和CORBA的确解决了一些问题,但还没有成为那种完整、成熟的体系。所以当初EJB出来的时候,业界疯狂热炒。这一方面是商业原因,更重要的是企业及开发者对组件化的热切理想。其实EJB的确是成功地解决了很多问题,但由于一开始就定位在高端,技术上相当复杂,导致众多开发者真正未能掌握,由此而产生了很多失败的项目。

这个时候,MS的.NET开始热了起来。.NET其实整个思想体系都是参照J2EE的。不过沿袭了MS产品一贯的易用风格,中小系统实现比较容易。但凡事有利有弊,MS为了迎合初学者偷懒的心理,架构上的RAD风格是相当明显的。很多人不知不觉中又被养成了懒汉。这导致很多开发者拿着.NET这种OOP的企业级技术,继续做过去那些高耦合的系统。最终结果,不论是开发者还是公司,都将重蹈以上笔者所说的覆辙。

应该说,J2EE一上来就强制开发者考虑OOP、分层、解耦、重用,这些很复杂但最重要的事情,最终必然后落得个“曲高和寡”的结果。但如果开发者真能以程序设计作为自己的毕生事业,就一定可以在Java的世界里经过痛苦摸索,掌握软件的精髓。

而后,火热的Spring运动开始了。Rod集多年企业级开发的功力,创造性地开创了简化版的EJB:Spring Framework。这里有个前提,那就是Rod多年企业级开发的实践,包括EJB的实践。正是这个精通EJB的天才人物,才可能对EJB进行简化和发挥。国内很多人自此运动后,把EJB以至于Sun形容得一文不值,却忘了自己每天都在用Java这一伟大的语言,并实践EJB这一技术所传承的组件化思想。而初学者在不明就里的阶段,只记住了Spring的简化,却不知实践组件化的根源所在。也就是说,不是Spring不好,而是说大家应该充分领会Spring所一脉相承的组件化解耦思想,而不只盯住Spring的简化。

自此,Java界开始了无尽的混乱。人们每天都在考虑如何“简化”J2EE,以至于把J2EE简化到Web+DB,简化到PHP那样高耦合的程度,或者骑墙式的RoR。历史再度倒退,组件化面临严重危机,甚至于坚持组件化的Java也被殃及池鱼。

这里不得不称赞一下Jdon和当家人banq。其实有一阵笔者也是Spring运动的热心拥护者,对banq的EJB论调相当不感冒。待自己晕头转向了两年,重回jdon,这才体会到banq的苦心。

正如众所周知的英语学习无捷径,好的程序设计同样没有捷径。

banq这几年冒天下之大不韪,一再坚持重申这个世间最简单的真理,的确是值得敬佩的。

三、坚持组件化,打造真正的软件工业

软件发展到今天,其实应该并且能够进入到工业时代了。

前面所说的企业软件危机,既是技术问题,也是产业问题。

今天,地球人的各种产业都是大分工、大合作的工业化产业链。生产效率提高了,就业人群也随之增加。在封建时代,大家都搞小作坊和行会,总觉得如果放开了,分工后大家会没饭吃。但资本主义的实践表明,越是分工合作程度高的产业,规模越大。原因很简单,在生产效率提高的同时,消费被极大地刺激,以至于产业膨胀的速度仍赶不上消费。像现在的汽车,分工合作程度极高,使发达国家的人们买了一辆再买一辆,换了一辆再换一辆,结果是整个汽车产业的繁荣。

我们软件业(尤以国内为甚)其实也一样,表面上是没事可做,事实上是由于软件业整体的低效率,导致人们用不起软件,或不敢用软件。成天忙于低水平重复导致的低水平局部竞争,企业真正关心的很多需求得不到满足。长久之后企业在信息系统得到的回报太小,自然不愿意花钱在信息系统上。

其实大多数开发人员和开发商,都想充分满足客户的需求。可惜你几十号人,打个比方,如果从种橡胶、挖铁矿、到设计车型,焊接,推销。什么都要做,只怕是连小推车也造不出来的。

所以我们一定要分工合作。

现在电脑有了,OS有了,DB有了,编程语言有了,这些最难做的基础工作外国人都做了。但进入企业级领域仍有无数的工作在等着你。国人在这一点上缺乏合作精神的劣习暴露无遗。明明只是精通业务,非要对设计指手划脚;不过是分析专家,非要对不熟的技术挑三捡四;明明可以沿用原系统的精华部分,非要替换以示高明;更有不懂事的毛孩子,自以为可以用RAD搞定一切。很多国人的牛人都一种普遍的“超人”意识,老子天下第一,其他人都是垃圾。殊不知软件业太大太复杂了,再新手的同道,也有很多你不知道的重要知识和奇思妙想;再高的所谓大虾,也有无数的盲点和愚见。

所以要分工合作,一定要学会尊重他人,实事求是。

至于技术上的问题,其实以笔者愚见。至少spring已经基本上解决了“解耦”的重大难题。大家只要不偷懒,把自已写的、别人写的、书上看的,网上下的,好好琢磨透了,以spring这种大体上“无侵入”的框架装配起来,即可基本上解决组件化的难题。

至于EJB,包括现在相当简化了的EJB3,由于笔者所知甚浅,不便多述。望高手指点。

每一个程序员,不要想偷懒,努力实践解耦自己的代码。

每一个开发商,不要太急功近利,要努力提炼产品的类库,尽力与其他产商互通互联。

每一个系统管理员、CIO和企业领导更要谨记:高耦合的系统不能要、无类库封装的系统不能要,无测试的系统不能要、无类库文档的系统不能要。

这样才可以杜绝国内急功近利的低水平软件横行市场,早日迎来中国软件的组件化时代,形成健康、有秩、高效的软件行业。(

上一页  [1] [2] 

【责编:Youping】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航