案例分享:阿里巴巴全球化电商核心系统架构实战,点击学习>>> 了解详情
写点什么

书摘及访谈:Aptana RadRails,一个 Rails 的集成开发环境

2009 年 7 月 07 日

Aptana RadRails: Aptana RadRails IDE 是由 Javier Ramírez 开发的一种最新的 Rails 开发 IDE,可用于开发 Ruby on Rails 应用。在其官方网站上有如此描述:

一份全面的帮助文档,能够指导用户通过 RadRails 专业而富有成效地开发自己的 Ruby on Rails 项目。

  • 在整个开发流程中提供全面的 RadRails 使用指南
  • 代码协助、图形化调试器、测试、集成控制台
  • 管理 gems、插件、服务器、生成器(generators),以及 Rake 任务。
  • 为升级到 Rails2.x 做好了准备
  • 帮助文档有一章介绍了版本控制系统和数据库集成
  • 智能的 HTML,JavaScript 和 CSS 代码协助

本书的出版商( Packt Publishing )也向 InfoQ 提供了该书第七章的摘录──名为《RadRails Views》。

InfoQ 最近获得了一个采访 Javier Ramírez 的机会,我们就此书的内容以及 Aptana RadRails IDE 对他进行了如下访问:

Robert Bazinet (RB):您能向我们介绍一下这本书大概的内容吗?

Javier Ramírez (JR):简要说,本书将会告诉你如何最大限度地发挥 Aptana RadRails Community Edition IDE 的作用。它不会教你如何用 Ruby 编写程序或者是用 Ruby on Rails 开发 web 应用,而是告诉你如何使用 Aptana RadRails 更快更简单地做上述的工作。

这本书最开始是一些上手指南,告诉读者如何安装这个 IDE,并且简要介绍了一下 workbench。这个 workbench 初看起来功能非常丰富,上手难度颇高。然后这本书指导读者如何创建一个简单的应用程序,在这个过程中,读者将会熟悉大部分常用功能,当然只是非常粗浅的了解。接下来将会向用户深入介绍每一个 RadRails 工具:Ruby 开发工具、调试器、内建 HTML/JavaScript/CSS 特性、一个全面的配置帮助等等。

最后一章介绍了如何使用第三方插件扩展 Aptana RadRails 功能。在这一章中将介绍如何使用插件将版本控制系统和数据库与 Aptana RadRails 集成在一起。

RB:那么在 Rails 开发中,Aptana RadRails 能给开发者带来哪些好处呢?

JR:非常高兴你使用了“开发者”而不是“程序员”这个词。最近几年,我们看到在 IT 界“开发者”逐渐成为“程序员”,尤其是我们在谈论 web 应用开发的时候。在 Google 上搜索一下“COBOL programmer”/“COBOL developer”和“web programmer”/“web developer”,你就会明白我说的是什么。

任何 Rails 开发者都会告诉你,编程只是整个开发过程的一个环节,整个开发过程还包括:确定应用架构,创建数据模型,设计界面外观风格,采用测试策略,将代码分享给团队其他成员–最极端的情况就是如果参的是开源工程,就会需要将代码分享给整个世界,部署到不同的服务器,跟踪记录需求、Bugs 以及更改。

Rails 开发者通常都有非常大量的工作要做,但是许多开发者都只使用编辑器,并且为不使用复杂的 IDE 而感到自豪。

你确实可以只使用编辑器开发应用程序,但是一般的编辑器可远没有全功能的 IDE 强大,并且缺少代码重构,代码协助以及动态检查警告和错误这些特性。即使你的编辑器不可思议地强大,你仍然需要额外的工具来处理编码之外的一些工作。当然,这些工具的接口都各不相同,你不得不学习如何使用。

使用 IDE,你就能够在同一个工具中完成绝大多数开发相关的任务,不过也不是全部。也就是说,使用 IDE,你将会有更多的时间来进行开发,而更少的时间纠缠在工具上,这样使得你的开发更加快速简单。

RB:为什么开发者会使用 Aptana RadRails?

JR:这个原因和开发者选择 Ruby 而不是其他诸如 Java 的语言的原因是相同的:因为你能够以更少的代价做更多的事。我猜你想知道开发者期望能够从 RadRails 中获取什么样的协助。要介绍 RadRails 能够完成的事情,恐怕要花费特别长的时间,所以请允许我向你介绍一些最有意思的特性。

在 Ruby 编辑器中,点击一个类、方法或者变量的名字将会直接跳转到定义处。你也总能够看到当前文件和在任意一个父类 / 模块中定义的模块、类、常数、变量以及方法的概要。不仅如此,当你输入的时候,编辑器将会进行变量 / 方法提示以及动态地检查代码中的错误和警告。如果鼠标停留在一个方法上,那么将会出现一个叠加层,里面显示是这个方法的文档,并且会告诉你可以使用哪些 snippet 库来扩展你自己的 snippet。如果你需要重命名变量或者方法,从当前方法中抽取一小段代码到另外一个方法中去,或者生成访问器,你都可以利用重构工具来评估一下你在使得程序更加高效之前,所做的改变将会造成的影响。

图形化调试器让你更加方便地设置或者移除断点,一步一步地控制执行,观察和检测变量值,在当前断点的上下文环境下执行代码。内建的 Tail View 使得你能够在一个带有标签的接口中,方便地监视任意数量的日志文件,并且可以根据内容自定义输出的颜色。例如,你可以给不同优先级的输出(Debug,Info,Error 等等)指定不同的颜色。你也可以在 RadRails 中调用任何的生成器和 Rake 任务,同样也能够管理你自己的 gems 和插件。这些操作生成的所有文件都可以在输出控制台中直接点击,你能够立刻打开它们。

当然,RadRails 也能够帮助你进行测试。你可以按需启动测试,也可以在每次保存文件时或是定期地自动进行测试。

从这个概述中可以看到,Aptana RadRails 提供了大量可用的工具,有了它,Rails 开发者的工作变得更加简单。

RB:现在有很多 Rails 的开发环境,比如 NetBeans 和 Ruby in Steel,RadRails 跟它们相比,优势在哪?

JR:首先,我不会说 Aptana RadRails 是 Ruby on Rails 开发环境中的最佳选择。但是,它是我目前的选择,如果我的回答让你失望了,很抱歉,因为我真的不认为存在一个所谓最好的 IDE。正如你说的,优秀的 IDE 的数量在一直增长,例如 NetBeans,Ruby in Steel,或者 Aptana RadRails,同样也有 Komodo,JetBrains,3rd Rail,RoRed 或者 TextMate 这些不是 IDE 却有着 IDE 类似功能的工具。对我来说,竞争是好事情,因为竞争才能产生优秀的 IDE,而且,开发者有很多种,理应有多种 IDE。例如,如果你比较关心内存消耗,RadRails 可能并不是你最好的选择,因为它的内存消耗有些多;但是如果你希望所有的事情都尽可能地由同一个工具来完成,那么 RadRails 就是个不错的选择。

我更喜欢 RadRails 是有一些原因的。首先,RadRails 是一个免费开源的跨平台项目。我认为不需要向读者解释免费和开源意味着什么,但是跨平台部分确实值得一提,因为我之前提到的 IDE 中有些仅仅只有某个特定平台上的版本(TextMate 仅仅只有 OSX 版本,RoRed 也只是有 Windows 版本),但是你可以在 Linux,OSX,Windows 以及任何可以运行 Java 虚拟机的 OS 上使用 RadRails。

RadRails 是基于 Eclipse 平台的这一点很重要。众所周知,Eclipse 是一个最流行的多语言通用开发环境,如果你已经知道如何使用 Eclipse 的话,那么使用 RadRails 将会非常简单,因为它遵循所有 IDE 的传统配置。

值得一提的是,两年多以前,当我开始使用 Ruby on Rails 进行开发时,RadRails 还远未完成。当时已经存在一个 Ruby 编辑器的原生版本,可以使用它浏览文档和启动 / 停止服务器。而 RadRails 那个时候就已经能够做到这些。当它基于 Eclipse 构建之后,我就已经将它和版本控制系统、我的 BUG 追踪系统以及数据库集成在一起,我能够使用额外的插件跟踪日志文件,检查和测试正则表达式或者验证我的 HTML 以及 CSS 文件。

