一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用 Eclipse 插件 Ruby Development Tools

 vchengyun 2007-01-18

2005 年 12 月 08 日

本文介紹如何使用 Eclipse 插件 Ruby Development Tools(RDT),這個(gè)插件使 Eclipse 能夠成為一流的 Ruby 開(kāi)發(fā)環(huán)境。那些希望利用 Eclipse 社區(qū)豐富的基礎(chǔ)設(shè)施來(lái)支持開(kāi)發(fā)的 Ruby 開(kāi)發(fā)人員會(huì)從本文中受益,對(duì)有興趣使用 Ruby 的 Java? 開(kāi)發(fā)人員也會(huì)有所收獲。

為什么要使用 Ruby?

為什么 Java 開(kāi)發(fā)人員會(huì)關(guān)心 Ruby?Ruby 是 10 年前在日本開(kāi)發(fā)出來(lái)的通用腳本語(yǔ)言。與流行的信念相反,它是一種純面向?qū)ο笳Z(yǔ)言。與 Java 技術(shù)不同,Ruby 沒(méi)有標(biāo)量,所以所有東西(包括整數(shù))都是一類對(duì)象。Ruby 的語(yǔ)法很大程度上借鑒于 Smalltalk、Python 和 Ada。與 Java 語(yǔ)言相同的地方是,Ruby 也是一種單繼承語(yǔ)言,但是它提供了 Java 技術(shù)所缺乏的某些高級(jí)特性,比如閉包(與 steroids 上的匿名內(nèi)部類相似)和 mix-ins(與接口相似,但是它們與類的綁定不太緊密)。Ruby 也具有很高的可移植性,可以在所有主流操作系統(tǒng)上運(yùn)行。

Ruby 現(xiàn)在已經(jīng)很流行了,人們開(kāi)始用它建立各種應(yīng)用程序。因?yàn)樗墙忉屨Z(yǔ)言而且使用動(dòng)態(tài)類型,所以可以在運(yùn)行時(shí)做許多極其靈活的工作,而這在 Java 中是非常困難的。動(dòng)態(tài)類型和表達(dá)語(yǔ)法所支持的神奇功能之一是,能夠在 Ruby 中創(chuàng)建領(lǐng)域特定的語(yǔ)言,這使開(kāi)發(fā)人員能夠在更高的抽象級(jí)別上工作,從而脫離語(yǔ)言的“原始”語(yǔ)法。Ruby on Rails 是一個(gè)用于創(chuàng)建帶后端數(shù)據(jù)庫(kù)的 Web 應(yīng)用程序的框架,它展示了這種優(yōu)雅性。Rake(Make 和 Ant 相結(jié)合的 Ruby 版本)也展示了 Ruby 的這種強(qiáng)大能力。

使用 Ruby 的另一個(gè)理由是,許多敏銳的開(kāi)發(fā)人員已經(jīng)開(kāi)始使用它了。那些在 1996 年就認(rèn)識(shí)到 Java 技術(shù)即將流行的開(kāi)發(fā)人員(比如 Glenn Vanderburg、Bruce Tate 和 Martin Fowler)現(xiàn)在已經(jīng)開(kāi)始使用 Ruby。即使您還不打算全面轉(zhuǎn)向 Ruby,現(xiàn)在也應(yīng)該研究一下這種語(yǔ)言了。

對(duì)于用 Ruby 進(jìn)行廣泛的開(kāi)發(fā),主要的限制因素之一是缺少一個(gè)出色的開(kāi)發(fā)環(huán)境(對(duì)于那些不想學(xué)習(xí) Emacs 的人來(lái)說(shuō)尤其如此)。RDT 改變了這種狀況。在您喜歡的 Eclipse IDE 中使用 Ruby,這會(huì)使您感到舒適。





回頁(yè)首


準(zhǔn)備

在開(kāi)始使用 Ruby 之前,必須安裝(或者驗(yàn)證已經(jīng)具有了) Ruby 解釋器和庫(kù)以及 Ruby Development Environment。

獲得 Ruby

可以獲得適合所有主流平臺(tái)以及幾個(gè)次要平臺(tái)的 Ruby 版本。實(shí)際上,您的 Linux? 或 Cygwin 發(fā)行版可能已經(jīng)包含了 Ruby。轉(zhuǎn)到命令提示符下并輸入 ruby -v

如果看到一個(gè)版本號(hào),就說(shuō)明 Ruby 已經(jīng)有了。如果沒(méi)有看到版本號(hào),就需要獲取 Ruby。先尋找適合您平臺(tái)的 發(fā)行版。

如果您正在使用 Windows?,就更容易了。RubyForge(與 SourceForge 功能相似)有一個(gè)稱為 One-Click Ruby Installer 的項(xiàng)目,這個(gè)程序會(huì)在 Windows 上建立 Ruby 環(huán)境(參閱 參考資料)。它還包含幾個(gè)工具,包括稱為 FreeRide 的 IDE,但是如果使用 RDT,則可以不用理會(huì)大多數(shù)這些工具。





回頁(yè)首


獲得文檔

在開(kāi)始使用一種新語(yǔ)言時(shí),文檔和其他參考資料是非常重要的??梢栽?Ruby 主 Web 站點(diǎn)上獲得 Ruby 文檔的在線參考,但是您會(huì)發(fā)現(xiàn)這里的文檔有點(diǎn)兒過(guò)時(shí)了(它針對(duì) Ruby V1.6,而當(dāng)前版本是 1.8.2)。這是因?yàn)樽钚碌奈臋n還沒(méi)有從日文翻譯成英文。但是在 Ruby-doc.org 上可以找到最新的文檔。它包含 API 級(jí)文檔(與 Javadoc 等同)以及一些教程和書(shū)籍。(參閱 參考資料。)

如果您關(guān)心 Ruby 開(kāi)發(fā),那么應(yīng)該盡快獲得 Dave Thomas 和 Andy Hunt 撰寫(xiě)的 Programming Ruby: The Pragmatic Programmer‘s Guide(參閱 參考資料)。這是對(duì) Ruby 的標(biāo)準(zhǔn)介紹并且介紹了 Ruby 庫(kù)的需求。在閱讀這本書(shū)的同時(shí),還可以閱讀 Dave Thomas 撰寫(xiě)的 Agile Development with Ruby on Rails,其中介紹了 Ruby on Rails。

獲得 RDT

既然已經(jīng)在計(jì)算機(jī)上安裝了可以工作的 Ruby 版本并且獲得了文檔,現(xiàn)在就需要 RDT 了(參閱 參考資料)。這個(gè) Eclipse 插件提供了許多特性,您在編輯代碼時(shí)會(huì)慢慢熟悉這些特性。RDT 是一個(gè)標(biāo)準(zhǔn)的 Eclipse 插件,具有特性和插件,所以可以將 zip 文件直接解壓縮到 Eclipse 文件夾。存檔文件中的路徑會(huì)建立目錄結(jié)構(gòu)。

現(xiàn)在可以創(chuàng)建 Ruby 項(xiàng)目了(參見(jiàn)圖 1):


圖 1. 創(chuàng)建新的 Ruby 項(xiàng)目
創(chuàng)建新的 Ruby 項(xiàng)目

與 Java 技術(shù)相比,Ruby 對(duì)名稱和目錄結(jié)構(gòu)的要求寬松多了。在 Ruby 中創(chuàng)建一個(gè)項(xiàng)目實(shí)際上只是創(chuàng)建一個(gè)目錄和一個(gè) .project 文件(這里不需要 .classpath 文件,因?yàn)?Ruby 沒(méi)有類路徑)。與 Java 技術(shù)相比,另一個(gè)顯著差異是 Ruby 項(xiàng)目向?qū)Р⒉粍?chuàng)建顯式的 srcbin 目錄。Ruby 是解釋語(yǔ)言,所以沒(méi)有輸出文件夾。如果項(xiàng)目比較小,那么可以將 Ruby 源代碼文件與項(xiàng)目文件放在同一個(gè)文件夾中。也可以創(chuàng)建自己的目錄結(jié)構(gòu)。您會(huì)發(fā)現(xiàn),與 Java 語(yǔ)言相比,Ruby 不太關(guān)心目錄結(jié)構(gòu)。

