看了这一贴 http://www.jdon.com/jive/thread.jsp?forum=62&thread=27279 和其他的一些贴后有感……
先引用一下BanQ总结的框架现状:
就目前Java框架状况,小结如下:不足之处请补充:
1. EJB3 可惜只有JBoss ORacle几家支持,时隔1年多IBM和BEA巨头还未成熟服务器。所以,JBoss Seam目前还只好先于JBoss AS捆绑在一起,Seam也不是IOC/AOP框架。
2. Spring 2.0 虽然亡羊补牢,为时未晚,可惜编译器换了,不能用Java标准编译器,那是不是在语言上走向另外一个方向?而且根据运行时动态更换软件组件设计原则,Spring 2.0将AOP weaving做成了静态,是不是设计倒退?虽然性能提升了。
3. RoR, 不是Java框架,万一系统不小心做大了,不知向何处发展?还将业务代码和MVC的Controller混淆在一起编程,减少架构层次达到快速开发的招,地球人都会,这是以丧失软件质量为代价的快速开发。
4. Scopes,独立的对象生命周期管理的框架,可以管理对象状态长短,可适用在J2EE和Swing当中,刚刚出来,状态管理是一件很复杂很灵活的事情,是否成熟有待观察。
5.JF, 国人开发的框架,因为观念问题,未获得国人广泛认同,所以,维护只能靠Jdon;进而又阻碍其广泛应用。
从我做项目一开始,就想要寻找一个好的框架来帮助完成项目,EJB、Spring、Struts、Jdon等等,自己的水平又很一般,也不可能每个框架拿来试,只能从各方面找用过的人发的贴子看,Jdon论坛上当然也有很多讨论,当时考虑到EJB(那时3.0还没出来)的复杂,听说Spring也不简单,呵呵……于是就选了Jdon这个短平快的,因为如果没有框架的话,就我们项目成员的水平也就是做假三层结构、伪J2EE的BS软件,所以第一、有个框架总比没有好,第二、不能太复杂难上手,一定要能尽快应付项目开发,最后选择使用了Struts+Jdon+Hibernate的框架。
可以这样说,使用了这么长时间后,感觉自己的J2EE开发才算是入门了。
Hibernate不错,使得开发很大程度地脱离了数据库,真正可以面向对象了,只要注意配置XML时的一些属性就好了,摸索出一套适合自己项目的配置方式就OK了,最主要就是many-to-one的配置方法,再就是lazy=false还是不设lazy,case-cade等方面。基本配好了,形成一套规范,之后再设计Model就容易多了,Model完成后复制一份做成Form类,呵呵……
接着就是DAO接口和DAO的实现,建议就定义最基本的增删改查和传SQL查就差不多够了,必要的时候定义传SQL更新和传SQL删除等。
接下来就是写Service接口和Service实现,跟DAO差不多,也都象是模板一样,照猫画虎即可,先写最基本的增删改查,以后再根据业务需要组织一些复杂的Service,在Service实现中调用Dao接口,有些方法可以重用Dao的接口,只需传入不同的SQL参数即可。
到此基本持久层和业务层就差不多了,再上面就是写Struts的Action,由于使用了Jdon的封装,很多基本的操作都无需写Action了,只要直接配置成ModelViewAction、ModelListAction或ModelSaveAction就可以了,再要有特别的操作,可以继承这些Jdon的Action,修改excute()方法即可,添加一些自己的操作然后再调用super.excute()。
总得来说,如果多做几个模块后,就基本可以掌握Jdon的使用了,而且持久层和业务层的代码非常规范化,项目也比较整齐,这其中重要的是将一些细节确定规范下来,全项目组的人员统一遵循。
正如 http://www.jdon.com/jive/thread.jsp?forum=61&thread=31159&message=23104101 这一贴所提,目前项目就是感觉在前台方面还不够舒服,使用了Struts中的Tiles技术,非常不错的技术,可以将整个网站的风格统一到模板上,同时各页面上的元素都可以做成类似“网页零件”的小JSP页面,这样不同的页面如果元素类似,只需拼装这些“零件”就可以了。我因为从事了几年网页设计制作工作,所以将整个项目的CSS逐级组织,达到即有统一风格,又可各栏目各页面变化。
然而即使这样,在表现层的开发还是感觉有点难过,其中有很大的一个原因也是人员方面,我们这个项目组中网页设计和制作人员很少,水平也一般,我觉得通常情况也是如此,大多数公司和项目组,是有程序员和设计师的,但中间却缺少所谓“表现层架构师”的角色,程序员不喜欢搞表现层的界面,认为那是设计的事,我实现了功能就OK,设计师不喜欢搞HTML、CSS、Javascript的事,看了代码就头晕……所以好象多数开发项目组这一环节总是鸡肋。再加上浏览器的软件和版本各式各样,开发人员通常不重视浏览器的兼容性,HTML和CSS等语言的容错性又导致大量的表现层代码非常不规范,可谓之混乱,许多的小问题,特别是客户提出的问题则通常集中到这个层面,结果是直接导致项目的表现不如人意,因为客户只可能看看你软件的表面实现的情况。
说了这么多,主要是想说Jdon框架总体上是非常不错的,我们看一个框架好不好,一方面从方向上来评判,即技术的前瞻性和科学性,这方面我觉得BanQ总结了很多文章,而且时刻关注着Java技术的最新动向,目前看IOC注入模式的应用、AOP状态拦截管理等都是先进的,同时Jdon也一再强调它的兼容性,可以和EJB共同使用,甚至也提到Jdon框架自身也是可以拆散和被替换的。这些也是当初选择JDon的原因之一,想着哪天真要是项目扩大了,需要分布式集群服务,也可以慢慢转到EJB上,呵呵……另一方面,好的框架就是用来使开发更容易同时决不牺牲规范性、扩展性等,所以Jdon在这方面也是很容易上手的,象我们项目组通过使用Jdon,大家对J2ee架构的多层概念有了更深的了解,再不是以前那种管他什么手段,只要实现功能就OK的开发思想了。一旦掌握了Jdon的使用,开发持久层和业务层都将是很容易的一件事,再特殊的就是要学会Jdon中的事务处理,这个俺还没找到方法,看了另一贴 http://www.jdon.com/jive/thread.jsp?forum=61&thread=31162 自己也没找到答案,不过我想问题不大的,因为是使用JTA的嘛。
最后,希望大家多多支持Jdon这个框架,我的感觉就是Jdon一直是靠 BanQ 一己之力在支持,没有形成一个开源项目的团队,大家不要象中国的旧传统中那样“文人相轻”,而是应该想法一起合作做出些真正有价值的事,即使目前Jdon由于BanQ一人精力的不足而无法更加完善,我们反而应该给予更多的帮助,而不是因此就说“你看你Jdon就是不如人家的什么什么吧?”。国外的很多开源项目和社区之所以成功,我想也是大家共同支持的结果,那么在中国我们就不能创建一个成功的开源项目,一个成功的开源社区吗?