这里我想说的是,对 web 开发者而言,有很多 Ruby on Rails 不能完成但是仍然非常有用的东西。因为 RadRails 的基础是 Eclipse IDE,这个 IDE 可以说是现在最完善最流行的开发环境,RadRails 的任何用户都能从大量的通用扩展中获益。不仅仅是扩展,同样也有 Eclipse 的核心特性。其中一个能够节省开发时间的插件是“Local History”。它追踪记录你在文件系统中对工程所做的任何修改,你可以将任何文件和之前某个版本进行对比,甚至可以恢复不小心删除的文件。

当然这几年 RadRails 已经有了长足的进步。其中一个最重要的改变就是 Aptana 接管了这个项目。最初的 RadRails 项目已经快无法继续了,因为原开发者太忙而无法维护。Aptana 接管这个项目,并且雇佣了一名全职人员。因此,新特性能够更快速地开发出来,更重要的是,RadRails 和 Aptana Studio 现有的 HTML,CSS 以及 JavaScript 工具集成在一起。

集成化使得在 RadRails 视图中能够使用代码协助。如果你在编写一小段 Ruby 代码,编辑器以及协助程序将会协同地工作,但是如果你在编辑一段 JavaScript,CSS 或者 HTML 代码,那么 IDE 将会更改上下文,根据你现在正在编写的语言提供相应的协助。Aptana Studio 的工具是如此地令人叹为观止,因为服务器和客户端的平滑集成,你甚至能够直接在 IDE 中调试 RadRails 应用中的 JavaScript。

RB:你是如何看待使用 RadRails 的组织或者个人呢?

JR:在去年,尤其是在上个月,我已经看到越来越多的个人使用 IDE 来开发 Ruby on Rails 工程。除 TextMate 之外,NetBeans 和 RadRails 是现在最流行的 IDE,至少从邮件组,论坛和博客中的帖子数目中可以看出来。

很多使用 IDE 的开发者都是从 Java 开始,他们已经使用了 NetBeans 或者 Eclipse,所以使用 NetBeans 或者 RadRails 是很明显的选择。此外,这些开发者中很多人都是在继续使用 Java 进行工作,将 Ruby on Rails 作为业余时间的工程,所以在两个环境中使用同一种工具是非常合理的。

从数百万次的下载量中我们可以看到,Eclipse 已无可争辩地成为当今最流行的 Java IDE 之一,考虑到有诸如 Borland、Intel、Motorola、IBM、Nokia、Oracle、Sybase 以及 Zend 这样的公司支持,它很可能在一段时间内都将保持这一特权地位。

我认为,随着越来越多的 Java 开发者发现 Ruby on Rails,以及随着 Rails 在企业中的推广,Aptana RadRails 将会被大多数使用 Eclipse 的开发人员所采用。你知道组织机构的改革是非常缓慢的,所以如果他们能在使用一个新的语言情况下,还能使用他们日常的工具的话,那么采用的阻力将会小很多。我给一些以 Java 开发人员为主的公司做过 Ruby on Rails 的 demo,事实上大部分情况下他们都惊喜的发现原来可以使用 RadRails 来直接进行开发而不用更换他们的 IDE。

RB:你觉得 Radrails 的开发将会走向何方呢?哪些东西将会被抛弃呢?

JR:Eclipse 最近已经开始进行 3.4 版的开发了,但是 Aptana Studio 和 Aptana Radrails 还只是基于 Eclipse 3.2 的(即使他们能够在 3.3 下工作)。现在,Aptana Studio 和 RadRails 正在进行新版本的开发,以完全支持 Eclipse 3.4。你已经能够在最新的 Eclipse 版本中使用 RadRails,但是安装程序并不是全自动的,仍然存在一些小 bug。

Eclipse 3.4 是一个更加稳定的版本,这个版本在内存消耗以及用户界面上做了一些改进,所以 Aptana 采用这个版本,这能改善用户体验。

不仅如此,Ruby 和 RHTML 编辑器也进行了改进,提供了更好的代码协助以及更高效的性能。调试器和 Rails 调试控制台也将进行改进,能够在任意断点下计算表达式的值。同样也会做大量的工作使得 JRuby 更加易用。

RadRails 最伟大之处在于大量集成到 IDE 中的新特性都是来自于 Aptana 论坛中用户的想法。某些部件,例如 Rails Shell View,就是源自用户提出的建议,他们告诉我们应该如何更好地集成到 IDE 中。所以,如果你有一个很有意思的想法,可以让 RadRails 开发团队知道,这样就有机会在将来版本中集成这个特性。

