📄 59364.htm
字号:
<link href="./dzs_cs.css" rel="stylesheet" type="text/css" /><table width="96%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> </td> </tr> <tr> <td height="24" align="center" valign="bottom" class="d_font3">NetBeans成为Ruby开发者的新伙伴</td> </tr> <tr> <td height="3" bgcolor="#E3E3E3"></td> </tr> <tr> <td> </td> </tr> <tr> <td class="d_font4"> <P>NetBeans是一个广受欢迎且功能强大的Java IDE,由Sun Microsystems在2000年开放源码。随着用户社区的增长,如今已成为行业中一个主要的IDE。在2007年,NetBeans开始将功能扩大到支持许多其他语言,包括Ruby在内。 </P>
<P>在这里,你会看到NetBeans为Ruby开发者提供的许多便利,其中一些特性还是其他IDE身上找不到的。我们还会谈到Ruby工具项目的一些背景,获取NetBeans软件的必要信息,如何配置IDE,以及如何为这个项目贡献力量。 </P>
<P><STRONG>为什么Sun投资于Ruby?</STRONG> </P>
<P>Sun Microsystems向Ruby如此大手笔地投入可能有些令人惊讶,毕竟Ruby作为一种语言与Java有所竞争。为了理解Sun的动机,我们需要把Java看作是一个平台。Java不仅是一门编程语言,还是一个虚拟机以及一整套API。与过去不同,如今的Java虚拟机(JVM)支持多种语言。JVM不再只是Java一家的事情,Sun在JDK 6中捆绑了Rhino JavaScript解释器也明确体现了这一点。 </P>
<P>Sun认识到动态语言的价值——Java语言仍然是大型企业应用的最佳选择,但Ruby这类动态语言在特定领域中非常高效,例如原型验证、Web开发或者粘合各种应用。在2006年,Sun雇佣了JRuby项目的主要开发者——Thomas Enebo和Charles Oliver Nutter——去进一步探索将Ruby集成到Java平台的不同方式。(JRuby是完全用Java编写的一个Ruby实现。)2007年6月发布的1.0版标志着JRuby项目达到了一个重要的里程碑。 </P>
<P>使用JRuby,开发者可以得到Java平台的许多优势,比如访问Java API和方便的部署。Java平台存在着大量的类库(其中大多数是开源的),因此Ruby开发者如果在JRuby之上运行Ruby代码,就能够享受到直接访问这些类库的便利。JRuby能将Ruby带到之前不曾进入的领域。能想象在大型机上运行Ruby吗?JRuby使之成为可能。Java平台有许多解决伸缩性、安全、维护、部署等等企业应用问题的方案,同样由于JRuby,Ruby开发者也能够从中得益。 </P>
<P>Sun总是通过NetBeans为它的各种技术提供工具支持,JRuby也不例外。即使你是纯粹的Ruby或者Rails开发者,对JRuby一点都不感兴趣,NetBeans仍然是一件合适的工具。NetBeans Ruby IDE用JRuby作为默认的运行时,但你可以在选项对话框中将JRuby换成原生的Ruby——只要告诉NetBeans你的Ruby安装在哪里。因此无论是想探索动态语言领域的Java开发者,还是对Java一点都不感兴趣的Ruby/Rails开发者,NetBeans都是值得尝试的。 </P>
<P><STRONG>NetBeans中Ruby支持的三大亮点</STRONG> </P>
<P>让我们先看看我觉得在NetBeans中开发Ruby极其有用的三项特性: </P>
<P><STRONG>1、无处不在的代码完成</STRONG> </P>
<P>“代码完成”是一个上下文敏感的弹出窗口,给用户提示一些最可能的方法、类或者模块。用户可以在编辑器中按下“Ctrl-Space”来调用它。代码完成是Java开发者们熟知并深为喜爱的——所有现代Java IDE都提供了这个功能。然而,对Ruby来说,实现一个完善的代码完成功能是一件困难的任务,因为在Ruby语言里类型是没有声明的。因此IDE采用推断的方法去猜测类型,并据此提供代码完成中的选项。 </P>
<P>代码完成会随着你的打字而减少可选项的数量,直接回车就可以把选中的文字填到编辑器里。</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421330.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图1</TD></TR></TBODY></TABLE>
<P>你可以看到每个方法的模块,以及方法接受的参数。除了帮你快速地补完方法/类/模块的名称,代码完成还可以给你帮很多忙。其中很有用的一项就是代码完成会显示每个类、方法、模块、关键字等等的文档(RubyDoc)。</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421331.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图2</TD></TR></TBODY></TABLE>
<P>对于初学者和从其他语言迁移过来的开发者,近在指端的文档是特别有帮助的——你可以用代码完成功能一边开发一边学习API。这样去学习一门语言及其API,比起预先学会所有的细节的方式要友好得多。而且,许多开发者都喜欢边实验边学习,Ruby干净整洁的语言和API会让这个过程更加容易更加愉快。</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421332.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图3</TD></TR></TBODY></TABLE>
<P>#p#</P>
<P>代码完成在你输入Require语句的时候也能发挥作用:</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421333.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图4</TD></TR></TBODY></TABLE>
<P>NetBeans的代码完成还有一个很有用的特性,它支持正则表达式。除非你能记住正则表达式所有的符号组合,不然这个特性是很便利的。</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421334.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图5</TD></TR></TBODY></TABLE>
<P>类似地,如果你记不住一个$变量的名字和意义,或者%开头的转义代码,NetBeans会帮你: </P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421335.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图6</TD></TR></TBODY></TABLE>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421336.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图7</TD></TR></TBODY></TABLE>
<P>我在这里仅仅介绍了一些基本的特性,代码完成还有很多很多办法让你日子过得轻松一些。在用NetBeans进行Ruby开发的时候,你绝对会发现Ctrl-Space是你最爱用的快捷键。 </P>
<P><STRONG>2、图形化的Ruby调试器</STRONG> </P>
<P>多数Java开发者都离不开调试器。然而,Ruby的调试一直都是一大难题。NetBeans给Ruby提供了一个图形化的调试器,与Java调试器很相像。你可以在代码里插入断点,然后以调试模式运行程序,程序就会如愿在第一个断点处停下来。此时你可以观察各种视图,如本地和全局变量;你可以加入监视条件;查看调用栈;切换线程,等等。如果你把鼠标停留到代码中的任何元素上,该表达式的当前值就会被计算出来立即显示在你面前。 </P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421337.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图8</TD></TR></TBODY></TABLE>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421338.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图9</TD></TR></TBODY></TABLE>
<P>在上面的截图中可以看到,NetBeans还支持RHTML调试,你可以很方便地一步步检查RHTML页面。 </P>
<P>#p#</P>
<P><STRONG>3、Ruby重构和快速修补</STRONG> </P>
<P>重构Ruby代码一直都繁琐到令人痛苦:要想改一个方法名,你不得不把它出现的所有地方都改一遍。在NetBeans里这个过程被自动化了,你可以搜索任何方法/类/变量的使用情况,也可以调用重命名重构功能去修改元素的名称。下面是使用查找使用情况命令的一个例子: </P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/1421339.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图10</TD></TR></TBODY></TABLE>
<P>重命名重构功能让你在一个专门的视图里修改所有引用:</P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/14213310.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图11</TD></TR></TBODY></TABLE>
<P>NetBeans Ruby支持在以后的版本里,还会提供其他重构功能,包括提取方法、提取本地变量等等。 </P>
<P>IDE有时候会检测到代码里的变量冲突,可能使代码不符合用户的意图。在这种情况下,IDE可以提供一个“快速修补”,让用户便捷地修正代码: </P>
<TABLE class=ln cellSpacing=0 borderColorDark=#ffffff align=center bgColor=#ddddd borderColorLight=#999999 border=1>
<TBODY>
<TR>
<TD bgColor=#ffffff><IMG src="http://new.51cto.com/files/uploadimg/20071102/14213311.jpg"></TD></TR>
<TR>
<TD class=it align=middle bgColor=#dddddd>图12</TD></TR></TBODY></TABLE>
<P>在上面的截图中,块变量和本地变量的名字相同,会导致代码出现副作用;于是IDE向你提供将变量改名的选项去解决这个问题。 </P>
<P>这里只是NetBeans让你过得更加轻松的几个例子。我会在本系列的后续文章中继续介绍其他编辑功能。 </P>
<P><STRONG>从哪里获得NetBeans Ruby IDE</STRONG> </P>
<P>要获得NetBeans Ruby支持有几种方式。其一是访问NetBeans 6.0下载页面获取NetBeans完全版,里面已经包括了Ruby支持:<A href="http://dlc.sun.com/netbeans/download/6.0/milestones/latest">http://dlc.sun.com/netbeans/download/6.0/milestones/latest</A> </P>
<P>如果你只想安装精简版的Ruby IDE,你可以从这里下载:<A href="http://deadlock.netbeans.org/hudson/job/ruby">http://deadlock.netbeans.org/hudson/job/ruby</A> 。</P>
<P>获取Ruby模块的还有一种方式是先安装基本的Java IDE,然后转到IDE中的插件管理器(Tools | Plugin Manager),让NetBeans从网上下载并安装各种模块。 </P>
<P>目前,NetBeans Ruby支持还只是一个预览版。不过我们知道很多开发者已经在商业应用开发中使用它,还有很多Bug等着在最终版中修复。如果你发现任何Bug,请向NetBeans的 Issuezilla系统报告:<A href="http://www.netbeans.org/kb/articles/issuezilla.html">http://www.netbeans.org/kb/articles/issuezilla.html</A> 。</P>
<P><STRONG>更多信息</STRONG> </P>
<P>你可以在Wiki页面上找到NetBeans Ruby支持的更多信息。 </P>
<P>我们也录制了一些截屏录像,重点演示了各种新特性:</P>
<P><A href="http://www.netbeans.org/download/flash/jruby_on_rails/jruby_on_rails.html">http://www.netbeans.org/download/flash/jruby_on_rails/jruby_on_rails.html</A>和<A href="http://www.netbeans.org/download/flash/jruby_editing/jruby_editing.html">http://www.netbeans.org/download/flash/jruby_editing/jruby_editing.html</A>。 </P>
<P>其他演示和教程请移步Ruby文档主页。</P>
<P><FONT size=4>【相关文章】</FONT></P>
<UL type=disc>
<LI><A href="http://developer.51cto.com/art/200705/48202.htm" target=_blank><U><FONT color=blue>NetBeans 6.0预览版发布 Sun再引惊呼</FONT></U></A></LI></UL>
<UL type=disc>
<LI><A href="http://developer.51cto.com/art/200709/56532.htm" target=_blank><U><FONT color=blue>NetBeans IDE 6.0 Beta 1已发布 支持SOA</FONT></U></A></LI></UL>
<UL type=disc>
<LI><A href="http://developer.51cto.com/art/200710/58477.htm" target=_blank><U><FONT color=blue>Ruby和Rails:朴实而深远的朋友</FONT></U></A></LI></UL>
<DIV align=right>【责任编辑:<A class=ln href="mailto:sunsj@51cto.com">火凤凰</A> TEL:(010)68476606】</DIV> </td> </tr> <tr> <td class="d_font4"> </td> </tr> </table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -