快速业务通道

跨越边界: Ruby on Rails的秘笈是什么? - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
因为当 Ruby 遇到断点时您将使用它 。使用 Windows 时,命令序列如下:

>rails sample >cd sample >ruby script/generate controller samples >start ruby script\server >start ruby script\breakpointer

如果在 UNIX® 或 Mac OS X 中运行,请确保服务器在一个单独的进程中启动。

把以下代 码键入或粘贴到 app/controllers/samples_controller.rb 文件中:

class SamplesController < ApplicationController  def index   breakpoint    @session[:message] = "hi, mom"   render_text "Showing index"  end  def show   render_text @session[:message]  end end

跨越边界: Ruby on Rails的秘笈是什么?(3)

时间:2011-07-25 IBM Bruce Tate

通过加载页面 localhost:3000/samples 和 localhost:3000/samples/show 来测试 代码。

当 Rails 执行到断点时,应用程序暂停。breakpointer 窗口用具有控制器当前状态的环 境打开一个 Ruby 解释器。然后可以执行 Ruby 命令来查询会话的状态、执行方法和查询变量:

> puts @session[:message] -> hi, mom

这种密切联系并没有 给您一个完整的调试器,但是您确实能获得 Java 调试器不能为您带来的功能,包括访问完整的解释器和 能够执行应用程序的方法。

能够简化调试的第二个功能是 Active Record 控制台。在本系列的 第一篇文章中,您已经看到 Rails 也附带一个脚本,能够让您在交互式 Ruby 解释器窗口处理持久对象 。我经常想让我的 Java 应用程序具有这种功能。您可以编写一个持久模型,通过该模型更改数据库,然 后运行一些数据库查询来看一下它们对系统的影响。要是能够在类似的设置中查询 Hibernate 对象就太 好了。

约定优于配置

约定优于配置也会使新的 Rails 开发人员能够立即上手,因为控制器和模型代码特别简洁。您在 第 一篇文章中 看到,依靠 Rails 环境,可以从一些非常瘦的类获得相当高级的行为 —— 通过采用 Rails 命名约定和由 Rails 推断应用程序的连接点而不是直接配置它们。回顾一下,具有很多属性且与部门 (department)具有一对多关系的 Person 对象可能类似于下面这样:

class Person < Active Record::Base belongs_to :department end

不需要任何配置,因为 Rails 根据命名约定推断表 (people) 的名称、对象标识符和主键 (id) 的名 称、相关的表 (departments) 的名称、外键 (department_id) 的名称、外部类 (department.rb) 的名 称。无论对于编写、阅读还是维护来说,代码都保持简单、轻巧和非常赏心悦目。目的直接而清楚。

Java 开发人员能学到什么?

我不推荐用 Java 语言构建一个更好的 Rails。相反,Java 开发人员应该从 Rails 框架学习一些教 训,并试图构建或增强 Java 框架以完成下面的任务:

允许热部署,这将缩短开发反馈周期或支持允许热部署的框架。在 Java 端此优先权应该比现在高得 多。

使用较少的 XML 和更多的约定。约定与配置并不是井水不犯河水,因为可以使用约定来指定明确的默 认值,使用配置来覆盖约定。像 Rails 那样使用这种方法,您可以两全其美:具有较少重复的简洁代码 而不会失去灵活性。

为了在调试过程中浏览 Java 类,合并更多的脚本语言,包括 BeanShell(参见 参考资料)。

为任务选用正确的工具。不必仅仅因为需要持久性就借助于 Hibernate 或仅仅因为需要 Web 应用程 序就借助于 Struts。

通过合并其他编程语言的最好特性,您可以不必重复 Rails,但肯定可以改善 Java 体验。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号