仓酷云

标题: JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟 [打印本页]

作者: 若相依    时间: 2015-1-18 11:14
标题: JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
主要缺点就是:速度比较慢,没有C和C++快  简介本文先容怎样在Eclipse中利用Ruby开辟工具(RDT)插件举行Ruby开辟。本文将无益于那些想进修怎样利用Eclipse基本架构来举行Ruby开辟的Ruby开辟者,也无益于对Ruby开辟感乐趣的Java开辟者。

  1、为何利用Ruby?

  如今,为何浩瀚的Java开辟者都存眷Ruby?Ruby,是10年之前在日本创立的一种通用目标剧本言语,这是一种纯面向对象的言语。分歧于Java手艺,Ruby中的统统都是对象。Ruby的语法次要来历于Smalltalk,Python和Ada。象Java编程言语一样,Ruby是一种单承继的言语,可是它供应了一些Java手艺所没有完成的初级特性,比方闭合(能够以为是一种匿名的外部类)和mix-in(相似于接口,可是较松地绑定于类上)。Ruby也是高度可移植的,可以运转在一切支流的操纵体系之上。

  如今,Ruby正非常抢手。人们正在入手下手把它使用于各类范例的使用程序。由于它是注释型而且利用静态范例化,以是你能够在运转时候完成在Java中很难完成的技能。由静态范例化和富于表达的语法所完成的使人受惊的才能之一是它可以用Ruby创立域特定的言语(DSL)-它们同意你在更初级其余笼统层上事情,从而阔别最原始的言语语法。RubyonRails是一种创立基于数据库撑持的Web使用程序的框架,这也展现了Ruby的力气。Rake,作为Ruby的Make和Ant合二为一的版本,是这类言语强无力的使用的又一个证实。

  利用Ruby的另外一个缘故原由是,一切的编程发热友都在利用它。如今,很多Java妙手(如GlennVanderburg,BruceTate和MartinFowler)都在利用Ruby。即便你不盘算把你的一切开辟转向Ruby,这类言语也值得你扫瞄一番。

  限定Ruby开展的次要要素之一是,它缺少一个优秀的开辟情况(关于那些不想进修Emacs的用户来讲)。现在,RDT改动了这统统,而利用Eclipse对此举行实验则最好不外。

  2、安装

  在利用Ruby之前,你必需安装Ruby注释器,响应的库和Ruby开辟情况。

  3、获得Ruby

  Ruby可用于一切次要的平台上。现实上,你的Linux或Cygwin分发包中大概已包括了它。请翻开一个命令提醒符,然后输出"Ruby-v"。
