BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

NetBeans:Ruby开发者的新伙伴

| 作者 Roman Strobl 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2007年11月3日. 估计阅读时间: 10 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

NetBeans是一个广受欢迎且功能强大的Java IDE,由Sun Microsystems在2000年开放源码。随着用户社区的增长,如今已成为行业中一个主要的IDE。在2007年,NetBeans开始将功能扩大到支持许多其他语言,包括Ruby在内。

在这个系列中,你会看到NetBeans为Ruby开发者提供的许多便利,其中一些特性还是其他IDE身上找不到的。我们还会谈到Ruby工具项目的一些背景,获取NetBeans软件的必要信息,如何配置IDE,以及如何为这个项目贡献力量。

为什么Sun投资于Ruby?

Sun Microsystems向Ruby如此大手笔地投入可能有些令人惊讶,毕竟Ruby作为一种语言与Java有所竞争。为了理解Sun的动机,我们需要把Java看作是一个平台。Java不仅是一门编程语言,还是一个虚拟机以及一整套API。与过去不同,如今的Java虚拟机(JVM)支持多种语言。JVM不再只是Java一家的事情,Sun在JDK 6中捆绑了Rhino JavaScript解释器也明确体现了这一点。

Sun认识到动态语言的价值——Java语言仍然是大型企业应用的最佳选择,但Ruby这类动态语言在特定领域中非常高效,例如原型验证、Web开发,或者粘合各种应用。在2006年,Sun雇佣了JRuby项目的主要开发者——Thomas Enebo和Charles Oliver Nutter——去进一步探索将Ruby集成到Java平台的不同方式。(JRuby是完全用Java编写的一个Ruby实现。)2007年6月发布的1.0版标志着JRuby项目达到了一个重要的里程碑。

使用JRuby,开发者可以得到Java平台的许多优势,比如访问Java API和方便的部署。Java平台存在着大量的类库(其中大多数是开源的),因此Ruby开发者如果在JRuby之上运行Ruby代码,就能够享受到直接访问这些类库的便利。JRuby能将Ruby带到之前不曾进入的领域。能想象在大型机上运行Ruby吗?JRuby使之成为可能。Java平台有许多解决伸缩性、安全、维护、部署等等企业应用问题的方案,同样由于JRuby,Ruby开发者也能够从中得益。

Sun总是通过NetBeans为它的各种技术提供工具支持,JRuby也不例外。即使你是纯粹的Ruby或者Rails开发者,对JRuby一点都不感兴趣,NetBeans仍然是一件合适的工具。NetBeans Ruby IDE用JRuby作为默认的运行时,但你可以在选项对话框中将JRuby换成原生的Ruby——只要告诉NetBeans你的Ruby安装在哪里。因此无论是想探索动态语言领域的Java开发者,还是对Java一点都不感兴趣的Ruby/Rails开发者,NetBeans都是值得尝试的。

NetBeans中Ruby支持的三大亮点

让我们先看看我觉得在NetBeans中开发Ruby极其有用的三项特性:

1. 无处不在的代码完成

“代码完成”是一个上下文敏感的弹出窗口,给用户提示一些最可能的方法、类或者模块。用户可以在编辑器中按下“Ctrl-Space”来调用它。代码完成是Java开发者们熟知并深为喜爱的——所有现代Java IDE都提供了这个功能。然而,对Ruby来说,实现一个完善的代码完成功能是一件困难的任务,因为在Ruby语言里类型是没有声明的。因此IDE采用推断的方法去猜测类型,并据此提供代码完成中的选项。

代码完成会随着你的打字而减少可选项的数量,直接回车就可以把选中的文字填到编辑器里。

你可以看到每个方法的模块,以及方法接受的参数。除了帮你快速地补完方法/类/模块的名称,代码完成还可以给你帮很多忙。其中很有用的一项就是代码完成会显示每个类、方法、模块、关键字等等的文档(RubyDoc)。

对于初学者和从其他语言迁移过来的开发者,近在指端的文档是特别有帮助的——你可以用代码完成功能一边开发一边学习API。这样去学习一门语言及其API,比起预先学会所有的细节的方式要友好得多。而且,许多开发者都喜欢边实验边学习,Ruby干净整洁的语言和API会让这个过程更加容易更加愉快。

代码完成在你输入Require语句的时候也能发挥作用:

NetBeans的代码完成还有一个很有用的特性,它支持正则表达式。除非你能记住正则表达式所有的符号组合,不然这个特性是很便利的“

类似地,如果你记不住一个$变量的名字和意义,或者%开头的转义代码,NetBeans会帮你:

