Javier Paniza: Java开发效率也可以比RoR高

在我们的技术社区里面,Ruby和Rails从一开始就因为广为传颂的高开发效率而受到人们追捧,有文章为证,也有图片为证,更有图书为证,国内的社区对此反应强烈。这里不得不提的是Bill WaltonCurt Hibbs一篇文章《Rolling with Ruby on Rails Revisited》,这篇文章里面提到“用Rails开发一个web应用的速度至少是用典型Java框架开发的十倍”。

\但Javier Paniza并不这么认为,他第一次读到这篇文章时非常吃惊:“哇!十倍的速度!?”他决定开始学习使用Rails来开发,期望能够发现高效率和程序员感到幸福的原因所在。

\

很快,他发现RoR是个很经典的框架,但使用了并不时新的技术:

\
\
  • Ruby是个动态类型语言,跟Smalltalk一样。当我更喜欢去静态类型语言。\
  • 脚手架是比较被动的代码生成机制,就跟IDE向导或者AppFuse一样。而我更喜欢主动的代码生成,或者根本不需要代码生成最好。\
  • 以关系型数据库为中心:代码生成器和ActiveRecord导致必须先考虑数据表,然后才是类。而我更期望一个纯粹的OO,就像Hibernate、JPA,甚至是ODBMS。\
  • MVC:我想要的是比陈旧的MVC框架更新更好的框架。\
\

为了证明他的观点,他开始用带JPA注解的POJO,以及模型驱动框架OpenXava实现了Ruby文章中的一个应用,结果是用了更少的代码,更少的时间却获得一个更加强大的应用。在用户界面、负责CRUD的controller、实体关系维护等方面,Java方案均表现突出。

\

由此他总结道:

\
Java 开发的效率只是文化问题,而不是技术问题。这不是Java的错,错在Java开发者自身。Java开发者太专注于设计非常漂亮的架构,滥用GoF的设计模 式,过分追求重用,实施三层结构并过度使用web service。独独忽略了简单性。其实Java是一门非常优雅的语言,足以简化软件开发。
\

Javier Paniza没有忘记他使用的是模型驱动框架OpenXava:

\
RoR 和OpenXava的主要区别在于,RoR是个MVC框架,开发者必须编写model、view和controller,而OX是个模型驱动框架,开发者 只需要编写model即可。结果自然就是更少量的代码但更好的应用实现了。另外一个不同在于,RoR使用了被动的代码生成,也就是说它会为开发者生成代 码,但之后如果开发想要扩展或提炼代码,就不得不编辑生成好的代码。OpenXava没有使用代码生成,唯一的代码就是开发者自己写的代码。
\

所以选择了好的工具和模式,确定自己的目标,在Java的世界同样可以实现高效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值