锁定老帖子 主题:Jacn
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-10-09
就是要那么做,至少也要用groovy,反正装配这个过程又不会频繁执行。看起来更加简洁,而且本身也可以搞成不需要编译的脚本 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-10-09
看了一下http://jacn.sourceforge.net/jacn-manual.html。没下载源码看。
可能是我功力尚浅。感觉这个包好象没什么用。 IOC可以使程序解藕,可你用AbstractJacnConfigFile又把代码偶合到一块,假如两个对象依赖关系改变,我们还的重新编译AbstractJacnConfigFile的实现。把对象之间依赖关系由xml又转化到java类里。 ConvertUtil感觉也没什么用,spring.xml很是简单。没必要。 假如jacn不以来 spring 包,那还有点意思。 |
|
返回顶楼 | |
发表时间:2005-10-09
charon 写道 这个jacn怎么看起来不那么顺眼阿。用代码代替xml,文字量是少了,但是把有些东西硬编码在里面,怎么着也不舒服。
就是要那么做,至少也要用groovy,反正装配这个过程又不会频繁执行。看起来更加简洁,而且本身也可以搞成不需要编译的脚本 谢谢。 我希望只是一开始看起来不那么自然。但是使用起来很自然, 你得到IDE 帮助,code completion, refactoring, etc. 只要你的编译能通过,你得配置就不会有大问题。 Bean Management 实际上在开发过程中是一个持续性的修改和添加的过程, 也就是说 refactor-ability 显得非常重要。你经常需要修改bean 的名字,增加和修改一个 property, 或者修改一个bean class 的 名字。Jacn 让你轻松使用IDE 提供的 全局安全 改名的 功能。 如此等等, 这才叫效率。 这也是为什么我不愿意使用 Groovy - 基本上没有 refactorability. 顺便说一下, 我也是 Groovy 的 contributor 之一, 去年做了大量的 Groovy 本身的工作,特别是在Groovy 生成 JVM bytecode 的 模块中 和 动态数据类型性能优化上 (你会看到我的名字如果你看Groovy 的源代码的话)。 当时我就有用 Groovy 改造 Spring 的 想法。但是后来我自己把它否定掉了。 另外Jacn 把大量的 Spring 的 基础功能 bean 完全掩藏起来。 例如 开发人员基本上不需要学习Spring 的AOP, Transaction 等等必须的 FactoryBean。 这会让新手很快就能上手。 我现在用 Jacn 完全替代掉了Spring 的XML 界面来管理一个商业软件中的 200 多个 beans, 感觉不错:) 另外,如果有朋友最近在研究 JBoss 的 Seam, Jacn 基本上做到了 Seam 的 概念 (xml-less, convesational, collapsed backing bean and data access layer), 但是完全没有用 JBoss 的技术 (EJB3, Microcontainer) 。 并且JDK 1.4 可用。 不妨一试。欢迎你和大家给我意见。 |
|
返回顶楼 | |
发表时间:2005-10-09
zkj_beyond 写道 看了一下http://jacn.sourceforge.net/jacn-manual.html。没下载源码看。
可能是我功力尚浅。感觉这个包好象没什么用。 IOC可以使程序解藕,可你用AbstractJacnConfigFile又把代码偶合到一块,假如两个对象依赖关系改变,我们还的重新编译AbstractJacnConfigFile的实现。把对象之间依赖关系由xml又转化到java类里。 ConvertUtil感觉也没什么用,spring.xml很是简单。没必要。 假如jacn不以来 spring 包,那还有点意思。 IOC 分离的是对象的生成和对象的使用, 而不是对象之间的依赖性关系。 A 需要 B , IOC 不改变这一点。IOC 改变了 A 如何获得 B。 Jacn 的主要目的是 1。简化 Spring - 通过简单API 把 Spring 的内衣内裤完全遮盖起来。特别是大量地AOP 相关的部分。 2。 提高 使用 Spring 的 效率 - 通过 IDE 的 refactor 的支持, 这是极限编程的支柱。 3。把 Spring 和 JSF 完全整合在一起, 提高JSF的 程序员 友好性。 不知道我的解释又没有一点帮助。 |
|
返回顶楼 | |
发表时间:2005-10-09
想了半天还是不能理解jacn的好处。
对象生命周期管理,IOC要做. 个人觉得但对象之间的依赖性关系很好的控制.IOC做的很好. 比如, jdbc,到hibernate的切换. 我只要修改xml中的class="dao"就可以了,而Jacn需要给代码. 另外 bar = new Bar(HELLO); 对象的生成还的手写.有点晕了. 面向接口编程几乎也废了. 引用 Bean Management 实际上在开发过程中是一个持续性的修改和添加的过程, 也就是说 refactor-ability 显得非常重要。你经常需要修改bean 的名字,增加和修改一个 property, 或者修改一个bean class 的 名字。Jacn 让你轻松使用IDE 提供的 全局安全 改名的 功能。 如此等等, 这才叫效率。 对这段话有很多疑问. |
|
返回顶楼 | |
发表时间:2005-10-09
zkj_beyond 写道 想了半天还是不能理解jacn的好处。
对象生命周期管理,IOC要做. 个人觉得但对象之间的依赖性关系很好的控制.IOC做的很好. 比如, jdbc,到hibernate的切换. 我只要修改xml中的class="dao"就可以了,而Jacn需要给代码. 另外 bar = new Bar(HELLO); 对象的生成还的手写.有点晕了. 面向接口编程几乎也废了. 引用 Bean Management 实际上在开发过程中是一个持续性的修改和添加的过程, 也就是说 refactor-ability 显得非常重要。你经常需要修改bean 的名字,增加和修改一个 property, 或者修改一个bean class 的 名字。Jacn 让你轻松使用IDE 提供的 全局安全 改名的 功能。 如此等等, 这才叫效率。 对这段话有很多疑问. 没问题,有疑问尽管问。 就拿你举的例子,经典 Spring 中,你写 <bean id="foo" class="Foo"> <constructor-arg> <value>hello</value> </constructor-arg> </bean> Jacn 中 你写 foo = new Foo("hello"); 哪个直观容易理解? 如果你什么时候想把 Foo 名字改成 MyFoo, Eclipse 等 就是 Alt-shift-R 就可以了。 但是如果你用 XML, 你就要小心了, 别Java 改了, 忘了改 XML. 可能有一点你还没注意到: Jacn 只是借用Java 的语法来简化Spring XML。 他的配置文件并不真的被 JVM 装进去执行。 Jacn 有一个解析器专门解释 配置文件的 .class 文件。 所以你可以写 Foo foo; foo.setBar(bar);; foo = new Foo("hello");; 在真正的JVM 中这段代码是不能运行的。 修改 Dao 一样容易: myService.setDao(jdbcDao); //修改成: myService.setDao(hibernateDao);; Jacn 唯一的不便是, 在运行环境中你修改设置的话,需要重新编译 Jacn 配置文件。 但这也不是大问题, ant 中的 一句话。或者你可以把 jacn 和 xml 混合使用。把可能需要修改的放在 xml 之中, 其余 放在 jacn 。 |
|
返回顶楼 | |
发表时间:2005-10-09
dhj1 写道 1. PHP开发网站的速度,比JSP快几倍.
2. PHP程序调试时,比JSP方便很多,定位很准确,不会象JAVA丢出一大堆异常.然后要你一点一点的去找. 3. PHP中,只要你敢把全球变量打开,HTML中表单中的名字,就是POST/GET后的变量名,拿来就用. 4. PHP不区别整型,字串型等.拿来就用,不会让你从这种到那种型转来转去的. 5. PHP的变量,什么时候需要,就什么时候定义,什么时候定义,就可以什么时候使用.并且定义时不需要写定义的声明. 6. PHP的TEMPLATE很有名,现在许多JAVA程序员还模仿用JAVA写类似于PHP的TEMPLATE.(比如JAVA的 fastm模板) 7. PHP可以和APACHE和IIS无缝集成, 如果是JSP和APACHE和IIS集成,则比较麻烦. 8. PHP自带很多针对服务器程序应用的函数包,很实用. 9. PHP对字符串的分割等很强大,方便. 特别适合做WEB程序. 10. PHP在服务器端可以作为SHELL使用,比LINUX的SHELL强大多了,也比PERL更有开发效率. --- 所以PHP比较流行,是有一定的原因的! 但是: 1.一些人学不会PHP, 认为PHP的语法古怪. 2.一些人不会用PHP的template,不会把表现层和业务逻辑分开来写. 3.一些人不会用PHP的ADODB, 对不同的数据库只会用跟本不相同的函数去调用. 4.PHP5 越来越象JAVA. 由PHP语法实现的面象对象,更让一些人狂晕. 5.我专门做过五年的PHP开发,现在我用JAVA,而不是PHP. 谢谢你的详尽解释。虽然我说“厌恶” 但是我对Php 有应有的尊敬。sourceforge 就是一个 PHP 网站。我们现在用的论坛也是 (真是讽刺)。 说道 scripting 语言,我曾迷过 perl, JavaScript, Groovy, Ruby。 Ruby on Rails 最近很火啊, 大家都在向他 学习。 但是说到一种平衡的无边界的语言,Java 还是主力。Java 最近的一些进展也在向 rails 靠拢, 例如 JBoss Seam。 Jacn 也是这种努力的一部分。 对于程序员而言,用一种好用的东西当然是令人愉快的, 创造一种好用的东西也很不错。 |
|
返回顶楼 | |
发表时间:2005-10-09
dhj1 写道 我不太相信权威.
Ruby on Rails 一开始就定义为一个MVC. 好象是套在MVC里了吧. 那Ruby on Rails 还能长得比MVC大吗? 在JAVA中,MVC只是其中一种模式,可以用,更可以选用别的模式. 这不是关于 MVC. 这是关于 coding by convention 和 聪明的缺省行为。 |
|
返回顶楼 | |
发表时间:2005-10-10
既然用了这么多新技术,能不能考虑用portal+jsf的结构去做web层呢,portlet可以同时支持html和wml,而且我觉得portal那种显示模式很适合移动设备的小窗口(以前就有过类似的想法)。
spring+hibernate都是入门级水平,不过做过一年左右的portal项目。 如果在学习过程中能得到楼主这样的人指点应该是一大幸事。:) |
|
返回顶楼 | |
发表时间:2005-10-10
sunr 写道 既然用了这么多新技术,能不能考虑用portal+jsf的结构去做web层呢,portlet可以同时支持html和wml,而且我觉得portal那种显示模式很适合移动设备的小窗口(以前就有过类似的想法)。
spring+hibernate都是入门级水平,不过做过一年左右的portal项目。 如果在学习过程中能得到楼主这样的人指点应该是一大幸事。:) 有这想法。只是 JSF (使用 Facelets 作 ViewHandler) 对 portlet 的支持还不够。我对 portlet 还有些迟疑。希望你来证明这种迟疑是不必要的。 |
|
返回顶楼 | |