我在这里仅仅介绍了一些基本的特性,代码完成还有很多很多办法让你日子过得轻松一些。在用NetBeans进行Ruby开发的时候,你绝对会发现Ctrl-Space是你最爱用的快捷键。

2. 图形化的Ruby调试器

多数Java开发者都离不开调试器。然而,Ruby的调试一直都是一大难题。NetBeans给Ruby提供了一个图形化的调试器,与Java调试器很相像。你可以在代码里插入断点,然后以调试模式运行程序,程序就会如愿在第一个断点处停下来。此时你可以观察各种视图,如本地和全局变量;你可以加入监视条件;查看调用栈;切换线程,等等。如果你把鼠标停留到代码中的任何元素上,该表达式的当前值就会被计算出来立即显示在你面前。

在上面的截图中可以看到,NetBeans还支持RHTML调试,你可以很方便地一步步检查RHTML页面。

3. Ruby重构和快速修补

重构Ruby代码一直都繁琐到令人痛苦:要想改一个方法名,你不得不把它出现的所有地方都改一遍。在NetBeans里这个过程被自动化了,你可以搜索任何方法/类/变量的使用情况,也可以调用重命名重构功能去修改元素的名称。下面是使用查找使用情况命令的一个例子:

重命名重构功能让你在一个专门的视图里修改所有引用:

NetBeans Ruby支持在以后的版本里,还会提供其他重构功能,包括提取方法、提取本地变量等等。

IDE有时候会检测到代码里的变量冲突,可能使代码不符合用户的意图。在这种情况下,IDE可以提供一个“快速修补”,让用户便捷地修正代码:

在上面的截图中,块变量和本地变量的名字相同,会导致代码出现副作用;于是IDE向你提供将变量改名的选项去解决这个问题。

这里只是NetBeans让你过得更加轻松的几个例子。我会在本系列的后续文章中继续介绍其他编辑功能。

从哪里获得NetBeans Ruby IDE

要获得NetBeans Ruby支持有几种方式。其一是访问NetBeans 6.0下载页面获取NetBeans完全版,里面已经包括了Ruby支持:http://dlc.sun.com/netbeans/download/6.0/milestones/latest

如果你只想安装精简版的Ruby IDE,你可以从这里下载:http://deadlock.netbeans.org/hudson/job/ruby

获取Ruby模块的还有一种方式是先安装基本的Java IDE,然后转到IDE中的插件管理器(Tools | Plugin Manager),让NetBeans从网上下载并安装各种模块。

目前,NetBeans Ruby支持还只是一个预览版。不过我们知道很多开发者已经在商业应用开发中使用它,还有很多Bug等着在最终版中修复。如果你发现任何Bug,请向NetBeans的 Issuezilla系统报告:http://www.netbeans.org/kb/articles/issuezilla.html

更多信息

你可以在Wiki页面上找到NetBeans Ruby支持的更多信息。

我们也录制了一些截屏录像,重点演示了各种新特性:http://www.netbeans.org/download/flash/jruby_on_rails/jruby_on_rails.htmlhttp://www.netbeans.org/download/flash/jruby_editing/jruby_editing.html

其他演示和教程请移步Ruby文档主页

在本系列的后续文章中,我们将讨论更多Ruby支持的特性,以及其他一些主题,比如如何影响这个项目和它的未来计划。与此同时,请务必试试NetBeans中的Ruby支持。如果你经常用Ruby开发,你会发现NetBeans正是你一直在寻找的IDE!

查看英文原文:NetBeans: Ruby Developer's New Best Friend

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

ai by fan fan

不就是个code complete么

Re: ai by Jiang li

无知者无畏

功能很强悍的,赞一个 by vincent xie

下了安装几天,功能相当强悍,于是把 apatana delete了。
缺点就是速度有时有点慢,尤其不爽的是好像每次启动ide时都会重新索引,好耗时的

期待 by Wang Chunshan

好像那个精简版一直没有发布一个稳定的版本,总是在不停的CI:)

[分享]NetBeans IDE 6.0 Ruby 文档 by Chen Jerome


原文标题:NetBeans IDE 6.0 Ruby Documentation
原文作者:Sun
原文地址:www.netbeans.org/kb/60/ruby/index.html

译者:Ruby中文社区翻译团队
译文首发:ruby-lang.org.cn/forums/thread-1896-1-1.html

转载请保留本版权信息,违者必究!


--------------------------------------------
Ruby中文社区 - www.ruby-lang.org.cn/

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT