InfoQ

文章

NetBeans:Ruby开发者的新伙伴(第二部分)

作者 Roman Strobl 译者 郭晓刚 发布于 2007年12月25日 上午3时57分

社区
Ruby,
Java
主题
工件和工具
标签
JRuby,
Netbeans

本文是NetBeans & Ruby系列的第二篇。上一篇介绍了NetBeans中新的Ruby支持。

在这一部分,我将主要讨论Ruby on Rails工具,以及围绕着编辑器内内外外的各种能帮助你提高生产力的附加功能。IDE这个词本身就是集成开发环境的缩写,因此你将会看到使用NetBeans之后,就不用再为了使用Ruby和Rails而切换到命令行了。

Ruby on Rails支持

在NetBeans里面创建新的Ruby应用程序的时候,你可以从不同的模板当中选择——你可以创建普通的Ruby应用,也可以创建Ruby on Rails应用。

创建Rails项目的时候,IDE会让你选择要用原生Ruby还是JRuby,选择要用哪个数据库驱动(如果是JRuby还包括JDBC),还乐意很方便地升级到最新版的Rails。确认新建项目对话框之后,项目的默认目录结构就会建好。这是Rails的一大优点,由于所有的应用结构都差不多,所以你拿到别人建立的项目也会很快上手。NetBeans的项目浏览器能让你对项目文件之间的整体逻辑有个直观的感受,你也可以方便地浏览它们。

你可以直接在IDE里面使用Rails生成器——在项目上点右键就可以选择使用哪个生成器,填好参数,运行,接着你就会在输出窗口看到生成器的输出了。

你在开发的时候还可以用上编辑器的代码完成、重构、快速修补等等功能(本系列的第一部分介绍了编辑器的部分特性)。要是准备好运行你的程序了,什么配置都不用做,直接按下运行按钮就可以了——NetBeans捆绑了Webrick服务器来运行你的应用。浏览器窗口会自动打开。如果你打算调试程序,IDE还会在调试模式运行Webrick服务器。当然,你也可以很容易地把服务器换成Mongrel。

IDE还集成了Rake,因此你可以在项目中执行Rake目标:

调试Rake目标也很容易,运行迁移脚本,与Rails控制台交互,这些都可以在IDE里完成。你还可以通过一个特殊的对话框安装各种Rails插件。还有很多其他Rails开发方面的特性,希望我举的这些例子能让你对在NetBeans中开发Rails应用有个初步的印象。

编辑特性

我在上一部分已经介绍过一些编辑方面的特性(代码完成和重构)。我认为NetBeans的编辑器应该是大多数Ruby开发者都会喜欢的——随时都会发现一些贴心的小功能。例如当你创建一个新方法的时候,编辑器会自动插入结束语句,并把光标定位到方法中间那一行。你还可以看到各种元素,比如变量在文件中出现的所有位置:

如果我想给一个变量改名,只需要按一下Ctrl-R,文件中所有用到该变量的地方都会一下子改好:

漂亮的语法着色方便了在代码中定位,甚至RubyDocs也有语法着色。你一边输入,编辑器就会一边把错误用下划线标出来,NetBeans还会告诉你哪些变量是没用到的,好让你删掉它们。

如果你按着CTRL键,同时把鼠标移到任何类、方法或者变量上面,编辑器会把你带到它们的声明。你还可以看到一个小提示,告诉你当前选中元素的用途。

你也可以使用代码模板。你可以在很多预定义的模板里面选择,自己创建新模板也很容易。在模板里面可以设置模板展开后光标的位置,还可以预先插入各种变量。因此要是你经常使用某些API,模板就很有帮助。

还有很多编辑特性不能一一介绍,请查阅关于Ruby编辑的Wiki页面:http://wiki.netbeans.org/wiki/view/RubyEditing

Gem管理器

Gem管理器(Tools | Ruby Gems)可以安装新版本的地Gem,浏览、升级已经安装的Gem等等,请看下面的截图。用户界面和NetBeans插件管理器以及Rails插件管理器都很相似,因此你并不会感到陌生。在Ruby仓库里有很多很多Gem,想找什么库的时候全文搜索一下会很有帮助。

Ruby选项

我前面提过,你可以在原生Ruby或者JRuby之间切换。IDE默认使用JRuby,因为它捆绑了JRuby,不过只要告诉IDE现有Ruby的安装位置,它就会改用你指定的Ruby,不管是什么操作系统。

选项对话框里面还可以选择是使用经典调试器,还是使用快速调试器。不过在JRuby环境下你只能用经典调试器,虽然慢一点,但能适应各种情况。在原生Ruby环境下可以使用快速调试器(很容易安装,IDE会去下载它),这是Ruby推荐使用的调试器。选项对话框还有两个选项页:“格式化”控制编辑器里的格式化设置,“提示”控制编辑器里那些“小灯泡”的出现。

单元测试

单元测式功能集成得很出色。例如当你创建一个新模型的时候,一个新的单元测时也会自动创建好。这是Ruby on Rails的一个特色,它的哲学是单元测试太重要了,绝对不可缺少。单元测试也可以直接在编辑器里运行,编辑器里当然还可以浏览测试类。

如果你真的很在意测试,可以安装“ZenTest”Ruby Gem(通过Tools | Ruby Gems),之后项目的右键菜单就会多一个“AutoTest”选项。它会启动项目的自动测试,每当你修改了一个文件,它都会自动执行单元测试。AutoTest在很多情况下都能判断出需要运行哪些单元测试——尤其是Rails项目。如果它判断不了,就会运行所有单元测试。

使用控制台

尽管我们已经尽可能把功能集成进IDE,还是有你想用控制台的时候。比如当你想通过交互的方式尝试一些Ruby API的时候,控制台就很有用。选择Window | Other | Ruby Shell (IRB)就会打开Ruby Shell。控制台会在IDE的底部打开,你可以不受拘束地享受Ruby交互语言的强大能力。

更多信息

关于NetBeans的Ruby支持,你可以在它对应的Wiki页面上找到更多信息:http://wiki.netbeans.info/wiki/view/Ruby

Ruby文档页面上有不少演示和教程:http://www.netbeans.org/kb/60/ruby/index.html

最后,你可从以下地址免费下载NetBeans IDE:http://www.netbeans.org/community/releases/60/index.html。你还可以选择安装只包含Ruby的精简版IDE(特别提供了安装包),或者安装完整版的Java IDE附带Ruby支持。只包含Java的版本也可以通过Tools | Plugins增加Ruby支持。

在下一篇中,我们将讨论安装若干实验性插件之后得到的额外功能,还会讨论一些与社区相关的论题,比如如何参与到这个项目以及未来的计划。与此同时,请务必试一下NetBeans的Ruby支持。如果你经常用搞Ruby开发,NetBeans就是你要找的IDE!

查看英文原文:NetBeans: Ruby Developer's New Best Friend (Part 2)

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。