接下來(lái),需要一個(gè) Ruby 源代碼文件。沒(méi)有專門(mén)用于創(chuàng)建 Ruby 源代碼文件的向?qū)?。與 Java 技術(shù)不同,對(duì)于 Ruby 源代碼文件的結(jié)構(gòu)沒(méi)有什么要求,所以要?jiǎng)?chuàng)建 Ruby 文件,只需使用項(xiàng)目的右擊菜單創(chuàng)建一個(gè)新文件。


圖 2. 創(chuàng)建 Ruby 源代碼文件
創(chuàng)建 Ruby 源代碼文件

不要忘記在文件名后面加上標(biāo)準(zhǔn)的擴(kuò)展名 .rb,這是一般的 Ruby 擴(kuò)展名。創(chuàng)建 Ruby 文件應(yīng)該會(huì)打開(kāi) Ruby 透視圖。


圖 3. 創(chuàng)建 Ruby 源代碼文件會(huì)打開(kāi) Ruby 透視圖
創(chuàng)建 Ruby 源代碼文件會(huì)打開(kāi) Ruby 透視圖

Ruby 透視圖還提供一個(gè)大綱視圖,這與 Java 透視圖提供的大綱視圖相似。與 Java 大綱視圖相似,它允許導(dǎo)航 Ruby 源代碼文件的元素。在圖 4 中,raise_salary_by 方法在大綱視圖和源代碼視圖中高亮顯示。


圖 4. 大綱視圖允許在源代碼文件中進(jìn)行導(dǎo)航
大綱視圖允許在源代碼文件中進(jìn)行導(dǎo)航

與其他復(fù)雜的插件一樣,RDT 也在 Window > Preferences 對(duì)話框中增加了定制特性。這個(gè)首選項(xiàng)對(duì)話框如圖 5 所示。


圖 5. RDT 的定制首選項(xiàng)
RDT 的定制首選項(xiàng)

首選項(xiàng)菜單項(xiàng)允許修改語(yǔ)法高亮顯示方式、格式化(在 Ruby 中標(biāo)準(zhǔn)的縮進(jìn)是兩個(gè)空格,不是四個(gè),所以要做某些調(diào)整)等等。它還允許定制編輯器模板以及選擇解釋器。





回頁(yè)首


RDT 編輯器

在 Java 技術(shù)環(huán)境中,我們已經(jīng)習(xí)慣了高級(jí)的編輯器特性,這使我們?cè)谵D(zhuǎn)移到?jīng)]有提供這些特性的其他環(huán)境時(shí)不太適應(yīng)。Ruby IDE 缺乏的特性之一是 Content Assist,這種特性針對(duì)標(biāo)識(shí)符進(jìn)行上下文相關(guān)的查找。RDT 編輯器對(duì) Ruby 代碼提供了 Content Assist。


圖 6. RDT 編輯器提供 Content Assist
RDT 編輯器提供 Content Assist

RDT 編輯器中的 Content Assist 沒(méi)有 Java 環(huán)境中那么有針對(duì)性,因?yàn)?Ruby 支持動(dòng)態(tài)類型。在 Ruby 中,不能將類型賦給變量或者方法返回值。標(biāo)識(shí)符上下文在運(yùn)行時(shí)決定類型。Ruby 使用所謂的“duck typing” —— 也就是說(shuō),如果它接受“鴨叫”消息,那么它一定是鴨子。對(duì)于那些習(xí)慣于強(qiáng)類型語(yǔ)言的人來(lái)說(shuō),這可能像是一種阻礙,但是這種弱類型耦合使 Ruby 語(yǔ)言能夠?qū)崿F(xiàn)某些更強(qiáng)大的特性。例如,在 Ruby 中可以編寫(xiě)一個(gè)異常處理程序,如果調(diào)用一個(gè)不存在的方法就會(huì)觸發(fā)這個(gè)程序,這個(gè)異常處理程序可以動(dòng)態(tài)地合成這個(gè)方法并且調(diào)用它。在強(qiáng)類型語(yǔ)言中很難實(shí)現(xiàn)這種元編程。

Content Assist 彌補(bǔ)的特性之一是 Ruby 對(duì)標(biāo)識(shí)符使用的特殊命名約定。例如,在 Ruby 中,所有成員變量在第一次使用時(shí)才存在,而且都由 @ 符號(hào)作為名稱的第一個(gè)字符。如果使用 Content Assist 查找成員變量,那么可以輸入 @,并且只看到成員變量。


圖 7. Ruby 中的命名約定幫助實(shí)現(xiàn) Content Assist
Ruby 中的命名約定幫助實(shí)現(xiàn) Content Assist

動(dòng)態(tài)類型仍然會(huì)妨礙 Ruby 中的上下文敏感性。在圖 7 中,合法的成員變量只是在上面方法聲明中出現(xiàn)的成員變量,即 @name、@salary@hire_year。Content Assist 挑選出的其他成員變量來(lái)自后面定義的另一個(gè)類。RDT 編輯器還不完善,無(wú)法過(guò)濾出所有語(yǔ)法上正確但是語(yǔ)義上不正確的條目。





回頁(yè)首


運(yùn)行和調(diào)試

IDE 的關(guān)鍵特性之一是能夠在構(gòu)建應(yīng)用程序的環(huán)境中對(duì)應(yīng)用程序進(jìn)行運(yùn)行和調(diào)試。RDT 支持這兩種功能。

指定解釋器

Ruby 是一種解釋語(yǔ)言,所以必須將一種解釋器與環(huán)境相關(guān)聯(lián),然后 RDT 才能運(yùn)行或調(diào)試應(yīng)用程序。這種關(guān)聯(lián)是在 Windows > Preferences 對(duì)話框中 Ruby 標(biāo)題下面的 Installed Interpreters 項(xiàng)中設(shè)置的。


圖 8. 將 Ruby 解釋器與環(huán)境關(guān)聯(lián)起來(lái)
將 Ruby 解釋器與環(huán)境關(guān)聯(lián)起來(lái)

將“Location”文本域指向您使用的 Ruby 版本的 bin 目錄。RDT 會(huì)找到所需的其他信息。關(guān)聯(lián)了解釋器之后,就可以運(yùn)行應(yīng)用程序了。

運(yùn)行 Ruby 應(yīng)用程序

運(yùn)行 Ruby 應(yīng)用程序與運(yùn)行 Java 應(yīng)用程序?qū)嶋H上完全一樣。使用 Run 菜單創(chuàng)建一個(gè) Run 配置。


圖 9. 在 RDT 中建立 Run 配置
在 RDT 中建立 Run 配置

在運(yùn)行應(yīng)用程序時(shí),RDT 啟動(dòng) Ruby 解釋器并且在 Eclipse 工作區(qū)底部的一個(gè)控制臺(tái)窗口中運(yùn)行這個(gè)應(yīng)用程序。


圖 10. 在 RDT 中運(yùn)行 Ruby 應(yīng)用程序
在 RDT 中運(yùn)行 Ruby 應(yīng)用程序

這個(gè)例子顯示如何運(yùn)行一個(gè)控制臺(tái)應(yīng)用程序,但是運(yùn)行其他類型的應(yīng)用程序(比如圖形化應(yīng)用程序)也是一樣的。

用 RDT 進(jìn)行調(diào)試

IDE 需要的最關(guān)鍵的特性之一是能夠有效地調(diào)試應(yīng)用程序。Ruby 解釋器包含一個(gè)命令行調(diào)試器,但是在這個(gè)圖形化工具的時(shí)代誰(shuí)還想使用命令行調(diào)試器?幸運(yùn)的是,Ruby 解釋器還通過(guò)一個(gè)特定(可配置)的端口廣播調(diào)試信息,RDT 這樣的工具能夠監(jiān)聽(tīng)這個(gè)端口并且提供開(kāi)發(fā)人員期望的調(diào)試支持類型。

