发扬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这几年冒天下之大不韪,一再坚持重申这个世间最简单的真理,的确是值得敬佩的。
0
相关文章