中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
Ruby on Rails的核心特性是什么?(2)
作者:佚名 时间:2007-09-24 16:29 出处:51cto 责编:月夜寒箫
              摘要:Ruby on Rails的核心特性是什么?(2)

交互性

Ruby的交互式体验也有助于Rails。您可能认为在没有完整的IDE的情况下调试Rails应用程序将是一个痛苦的过程。实际却不是这样。Rails提供两种简化调试的功能。其中之一是breakpointer,它允许您向源代码添加breakpoint关键字。

为理解breakpointer的运行过程,可创建一个简单的Rails应用程序,生成一个控制器,启动服务器,并启动breakpointer。确保您有权使用breakpointer窗口,因为当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

通过加载页面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体验。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有