要調(diào)試 Ruby 應(yīng)用程序,需要?jiǎng)?chuàng)建一個(gè) Debug 配置,就像前面創(chuàng)建 Run 配置一樣。然后,在左邊的空白處點(diǎn)擊以設(shè)置斷點(diǎn),并使用調(diào)試器啟動(dòng)應(yīng)用程序。與 Java 技術(shù)一樣,IDE 將詢問(wèn)您是否想切換到 Debug 透視圖?;卮鹬?,將看到下面這樣的屏幕:


圖 11. 在 RDT 中調(diào)試 Ruby 應(yīng)用程序
在 RDT 中調(diào)試 Ruby 應(yīng)用程序

RDT 提供了與 Java 技術(shù)相同的調(diào)試支持級(jí)別。左上方的窗格顯示當(dāng)前正在執(zhí)行的線程。右上方的窗格顯示變量的值。與 Java 語(yǔ)言中一樣,可以深入到對(duì)象中,查看它們的底層成員變量值。左邊中間的窗格顯示正在運(yùn)行的應(yīng)用程序的源代碼,右邊中間的窗格顯示大綱視圖(它在這里的工作方式與在編輯器中一樣,讓開(kāi)發(fā)人員能夠通過(guò)點(diǎn)擊標(biāo)識(shí)符來(lái)進(jìn)行導(dǎo)航)。Debug 窗口的底部顯示 Ruby 解釋器在端口 1098 上廣播調(diào)試信息,RDT 在這個(gè)端口上監(jiān)聽(tīng)調(diào)試信息。

調(diào)試支持是 RDT 的關(guān)鍵特性。即使您的編輯器有出色的 Ruby 支持,但是仍然必須依賴命令行調(diào)試器來(lái)調(diào)試應(yīng)用程序。擁有一個(gè)功能全面的調(diào)試器可以顯著提高生產(chǎn)效率。





回頁(yè)首


測(cè)試

對(duì)于 Java 開(kāi)發(fā)人員,Ruby 最難掌握的特性之一是動(dòng)態(tài)類型。如果您已經(jīng)習(xí)慣了強(qiáng)類型語(yǔ)言,那么動(dòng)態(tài)類型看起來(lái)可能會(huì)導(dǎo)致混亂。動(dòng)態(tài)類型支持所有高級(jí)的元編程技巧,這在強(qiáng)類型語(yǔ)言中是很難實(shí)現(xiàn)的,甚至不可能。當(dāng)然,還會(huì)失去編譯時(shí)檢查的安全保障。是否有辦法同時(shí)獲得這兩種環(huán)境的優(yōu)勢(shì)呢?

對(duì)于語(yǔ)言,單元測(cè)試是必需的,但是在動(dòng)態(tài)語(yǔ)言中它特別重要。單元測(cè)試能夠比單純編譯揭示出更多的問(wèn)題。實(shí)際上,您應(yīng)該換個(gè)角度看待單元測(cè)試和編譯之間的關(guān)系。近來(lái),在一個(gè)軟件開(kāi)發(fā)專家討論會(huì)上,軟件開(kāi)發(fā)思想家 Relevance 公司的 Stuart Halloway 指出,“在 5 年內(nèi),我們將看到編譯成為一種比較弱的單元測(cè)試形式?!眴卧獪y(cè)試檢驗(yàn)代碼是否做了開(kāi)發(fā)人員希望它做的事兒,而不只是對(duì)類型進(jìn)行拼寫(xiě)檢查。

既然單元測(cè)試在 Ruby 環(huán)境中如此重要,那么當(dāng)然希望 RDT 可以使運(yùn)行單元測(cè)試更容易。它確實(shí)做到了。單元測(cè)試已經(jīng)包含在 Ruby 中,所以不需要下載任何額外的擴(kuò)展代碼。Ruby 庫(kù)包含一個(gè) TestCase 類和 TestSuite 的概念。可以像創(chuàng)建其他 Ruby 類一樣創(chuàng)建單元測(cè)試,這需要對(duì) Test::Unit::TestCase 進(jìn)行子類化。清單 1 是一個(gè)稱為 Employee 的示例類。