假如你失掉一个版本号,那末你已筹办好。不然,你必要反省你所选择的平台的分发包。

  假如你正在运转Windows,则选择更简单。RubyForge,作为SourceForge上的Ruby特定的等价物,有一个工程称为One-ClickRubyInstaller,这个程序用于在Windows平台上搭建Ruby情况。它还包含别的一些工具,如一个称为FreeRide的IDE;可是假如你利用RDT的话,你在安装过程当中能够跳过这些这项。

  4、获得文档

  当你入手下手利用一种新言语时,文档及有关参考质料是相当主要的。你能够在主Ruby网站失掉Ruby文档的在线参考质料,可是你会发明这些文档有点过期(它们是针关于Ruby1.6版本的,而以后版本是1.8.2)。成绩是,更新的文档今朝还没有从日语翻译过去。但是,你能够在Ruby-doc.org上找到最新的匡助文档。它包含API级的文档(Javadoc的等价物),另有别的一些教程和书本。

  假如你是一名严厉的Ruby开辟者,那末你应当浏览一下《ProgrammingRuby:ThePragmaticProgrammersGuide》(作者是DaveThomas和AndyHunt)一书以获得最好编程效果。这是一本有关Ruby及Ruby库编程的典范指南。假如你失掉此书,那末你还能够参考也是DaveThomas编写的《AgileDevelopmentwithRubyonRails》一书。这是一本有关RubyonRails的进门性书本。
  5、失掉RDT

  如今,既然你在本人的盘算机上安装了一个可事情的具有优秀匡助文档的Ruby,那末接上去你必要安装RDT了。这是一个Eclipse插件,它供应了很多你大概在编纂代码时已习气的特性。RDT是一个尺度的Eclipse插件;因而,你能够间接把紧缩文件解压到Eclipse文件夹下,由文档中的路径来处置别的统统。

  如今,你已筹办好创立一个Ruby工程了(见)。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.创立一个新的Ruby工程
  与Java比拟,Ruby在定名和目次布局方面请求其实不严厉。在Ruby中创立一个工程实践上只创立一个目次和一个工程文件(不必要.classpath文件,由于Ruby没有classpath)。别的一个与Java手艺的明显区分是,Ruby工程导游其实不创立显式的src和bin目次。Ruby是注释型的,因而没有输入文件夹。假如你有一个小工程,那末你能够把Ruby源文件放在与工程文件不异的文件夹下。作为选择,你还能够创立你本人的目次条理。你会发明,与Java比拟,Ruby很少体贴这些。

  接上去,你将创立一个Ruby源文件。没有特定的导游用于创立一个Ruby源文件。与Java手艺比拟,Ruby源文件中仅必要较少的布局,以是,为了创立一个Ruby文件,你必要右击工程来创立一个新文件(见下)。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.创立一个Ruby源文件
  别健忘把尺度扩大名.rb增加到该文件(它是一般的Ruby扩大名)。创立一个Ruby文件应当会翻开如所示的Ruby视图。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.创立一个Ruby文件将启动Ruby视图
  Ruby还供应了一个Outline视图(相似于Java供应的那种)。就象它的Java对应物一样,它同意你在Ruby源文件的元素之间举行导航。在中,raise_salary_by办法在Outline和源码视图中都被加亮。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.这个Outline视图完成在源文件中的导航
  就象别的庞大的插件一样,RDT也同意经由过程"Window>Preferences"对话框增添定制特性。这个定制对话框见。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.RDT安装"Preferences"以便完成定制
  参数选择"Preferences"菜单项同意你改动语法加亮,格局化(Ruby天下中的尺度缩进是两个空格,而不是四个空格,以是请筹办好作一些调剂),等等。它还同意你定制编纂器模板并选择你本人的注释器。

  6、RDT编纂器

  在Java天下中,我们已习气于初级编纂器特性-这使得在转到别的不供应一样撑持的别的情况时对照坚苦。RubyIDE中所缺少的特性之一是没有供应内容助手(它可以供应高低文相干的标识符查找功效)。幸亏,RDT编纂器中含有针对Ruby代码的内容助手,见下。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.RDT编纂器供应了内容助手
  在Ruby中,你不克不及把一品种型赋值给一个变量或一个办法的前往,而由标识符高低文断定在运转时候的范例。Ruby中引进了一种被亲热地称为"ducktyping"的办法。这类办法的头脑是,假如它承受一个假(quack)动静,那末它必需是一个"duck"。这看起来仿佛妨害了那些已习气了强范例化言语的用户,这类松懈范例耦合可以撑持Ruby言语中一些更强无力的特性。比方,你能够用Ruby编写一个非常处置器-当你挪用一个其实不存在的办法时激活它,然后由该非常处置处置器来自在剖析这个办法,然后再挪用它。这类元编程级在强范例化言语中是很难完成的。

  针对内容助手的一个挽回特性是,Ruby在利用标识符时利用特定的定名常规。比方,在Ruby中,一切的成员变量在第一次利用它们时就存在,而且全体由一个@标记所标识,作为其名字的第一个字符。假如你利用内容助手查找成员变量,那末你能够输出@,如许以来你就只能瞥见成员变量了。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.在Ruby匡助内容助手中的定名常规
  静态范例化仍旧妨害在Ruby中的高低文敏感成绩。在中,独一无效的成员变量是恰好呈现在办法声明下面的那些,也就是@name,@salary和@hire_year。内容助手所供应的别的一些成员来自于另外一个类(前面界说)。今朝,RDT编纂器还不敷够庞大以过滤一切的准确语法但语义上不准确的出口。
  7、运转与调试

  IDE的特征之一是在统一个情况下运转和调试你构建的使用程序。RDT可以启用这两项功效。

  8、指定一个注释器

  这一义务的完成位于Ruby上部和"InstalledInterpreters"出口的"Windows>Preferences"对话框中。
Ruby是一种注释性的言语,因而,在RDT可以运转或调试你的使用程序之前,你必需把一个注释器与你的情况联系关系。这类联系关系位于Ruby顶部的"Windows>Preferences"对话框中的"InstalledInterpreters"出口处。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.把一个Ruby注释器与情况相干联
  关于你正在利用的Ruby版本,你要把"Location"文本域指向bin目次,以后由RDT来拔取一切别的所必要的信息。一旦你联系关系懂得释器,那末你就为运转使用程序作好了筹办。

  9、运转Ruby使用程序

  运转一个Ruby使用程序实践上相似于运转一个Java使用程序。你可使用Run菜单来创立一个Run设置,见下。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

.在RDT中创建一个Run设置
  当你运转使用程序时,RDT将把把持切换到Ruby注释器,然后在Eclipse事情区底部的把持台窗口内运转使用程序,见下0。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

0.在RDT内运转一个Ruby使用程序
  这个实例显现了运转一个把持台使用程序,可是运转别的范例的使用程序(如GUI程序)的体例与此不异。

  10、用RDT调试

  一个IDE请求完成的最关头的特性之一是无效地调试你的使用程序的才能。Ruby注释器包含一个命令行调试器,可是,在现在的图形工具时期有谁会利用一个命令行调试器?幸亏,Ruby注释器还经由过程一特定(可设置)端口来播送其调试信息,而就象RDT如许的工具可以听取该端口而且供应开辟者们希冀的调试撑持范例。

  为了在RDT中调试一个Ruby使用程序,我们要象下面创立的Run设置一样创立一个Debug设置。然后,你能够经由过程点击右边的沟槽设置一个断点并利用调试器来启动使用程序。就象在Java手艺中一样,IDE将扣问你,是不是你想要切换到调试视图下。假如你乐意,则你将瞥见相似上面1所示的内容:

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

1.在RDT中调试Ruby使用程序
  RDT中撑持与Java手艺调试不异的调试级别。左上边的格子显现出以后实行的线程,右下面的格子显现出变量的值。就象在Java编程言语中一样,你能够进一步剖析对象以寓目它们内涵的成员变量值。两头右边的格子显现以后正运转的使用程序的源代码,两头右侧的格子显现Outline视图-它在这里承当编纂器的感化,同意你经由过程点按一个标识符来举行导航。Debug窗口的底部显现出Ruby注释器在端口1098上播送的调试信息,而由RDT在该端口上听取调试信息。

  调试器撑持是RDT的特征。就算你有一个具有优异的Ruby撑持的编纂器,你仍旧必需依托命令行调试器来调试你的使用程序。具有一个具有周全功效的调试器将会年夜年夜进步软件的临盆效力。
  11、测试

  作为Java开辟者最难完成的Ruby特性之一是静态范例化。假如你习气于一种强范例化言语,那末静态范例化看上往仿佛有点凌乱。DT同意各类初级元编程技能-这在一种强范例化言语中是很难或不成能完成的。固然,你能够保持编译时候范例反省的平安设置。那末,是不是有一个办法可以完成两种天下的最好分离呢?

  单位测试应当是每种言语必需完成的,可是它在静态言语中出格关头。单位测试比编译展现了更多的内容。现实上,你应当改动在单位测试和编译之间的干系上的概念。比来,一名初级软件开辟专家以为,"在从此的五年内,我们会把编译作为单位测试的一种弱的完成情势"。单位测试可以供应证明(verification)-编码将准期完成,而不是仅仅举行你输出内容的语法反省。

  思索到单位测试在Ruby天下中的极度主要性,你必定会但愿RDT可以使得单位测试易于运转。切实其实云云!单位测试被包含在Ruby内,因而你不用下载任何别的的扩大。Ruby库中包含了一个TestCase类和一个TestSuite的观点。你能够象创立任何别的的Ruby类一样来创立你的单位测试,从Test::Unit::TestCase中子类化你的测试。列表1是一个Employee类的实例。

  列表1.Employee类

