看JDon论坛随感一篇——中国成功的开源项目在哪里?

看了这一贴 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就是不如人家的什么什么吧?”。国外的很多开源项目和社区之所以成功,我想也是大家共同支持的结果,那么在中国我们就不能创建一个成功的开源项目,一个成功的开源社区吗?

多谢,Jdon需要继续努力...,用户满意才是我们的前进动力。

jdon做了这么久还是站长一个人吗?
我觉得要发挥大家的力量,否则架构这种东西很难一个人做得面面俱到的。

>否则架构这种东西很难一个人做得面面俱到的
我的想法与你不太同,架构这东西其实只需要一个或几个就可以了。因为它是最具挑战性的和偏重个人经验和能力。架构是软件系统的方向和基本框架,非常重要,而软件功能则是按照该行业领域专家提出的需求逐步完成,这就需要大量程序员辛勤工作了,这样一个拥有良好架构设计并兼具强大功能的软件才会出炉。

JiveJdon不试图象dicuz那样功能做得如何强大,只是展示一个现代OO设计编程的设计之路,是一个实战性的教程。

我们需要将软件功能和软件设计分开看,谈到软件不是就是指功能,更要看其设计质量,就象我们的家具,我们现在以及不满足一张使用的家具,家具的设计更重要。软件设计质量就是考虑未来可维护性和可拓展性,而这点正是架构设计要点。

将Jdon框架发挥巨大作用,是依靠广大社区程序员,没有社区领域专家经验,是无法设计出强大功能的论坛的。


[该贴被banq于2007年03月26日 18:59修改过]
[该贴被banq于2007年03月26日 19:00修改过]

banq是什么时候开始研发这个jdon架构的?
我感觉即使在架构设计方面也只有你一个人,jdon论坛也是你一个人在做。
jdon站点也是你一个人在维护。
时间就是金钱,众人的力量是难以估量的,要懂得利用。

看过“穷爸爸,富爸爸”关于E S B I四个象限的人的区别了吗?
感觉banq您处于S象限,而我目前处于E象限,其实有时候也挺羡慕你的,呵呵。

不过我希望自己往B象限走,而不是S,呵呵,个人感觉而已,我知道banq不会太在意的。

注:E-雇员、S-SOHO、B-商人、I-投资者

大家不要BS商人哦,商人也在为这个世界创造价值,不要以为做具体的技术工作才为这个世界创造价值。

呵呵……看到pipo的回话里提到四个象限,有意思,英雄所见略同了,希望交个朋友,呵呵……QQ:2389961

另外,也同意banq的观点,我基本理解banq了,框架这个东西是设计思想的一种体现,也许是非常独特的设计思想起着决定性的作用,想让人帮别人可能也帮不了什么大忙,还怕越帮越乱,能找到一个有着同想设计思想的人可不容易,呵呵……

完全理解.~ .

离javaeye,越来越远了