清單 1. Employee 類

                        
                        class Employee
                        def initialize(name, salary, hire_year)
                        @name = name
                        @salary = salary
                        @hire_year = hire_year
                        end
                        attr_reader :name, :salary, :hire_year
                        def raise_salary_by(perc)
                        @salary += (@salary * (perc * 0.01))
                        end
                        def to_s
                        "Name is #{@name}, salary is #{@salary}, " +
                        "hire year is #{@hire_year}"
                        end
                        end
                        

對(duì)應(yīng)的單元測(cè)試是:


清單 2. Employee 類的單元測(cè)試

                        
                        require ‘test/unit/testcase‘
                        require ‘test/unit/autorunner‘
                        require ‘hr‘
                        class TestEmployee < Test::Unit::TestCase
                        @@Test_Salary = 2500
                        def setup
                        @emp = Employee.new("Homer", @@Test_Salary, 2003)
                        end
                        def test_raise_salary
                        @emp.raise_salary_by(10)
                        expected = (@@Test_Salary * 0.10) + @@Test_Salary
                        assert( expected == @emp.salary)
                        end
                        end
                        

要運(yùn)行這個(gè)單元測(cè)試,應(yīng)該為單元測(cè)試類創(chuàng)建一個(gè) Test::Unit 類型的 Run 配置。


圖 12. RDT 包含 Test::Unit Run 配置
RDT 包含 Test::Unit Run 配置

在運(yùn)行這個(gè)測(cè)試時(shí),可以獲得與 Java 單元測(cè)試相同的支持元素,包括左下角與 JUnit 相似的面板。


圖 13. 在 IDE 中運(yùn)行的單元測(cè)試示例
在 IDE 中運(yùn)行的單元測(cè)試示例

在 Ruby 中還可以創(chuàng)建 TestSuites。TestSuites 是定義套件方法的 Ruby 類,這個(gè)方法返回 TestSuite。TestSuite 由在每個(gè) TestCases 中自動(dòng)定義的套件組成。清單 3 是兩個(gè)類的 TestSuite 示例。


清單 3. 兩個(gè)類的 TestSuite 示例

                        
                        require ‘test/unit/testsuite‘
                        require ‘test/unit/ui/tk/testrunner‘
                        require ‘test/unit/ui/console/testrunner‘
                        require ‘TestEmployee‘
                        require ‘TestManager‘
                        class TestSuite_AllTests
                        def self.suite
                        suite = Test::Unit::TestSuite.new("HR Tests")
                        suite << TestEmployee.suite
                        suite << TestManager.suite
                        return suite
                        end
                        end
                        #Test::Unit::UI::Tk::TestRunner.run(TestSuite_AllTests)
                        Test::Unit::UI::Console::TestRunner.run(TestSuite_AllTests)
                        

與前面運(yùn)行單一 TestCase 的例子不同,套件作為單獨(dú)的應(yīng)用程序運(yùn)行。Ruby 有兩種顯示 TestSuite 結(jié)果的方法。第一種是 Console Test Runner,它在控制臺(tái)輸出結(jié)果。第二種是 Tk TestRunner,它創(chuàng)建一個(gè)對(duì)話框來(lái)顯示測(cè)試結(jié)果。Tk TestSuite 對(duì)話框見(jiàn)圖 14。


圖 14. 圖形化的 TestSuite 對(duì)話框
圖形化的 TestSuite 對(duì)話框




回頁(yè)首


未來(lái)的發(fā)展

RDT 的當(dāng)前版本是 0.50。它的開(kāi)發(fā)人員正在為下一個(gè)版本 0.60 而努力。下一個(gè)版本中計(jì)劃的改進(jìn)包括:

  • 代碼折疊 —— 可以將類和方法的代碼折疊起來(lái)。
  • 大綱視圖 —— 更詳細(xì),支持局部變量。
  • RI 視圖 —— 從 一個(gè) RDT 視圖使用 Ruby 的 ri 實(shí)用程序。
  • 任務(wù)標(biāo)記 —— 在 Ruby 注釋中為可配置的關(guān)鍵字(比如 TODO、FIXME)創(chuàng)建任務(wù)。
  • 編輯器改進(jìn) —— 自動(dòng)補(bǔ)齊方括號(hào)、圓括號(hào)和單/雙引號(hào);更好的代碼輔助。
  • 審查的快捷方式 —— 對(duì) Debug 會(huì)話期間經(jīng)常使用的審查提供可配置的快捷方式,比如顯示對(duì)象的所有方法、全局變量,等等。

