简单看了ROR,真是简单

        看了《Agile Web Development with Rails》前面四章,觉得RoR确实是比较简捷。其实,ROR的应用领域也就是在WEB应用开发上,而在这个领域上,我用JAVA已经有很长时间了。MVC模式,ORM在JAVA领域已经是耳熟能祥的常识了。
       唉,图插不近来,不爽。

       下面主要比较JAVA基于Struts, Hibernate和ROR的MVC框架在实现上有何异同。
      
      相同点有很多:
       对于一个请求URL,在JAVA当中,有Servlet来处理URL的请求,Struts经过定义actionmapping的配置文件,Action,ActionForm来找到正确的处理请求的Action。
       而在ROR中,有一个Router来控制对于URL的请求。对于用户的URL请求,它的组织形式固定。http://localhost:3000/say/hello,那么RoR会实例化SayController,调用Controller中的hello方法来处理URL的请求。
 
       这里的Controller相当于我们的Action。应该进一步讲,Controller中的method相当于我们的Action。在JAVA中,Action不是线程安全的,我想在ROR中,Controller肯定也不会是线程安全的(may be,这个不确认,如果这样的话,那么在Controller类中就不能含有任何Controller的实例变量)。
      
      控制器的作用是处理请求,调用Model完成数据库操作,然后把得到的结果传给VIEW端进行显示。我们平时在Action中已经做过了很多这样的事情。只不过,我们在Action和ORM之间加了一层,叫做业务逻辑层。一般,Action -> ××Service -> ××Dao 完成业务逻辑操作,同时,还需要向即将显示的View中设置很多显示页面所需要的变量。
      因此,我们会在Action当中向Request,Session中设置很多值。所以,在咱们的程序中会经常出现这样的语句。request.setAttribute("a", objectA); request.getSession.setAttribute("b", objectB),络绎不绝。其实很讨厌,但是没有办法,必须要设置,不然就显示不了。
      那么,ROR也是需要向View设置值的。只不过它在Controller中的Method中设置传递给View的变量
ruby 代码
 
  1. def methodA  
  2.       @time = Time.now;  
  3. end  
      这样子,在View所对应的rhtml中,就可以输出这个@time的值。
rhtml 代码
  1. <%= @time %>  

     其实就是取得刚才设置进去的变量。这个变量放在什么地方呢?无非就是在request,session,或者application上。只是现在我不知道具体放在什么地方而已

     对于View,我就不用说什么了。人家用的是rhtml,JAVA用的是JSP,两者都是在html上迁入表达式。其根本,还是要转换为HTML这个标准形式。因此,对于javascript这样的页面客户端脚本语言都没有影响,应该js以前你怎么用,现在还怎么用就ok。

     下面说几个我觉得ROR简单的:
  1.      ror的开发用web server可是自动重载的哦,不像在java中,改动一下java代码,必须重新编译,然后部署到application server当中,然后运行。在我的机器上,ant之后,启动tomcat,一般时间在4分钟左右。相当的不爽。一直以来,提高开发效率是我们做开发的最为关注的事情。
  2.     ROR相关的工具真是好。建立一个项目,rails demo,然后程序结构就出来了。启动服务器,ruby script/server;自动生成Controller, ruby script/generator Controller Say。你看看,简单嘛,一下子给你生成你要完成的小工作集。至少不用向我们在java中一样,首先去创建一个Action,然后去创建ActionForm,然后去修改Struts-config.xml,然后去新建JSP,然后去ant,然后去启动server,然后等着,然后在启动浏览器,然后http://, 然后如果有错,又得重新ant,server,等,启动浏览器,这样的日子何时是个尽头啊。
     因此,两者相较,确实ROR方便。对于我来说,有这两点,足以让我选择好好学习ROR了。  
    








 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值