classEmployee
 definitialize(name,salary,hire_year)
  @name=name
  @salary=salary
  @hire_year=hire_year
 end
 attr_reader:name,:salary,:hire_year
 defraise_salary_by(perc)
  @salary+=(@salary*(perc*0.01))
 end
 defto_s
  "Nameis#{@name},salaryis#{@salary},"+"hireyearis#{@hire_year}"
 end
end
  响应的单位测试以下:

  列表2.响应于Employee类的单位测试

requiretest/unit/testcase
requiretest/unit/autorunner
requirehr
classTestEmployee<Test::Unit::TestCase
 @@Test_Salary=2500
 defsetup
  @emp=Employee.new("Homer",@@Test_Salary,2003)
 end
 deftest_raise_salary
  @emp.raise_salary_by(10)
  expected=(@@Test_Salary*0.10)+@@Test_Salary
  assert(expected==@emp.salary)
 end
end
  为了运转这个单位测试,你能够为该单位测试类创立一个Run设置-作为一个Test::Unit范例,见2。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

2.RDT包含一个Test::UnitRun设置
  当你运转这个测试时,你会失掉与Java单位测试不异的撑持元素,包含在左下角的类JUnit格子。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

3.运转于IDE中的一个单位测试的例子
  你还能够在Ruby中创立TestSuites。TestSuites是Ruby类,它界说一个前往TestSuite的suite办法。这个TestSuite由主动地在每一个TestCases中界说的suite构成。列表3是针对几个类的一个示例TestSuite。

  列表3.一些类的示例TestSuite

requiretest/unit/testsuite
requiretest/unit/ui/tk/testrunner
requiretest/unit/ui/console/testrunner
requireTestEmployee
requireTestManager
classTestSuite_AllTests
 defself.suite
  suite=Test::Unit::TestSuite.new("HRTests")
  suite<<TestEmployee.suite
  suite<<TestManager.suite
  returnsuite
 end
end
#Test::Unit::UI::Tk::TestRunner.run(TestSuite_AllTests)
Test::Unit::UI::Console::TestRunner.run(TestSuite_AllTests)
  分歧于后面运转单个TestCase的实例,这里的suite作为一自力的使用程序运转。Ruby有两个办法能够显现TestSuite的了局。第一个是"ConsoleTestRunner"-它在把持台输入它的了局。第二个是"TkTestRunner",它创立一个熟习的对话框来显现测试的了局。4显现了一个TkTestSuite对话框。

JAVA网站制作之利用Eclipse+RDT插件举行Ruby开辟
登录/注册后可看大图

4.图情势的TestSuite对话框
  12、新版本中的改善

  RDT确当前版本是0.50。今朝,其开辟者正在开辟0.60版本。下一个版本中将改善的方面包含:

  ・代码折叠功效-供应针对类和办法的代码折叠功效。

  ・Outline视图-供应更具体的信息,包含对部分变量的撑持。

  ・RI视图-从一个RDT视图中利用Ruby的ri工具。

  ・义务标签-以Ruby正文情势为可设置的关头字(如TODO,FIXME)创立义务。

  ・编纂器方面的改善-主动增加年夜括号,圆括号和单/双引号;另有更好的代码助手。

  ・反省器快速体例-在一个调试会话时代,针对常常利用的反省器供应可设置的快速体例,如显现一个对象的一切办法,全局常量,等等。

  接上去的版本将更好地利用JRuby字节码编译器。JRuby是一项工程,它同意把Ruby代码编译为Java字节码。这意味着,RDT的今后版本将更简单地到场到Eclipse天下中,乃至供应更好的撑持。

  十3、总结

  Ruby终极为业界人士所普遍承认和使用。个中,部分缘故原由应当回功于RubyonRails工程的乐成的驱动。现在,已到了思索怎样把Ruby到场到你的"合作工具箱"中的时分了。固然,RDT也是吸引你到场这一范畴的一个主要要素。

先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
作者: 灵魂腐蚀    时间: 2015-1-20 18:27
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 谁可相欹    时间: 2015-1-29 14:21
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 若相依    时间: 2015-2-7 16:16
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 爱飞    时间: 2015-2-16 21:35
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 精灵巫婆    时间: 2015-3-5 09:48
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 变相怪杰    时间: 2015-3-11 18:48
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 飘飘悠悠    时间: 2015-3-19 07:48
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 再见西城    时间: 2015-3-27 14:09
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2