AspectJ不是正确的道路- -| 回首页 | 2004年索引 | - -JSR 170

什么是“好”?- -

                                      

小陶:一会觉得这个好,一会觉得那个好
http://www.blogdriver.com/showBlog.do?diaryID=159349
http://www.blogdriver.com/showBlog.do?diaryID=159552
http://www.blogdriver.com/showBlog.do?diaryID=159861
 
可能这就是学生和职业程序员的区别?我评价一个东西好与不好,很多时候没有那么多审美的眼光。我的标准是低侵入性,自由,无绑定,便于移植(当然,首先还是在功能和性能都可以接受的前提条件下)。我的业务组件顶好是一个Java Bean,不用实现任何与业务无关的接口(例如EJBObject之类的)。所以我要用Spring做容器,回头我换容器不用改业务组件。同样,AOP框架也别对我的aspect有太多的侵入性,顶好aspect也是一个Java Bean。那现在既然是还没有这样的选择,我就退而求其次,叫我的拦截器实现一下MethodInterceptor接口,我就忍了,权当是做个标记,说“这是个拦截器”。但是要让我用另一种语言来写aspect(AspectJ的做法),或者要通过某个特定的classloader来使用AOP(JBoss的做法),不行——要是我不想用JBoss了怎么办?要是AspectJ没人维护了怎么办?
 
并不是在贬低学生的眼光。用一种审美的眼光,有时可以获得另一个角度的收获,比如说可以看到从语言的角度如何实现AOP更加优雅。但从企业开发的角度,我的第一考量是可移植性。所以,尽管AOP-Alliance并不完善(而且现在也疏于维护),好歹它是个标准API,好歹有几个重要的产品支持(例如Nanning和Spring AOP)。前一阵有个朋友说他的aspect是用AspectWerkz写的,现在想移植到Spring上面,费死劲了。

- 作者: gigix 2004年05月17日, 星期一 22:40

Trackback

你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=159869

回复

- 评论人:匿名

Wed Oct 27 14:59:59 CST 2004  作者Blog

gigix在青鸟公司

- 评论人:gKarerM

Wed May 26 09:43:26 CST 2004  作者邮箱 

很感兴趣gigix在那个公司工作,不知道可不可以理解一下?

- 评论人:taowen

Mon May 17 23:42:09 CST 2004  作者邮箱  作者Blog

“好”是审美观点。对于AOP的概念,什么实现得最美,最可能变得更美。
我没有考虑目前采用AspectJ,只是觉得AspectJ是发展方向,至少有IBM。

- 评论人:UltraFool

Mon May 17 23:22:10 CST 2004 

我说的是hibernate的PO为例,肯定是直接new的,当你要对它拦截或者扩展怎么办呢?否则就回到EJB2以前的老路了,EJB3的实体组件不是传说也是直接new的吗?

- 评论人:gigix

Mon May 17 23:17:42 CST 2004  作者邮箱 

任何一个组件都不可以直接new出来使用,必须通过某种创建型模式,我想这应该是不需要再讨论的。

- 评论人:UltraFool

Mon May 17 23:08:19 CST 2004 

spring的组件也不可能是完全可移植的,我记得potian的blog很早就提到过了的,任何事情都不是绝对理想的吧.动态AOP的对POJO的侵入性应该最大,要求都从工厂类取得,即使有了IoC这玩意,那你的domain object之类还是没办法直接new,除非你的AOP使用是有限的.至于aspect的逻辑,这个很好解决,我可以写中立interceptor,很容易适配于dynaop,aspectwerkz,aspectj等

为什么不担心hibernate没人维护啊,呵呵,其实真正没人维护我发现好像是nanning,看看tirsen现在在玩什么吧;-)

评论内容: