对Jdon的评价

09-01-23 beyondljs
刚才浏览了Jdon的开发步骤,觉得这个框架的侵入性太高了,程序对框架的依赖性比较强,个人觉得不太适合,比如,很多类都要继承或实现框架中的类或接口,那么写的程序脱离了框架还能有很好的扩展性吗?
         

banq
2009-02-02 09:51
你的这个意见已经不只一次提出,其他也提出,关于侵入性这个问题,其实有了annotation可以很好解决,但是annotation也是一个代码,你移植到另外一个框架和环境下,annotatio也要导入或修改,除非都遵循同样标准annotatio,这就是EJB了。

所以,没有标准情况下,过分追求侵入性,是理想境界,我们的程序可以在不同数据库 和JavaEE服务器之间移植,但是目前还做不到无缝在框架之间移植,这是对框架本身定义的误解,框架是模式的化身,模式是和代码融合在一起的,是代码的灵魂,没份代码软件都有其不同的灵魂,就象每个人的灵魂精神都不一样。

不管怎样,Jdon框架在这些建议下,也做改进,在即将到来的5.6版本引入Annotation,去除ModelIF/Model等继承接口,让代码更时尚一些。

5.6版本主要是增加Annotation元注释来替代原来一些接口,减少框架的侵略性。

Jdon框架默认提供了三种拦截器,当然你可以自己增加定制,这三种拦截器分别是对象池 Session周期和有态,以前为让你的service实现对象池等这三个功能,需要特别实现三个接口Poolable SessionContextAcceptable Stateful,而现在有一个可替代方法,就是使用元注解Annotation,例如:

@Poolable

public class ForumMessageShell implements ForumMessageService

表示ForumMessageShell将以对象池形式存在,这样对于一个主要代码很多的类,可以起到提高性能,防止资源无限消耗。对象池优点见: http://www.jdon.com/jivejdon/thread/35191.html,注意不要将小类做成Pool,因为对象池本省也损耗一定性能。

另外一个元注释是Model,原来所有Domain Model需要实现接口ModelIF或继承Model类,现在可以使用@Model来替代了,如:

@Model

public class Account{}

目前Jdon框架是Annotation和XML配置组合使用,Jdon框架并没有使用Annotation全面替代XML配置文件,因为我们对于元注解Annotation的观点是:适当但是不可乱用,是一把双刃剑。当所有组件都可以自由拆开IOC/DI,运行时也可自由指定顺序AOP,那么我们就能够更快地跟随变化,甚至无需重新编译整个项目,只要带一个组件到现场,XML配置改写一下,就能上线运行,注意,我这里提到了XML配置,如果你完全使用Annotation就达不到这个目的。

http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=35373&message=23119938#23119938

oojdon
2009-02-07 22:48
个人不喜欢jdon的hibernate的持久层封装

banq
2009-02-08 12:53
OOJDON有无更好的方法或好的建设idea,可分享一下

dearshor
2009-02-09 00:14
to banq 前辈以及所有jdon项目的developers:

建议尝试一下提供jdon framework对OSGi平台的支持,让jdon能够跑在OSGi platform上,并能充分利用OSGi platform带来的magic。哪怕只是建立一个新的branches也好,这一部分不急着发布,现阶段可以仅作探索。

原来的trunk——比如jdon framework 5.6版本——还是可以继续按按计划开发的。:-)

近来对OSGi是原来越感兴趣了。它的一套思路,在传统Java EE领域,那绝对一场brain storm。

比如上述“jdon的Hibernate的持久层封装”问题,或许可以这么办:定义一个持久层的服务规范,然后可以开发一系列的服务提供者,可以用native hibernate api来实现,可以用JPA加某个provider(比如大家熟悉的hibernate,又或是大家不大熟悉TopLink,EclipseLink(JPA 2.0参考实现))。最后把服务规范与服务提供者统统部署到OSGi平台上,让服务的消费者来消费它所需要的服务,甚至支持运行时动态切换服务提供者,and no any full redeployment。

猜你喜欢
2Go 1 2 下一页