下一個(gè)版本將更好地使用 JRuby 字節(jié)碼編譯器。JRuby 項(xiàng)目可以將 Ruby 代碼編譯為 Java 字節(jié)碼。這意味著 RDT 的下一版本將更容易集成到 Eclipse 環(huán)境中,提供更好的支持。





回頁(yè)首


結(jié)束語(yǔ)

Pragmatic Programmer: From Journeyman to Master 一書(shū)中最出色的建議之一是:您應(yīng)該每年學(xué)習(xí)一種新的編程語(yǔ)言從而跟上潮流,并且通過(guò)新語(yǔ)言學(xué)習(xí)一些新知識(shí)。Ruby 就快要廣泛流行了,這在某種程度上是由于 Ruby on Rails 項(xiàng)目獲得了成功。到了將 Ruby 加進(jìn)您的工具庫(kù)的時(shí)候了。RDT 是您掌握 Ruby 的好幫手。





回頁(yè)首


參考資料

學(xué)習(xí)
  • 您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文

  • Ruby 語(yǔ)言的官方站點(diǎn) Ruby-lang.org 是通向其他 Ruby 站點(diǎn)和文檔的門(mén)戶。

  • Ruby on Rails 是一個(gè)有影響力的基于 Ruby 的 Web 應(yīng)用程序框架。這個(gè)站點(diǎn)允許下載 rails 并且查看示例應(yīng)用程序。

  • Rubyforge.org 提供 One-Click Ruby Installer,這個(gè)程序在 Windows 上建立 Ruby 環(huán)境。

  • Ruby-doc.org 上可以找到最新的 Ruby 文檔。

  • Dave Thomas 撰寫(xiě)的 Programming Ruby, The Pragmatic Programmer‘s Guide, 2nd Edition 是 Ruby 語(yǔ)言的指南。這本書(shū)采用一種非常容易閱讀的方式編寫(xiě),是新接觸 Ruby 的人的首選書(shū)籍。即使您不關(guān)心 Ruby,也應(yīng)該閱讀這本經(jīng)典的軟件工程著作。

  • 如果您對(duì) Rails 感興趣,那么 Dave Thomas 和 David Heinemeier Hansson 撰寫(xiě)的 Agile Development with Rails: A Pragmatic Guide 是不錯(cuò)的入門(mén)書(shū)。這本書(shū)明確地指導(dǎo)如何用 Rails 進(jìn)行開(kāi)發(fā)。

  • Andrew Hunt 和 David Thomas 撰寫(xiě)的 The Pragmatic Programmer: From Journeyman to Master 建議開(kāi)發(fā)人員應(yīng)該每年學(xué)習(xí)一種新語(yǔ)言。

  • Glenn Vanderburg 是一位軟件思想家,常常提出有意思的觀點(diǎn)。他是最先認(rèn)識(shí)到并且宣傳 Java 技術(shù)的潛力的人之一,他編寫(xiě)了最早的高級(jí) Java 書(shū)籍,近幾年他積極支持 Ruby。

  • Bitter JavaBitter EJB 的作者 Bruce Tate 也大力支持 Ruby 并且可能從 Java 技術(shù)轉(zhuǎn)向 Ruby。他的幾本書(shū)指導(dǎo)開(kāi)發(fā)人員如何從 Java 人變成 Ruby 人。請(qǐng)閱讀 developerWorks 上他的 “Secrets of lightweight development success” 系列。

  • Martin Fowler 是軟件工程領(lǐng)域中最響亮的名字之一。他理解深?yuàn)W的概念并且能夠極其透徹地表述這些概念。幾年來(lái),他大力宣傳 Ruby 的潛力,促使大家轉(zhuǎn)向 Ruby。他常常在自己的 blog 上介紹 Ruby。

  • developerWorks 提供了許多 Ruby 文章和教程,包括 “調(diào)試 Ruby 程序技巧 101” 和 “用 Rake 自動(dòng)執(zhí)行任務(wù)”。

  • 請(qǐng)?jiān)L問(wèn) developerWorks 的 開(kāi)放源碼專區(qū),這里有豐富的 how-to 信息、工具和項(xiàng)目更新,可以幫助您利用開(kāi)放源碼技術(shù)進(jìn)行開(kāi)發(fā)并且將其用于 IBM 產(chǎn)品。


獲得產(chǎn)品和技術(shù)
  • 獲得 Ruby Development Tools,這個(gè) Eclipse 插件添加了 Ruby 支持,包括 Content Assist、調(diào)試和單元測(cè)試支持。

  • 可以從 Rubyforge.org 獲得 Rake,這是 Ruby 的構(gòu)建工具。Rake 提供一種用于執(zhí)行構(gòu)建的語(yǔ)言,提供了 Make 和 Ant 兩者的優(yōu)秀特性。它還展示了 Ruby 靈活的語(yǔ)法如何輕松地創(chuàng)建具有高度針對(duì)性的領(lǐng)域?qū)S谜Z(yǔ)言。

  • 使用 IBM 試用版軟件 改進(jìn)您的下一個(gè)開(kāi)放源碼開(kāi)發(fā)項(xiàng)目,這些軟件可以下載或者通過(guò) DVD 獲得。


討論




回頁(yè)首


關(guān)于作者

Neal Ford 是 ThoughtWorks 的應(yīng)用架構(gòu)師,這是一家 IT 專業(yè)服務(wù)公司,它網(wǎng)羅了世界各地的天才,致力于從軟件中獲得更多價(jià)值。他是許多應(yīng)用、教學(xué)資料、雜志文章、課件、視頻/DVD 演示的設(shè)計(jì)者和開(kāi)發(fā)人員,還是 Developing with Delphi: Object-Oriented Techniques、JBuilder 3 UnleashedArt of Java Web Development 等書(shū)籍的作者。他主要關(guān)注的領(lǐng)域是大規(guī)模企業(yè)應(yīng)用程序的構(gòu)建。他還是在國(guó)際上受歡迎的演講者,曾經(jīng)在世界各地的許多開(kāi)發(fā)人員會(huì)議上發(fā)言。他歡迎您通過(guò) neal.ford@gmail.com 與他聯(lián)系。



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本 一区二区 在线| 国产一区二区三中文字幕| 丰满少妇被猛烈插入在线观看| 亚洲第一区欧美日韩在线| 免费性欧美重口味黄色| 麻豆一区二区三区在线免费| 亚洲美女国产精品久久| 亚洲中文字幕日韩在线| 女人精品内射国产99| 日韩精品中文字幕在线视频| 亚洲精品av少妇在线观看| 国产精品不卡一区二区三区四区 | 亚洲国产欧美久久精品| 亚洲精品日韩欧美精品| 亚洲精品成人福利在线| 亚洲在线观看福利视频| 国产欧美日韩在线精品一二区| 亚洲男人的天堂就去爱| 加勒比日本欧美在线观看| 国产又大又黄又粗又免费| 免费在线播放不卡视频| 亚洲中文字幕剧情在线播放| 不卡免费成人日韩精品| 九九九热在线免费视频| 日韩精品一区二区毛片| 成年人免费看国产视频| 久久国产亚洲精品赲碰热| 日韩三极片在线免费播放 | 欧美熟妇喷浆一区二区| 韩国激情野战视频在线播放| 日韩成人高清免费在线| 日韩美成人免费在线视频| 九九热九九热九九热九九热| 国产午夜精品亚洲精品国产| 69久久精品亚洲一区二区| 亚洲欧美国产精品一区二区| 国产伦精品一区二区三区高清版| 亚洲中文字幕亲近伦片| 一个人的久久精彩视频| 黄片免费播放一区二区| 99一级特黄色性生活片|