RB:Javier,谢谢你接受我们的采访!

更多关于《Aptana RadRails:An IDE for Rails Development》(作者 Javier Ramírez )的信息请访问 Packt Publishing 网站。Aptana RadRails IDE 的相关信息请参见 Aptana 网站

关于作者

自从 Web 应用这个名词被创造出来的时候,Javier Ramírez 就已经在开发 web 应用了。Javier Ramírez1974 年出生于西班牙的萨拉戈萨,大约从 11 岁起,就在姐姐的指导下,开始编写程序并且作为一种乐趣延续至今。

在为西班牙、意大利和美国的银行以及其他大公司开发过项目之后,作为这些项目的主要负责人,他在几年前创建了一个小小的软件开发工作室,这个工作室带给他很多宝贵的经验,比如创业的艰辛和快乐。两年之后,他离开公司,开始寻求新的挑战。

最近两年他一直效力于 ASPgems,在这里他发现了 Ruby on Rails,这迅速成为他开发 web 应用程序的首选框架。他是西班牙 Rails 会议的组织者,同时也在这两个组织中担任发言人至今。

Javier 在 Ingeniería en Sistemas de Computación 获得了商务信息系统的一等荣誉学士学位。


感谢刘申对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2009 年 7 月 07 日 03:303168
用户头像

发布了 90 篇内容, 共 29.0 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

格一格你的情欲念

王进行

30岁的二三事

大唐小生

总结 个人感悟

架构师训练营第九周作业

张明森

小伙伴想写个 IDEA 插件么?这些 API 了解一下!

程序员小航

IDEA idea插件 教程 API IntelliJ IDEA

什么是算法的大O表示法

码农神说

算法 时间复杂度 Java算法 大O

搭乘政策红利“快车” 欧科云链助力区块链人才培养

CECBC区块链专委会

刘华:事实证明,假敏捷都比瀑布优秀

刘华Kenneth

DevOps 敏捷 软件开发

无意中参加了infoQ的一期活动,获得了所有奖项,哈哈哈。。。

诸葛小猿

InfoQ 奖品

来了来了!Docker安装及运行原理

程序员的时光

Java Docker 微服务

今天你内卷了吗?

池建强

个人成长 内卷化

“PlusToken”跨国网络传销案告破,涉案400亿元!

CECBC区块链专委会

敏捷教练和Scrum Master - 敏捷转型中的两个重要角色的对比

Bob Jiang

Scrum 敏捷教练 ScrumMaster

谈谈敏捷中的那些模式

Bob Jiang

敏捷 敏捷开发 敏捷教练

Scrum Master是否需要懂技术

Bob Jiang

敏捷 敏捷开发 敏捷教练 ScrumMaster

【面试必问】Spring中的事务管理详解

只喝纯牛奶

LeetCode题解:70. 爬楼梯,递归+哈希表,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

JVM详解之:类的加载链接和初始化

程序那些事

Java JVM GC 加载

dubbo-go 中使用 sentinel

apache/dubbo-go

Go dubbo sentinel

这16道Redis最常见面试问题,你能回答上来几个?

火羊哥

Java

新生必备清单:不想成为虚度青春的“小透明”,手机应该怎样选?

脑极体

架构师训练营第九周学习总结

张明森

Dockerfile你值得拥有

北漂码农有话说

Docker

RRedis系列(八):缓存到底该如何做到高可用?

z小赵

redis 分布式系统 高并发系统设计

Docker 网络

北漂码农有话说

Docker

最牛逼的Java框架,没有之一

我是苞谷

别在网上乱找代码了,找了一段代码突然爆了!!!

导导

Java

JVM参数手册

Rayjun

JVM GC

金融行业区块链技术应用有了“安全符”

CECBC区块链专委会

微碳系:我心中的宇宙

Geek_116789

nginx配置文件

张明森

F5G+X:给5G一个伙伴,给千行百业一个拥抱

脑极体

数据库运维技术发展与展望

数据库运维技术发展与展望

书摘及访谈:Aptana RadRails,一个Rails的集成开发环境-InfoQ