在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、 为什么使用Ruby?
现在,为什么众多的Java开发者都关注Ruby?Ruby,是10年以前在日本创建的一种通用目的脚本语言,这是一种纯面向对象的语言。不同于 Java技术,Ruby中的一切都是对象。Ruby的语法主要来源于Smalltalk,Python和Ada。象Java编程语言一样,Ruby是一种 单继承的语言,但是它提供了一些Java技术所没有实现的高级特征,例如闭合(可以认为是一种匿名的内部类)和mix-in(类似于接口,但是较松地绑定 于类上)。Ruby也是高度可移植的,能够运行在所有主流的操作系统之上。 现在,Ruby正十分热门。人们正在开始把它应用于各种类型的应用程序。因为它是解释型并且使用动态类型化,所以你可以在运行时刻实现在Java中很 难实现的技巧。由动态类型化和富于表达的语法所实现的令人吃惊的能力之一是它能够用Ruby创建域特定的语言(DSL)-它们允许你在更高级别的抽象层上 工作,从而远离最原始的语言语法。Ruby onRails是一种创建基于数据库支持的Web应用程序的框架,这也展示了Ruby的力量。Rake,作为Ruby的Make和Ant合二为一的版本, 是这种语言强有力的应用的又一个证明。 使用Ruby的另一个原因是,所有的编程发烧友都在使用它。现在,许多Java高手(如Glenn Vanderburg,Bruce Tate和Martin Fowler)都在使用Ruby。即使你不打算把你的所有开发转向Ruby,这种语言也值得你浏览一番。 限制Ruby发展的主要因素之一是,它缺乏一个良好的开发环境(对于那些不想学习Emacs的用户来说)。如今,RDT改变了这一切,而使用Eclipse对此进行试验则最好不过。 二、 安装 在使用Ruby之前,你必须安装Ruby解释器,相应的库和Ruby开发环境。 三、 取得Ruby Ruby可用于所有主要的平台上。事实上,你的Linux或Cygwin分发包中可能已经包含了它。请打开一个命令提示符,然后输入"Ruby-v"。 如果你得到一个版本号,那么你已经准备好。否则,你需要检查你所选择的平台的分发包。 如果你正在运行Windows,则选择更容易。RubyForge,作为SourceForge上的Ruby特定的等价物,有一个工程称为One- Click RubyInstaller,这个程序用于在Windows平台上搭建Ruby环境。它还包括另外一些工具,如一个称为FreeRide的IDE;但是如 果你使用RDT的话,你在安装过程中可以跳过这些这项。 四、 取得文档 当你开始使用一种新语言时,文档及有关参考材料是至关重要的。你可以在主Ruby网站得到Ruby文档的在线参考材料,但是你会发现这些文档有点过时 (它们是针对于Ruby1.6版本的,而当前版本是1.8.2)。问题是,更新的文档目前还没有从日语翻译过来。然而,你可以在Ruby-doc.org 上找到最新的帮助文档。它包括API级的文档(Javadoc的等价物),还有其它一些教程和书籍。 如果你是一位严肃的Ruby开发者,那么你应该阅读一下《Programming Ruby:The Pragmatic Programmer's Guide》(作者是Dave Thomas和AndyHunt)一书以取得最佳编程效果。这是一本有关Ruby及Ruby库编程的经典指南。如果你得到此书,那么你还可以参考也是 DaveThomas编写的《Agile Development with Ruby on Rails》一书。这是一本有关Ruby onRails的入门性书籍。 五、 得到RDT 现在,既然你在自己的计算机上安装了一个可工作的具有良好帮助文档的Ruby,那么接下来你需要安装RDT了。这是一个Eclipse插件,它提供了 许多你可能在编辑代码时已习惯的特征。RDT是一个标准的Eclipse插件;因此,你可以直接把压缩文件解压到Eclipse文件夹下,由文档中的路径 来处理其它一切。 现在,你已经准备好创建一个Ruby工程了(见图1)。
与Java相比,Ruby在命名和目录结构方面要求并不严格。在Ruby中创建一个工程实际上只创建一个目录和一个工程文件(不需要. classpath文件,因为Ruby没有classpath)。另外一个与Java技术的显著区别是,Ruby工程向导并不创建显式的src和bin目 录。Ruby是解释型的,因此没有输出文件夹。如果你有一个小工程,那么你可以把Ruby源文件放在与工程文件相同的文件夹下。作为选择,你还可以创建你 自己的目录层次。你会发现,与Java相比,Ruby很少关心这些。 接下来,你将创建一个Ruby源文件。没有特定的向导用于创建一个Ruby源文件。与Java技术相比,Ruby源文件中仅需要较少的结构,所以,为了创建一个Ruby文件,你需要右击工程来创建一个新文件(见下图2)。
六、 RDT编辑器 在Java世界中,我们已习惯于高级编辑器特征-这使得在转到其它不提供同样支持的其它环境时比较困难。RubyIDE中所缺乏的特征之一是没有提供内容助手(它能够提供上下文相关的标识符查找功能)。幸好,RDT编辑器中含有针对Ruby代码的内容助手,见下图6。
针对内容助手的一个挽回特征是,Ruby在使用标识符时使用特定的命名惯例。例如,在Ruby中,所有的成员变量在第一次使用它们时就存在,并且全部 由一个@符号所标识,作为其名字的第一个字符。如果你使用内容助手查找成员变量,那么你可以输入@,这样以来你就只能看见成员变量了。
七、 运行与调试 IDE的特色之一是在同一个环境下运行和调试你构建的应用程序。RDT能够启用这两项功能。 八、 指定一个解释器 这一任务的实现位于Ruby上部和"Installed Interpreters"入口的"Windows>Preferences"对话框中。 Ruby是一种解释性的语言,因此,在RDT能够运行或调试你的应用程序之前,你必须把一个解释器与你的环境关联。这种关联位于Ruby顶部的"Windows>Preferences"对话框中的"Installed Interpreters"入口处。
九、 运行Ruby应用程序 运行一个Ruby应用程序实际上类似于运行一个Java应用程序。你可以使用Run菜单来创建一个Run配置,见下图9。
十、 用RDT调试 一个IDE要求实现的最关键的特征之一是有效地调试你的应用程序的能力。Ruby解释器包括一个命令行调试器,但是,在如今的图形工具时代有谁会使用 一个命令行调试器?幸好,Ruby解释器还通过一特定(可配置)端口来广播其调试信息,而就象RDT这样的工具能够听取该端口并且提供开发者们期望的调试 支持类型。 为了在RDT中调试一个Ruby应用程序,我们要象上面创建的Run配置一样创建一个Debug配置。然后,你可以通过点击左边的沟槽设置一个断点并 使用调试器来启动应用程序。就象在Java技术中一样,IDE将询问你,是否你想要切换到调试视图下。如果你愿意,则你将看见类似下面图11所示的内容:
调试器支持是RDT的特色。就算你有一个具有优秀的Ruby支持的编辑器,你仍然必须依靠命令行调试器来调试你的应用程序。拥有一个具有全面功能的调试器将会大大提高软件的生产效率。 十一、 测试 作为Java开发者最难实现的Ruby特征之一是动态类型化。如果你习惯于一种强类型化语言,那么动态类型化看上去似乎有点混乱。DT允许各种高级元 编程技巧-这在一种强类型化语言中是很难或不可能实现的。当然,你可以放弃编译时刻类型检查的安全设置。那么,是否有一个方法能够实现两种世界的最佳结合 呢? 单元测试应该是每一种语言必须实现的,但是它在动态语言中特别关键。单元测试比编译揭示了更多的内容。事实上,你应该改变在单元测试和编译之间的关系 上的观点。最近,一位高级软件开发专家认为,"在今后的五年内,我们会把编译作为单元测试的一种弱的实现形式"。单元测试能够提供证实 (verification)-编码将如期实现,而不是仅仅进行你输入内容的语法检查。 考虑到单元测试在Ruby世界中的极端重要性,你一定会希望RDT能够使得单元测试易于运行。的确如此!单元测试被包括在Ruby内,因此你不必下载 任何其它的扩展。Ruby库中包括了一个TestCase类和一个TestSuite的概念。你可以象创建任何另外的Ruby类一样来创建你的单元测试, 从Test::Unit::TestCase中子类化你的测试。列表1是一个Employee类的实例。 列表1.Employee类
列表2.相应于Employee类的单元测试
列表3.一些类的示例TestSuite
RDT的当前版本是0.50。目前,其开发者正在开发0.60版本。下一个版本中将改进的方面包括: · 代码折叠功能-提供针对类和方法的代码折叠功能。 · Outline视图-提供更详细的信息,包括对局部变量的支持。 · RI视图-从一个RDT视图中使用Ruby的ri工具。 · 任务标签-以Ruby注释形式为可配置的关键字(如TODO,FIXME)创建任务。 · 编辑器方面的改进-自动添加大括号,圆括号和单/双引号;还有更好的代码助手。 · 检查器快捷方式-在一个调试会话期间,针对经常使用的检查器提供可配置的快捷方式,如显示一个对象的所有方法,全局常量,等等。 接下来的版本将更好地使用JRuby字节码编译器。JRuby是一项工程,它允许把Ruby代码编译为Java字节码。这意味着,RDT的以后版本将更容易地加入到Eclipse世界中,甚至提供更好的支持。 十三、 总结 Ruby最终为业界人士所广泛认可和应用。其中,部分原因应该归功于Ruby on Rails工程的成功的驱动。如今,已经到了考虑如何把Ruby加入到你的"竞争工具箱"中的时候了。当然,RDT也是吸引你加入这一领域的一个重要因素。 原文地址[天极] |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论