近年來網頁程式開發語言Ruby越來越受到歡迎,它可以搭配Rails框架,快速開發網頁應用程式。在眾多的整合開發工具中,RubyMine是一款針對Ruby語言的商業軟體,在國外的Ruby社群知名度相當高,它的用戶包括社群網站Twitter、雲端服務平臺Rackspace等公司。

這套開發工具可以自動識別Ruby動態語言的特徵,並提供程式碼分析、自動完成、編碼輔助、自動重構等功能,並且將Ruby程式開發過程中,經常會用到的工具和指令,以直覺的使用方式,整合到開發軟體的操作介面,可以在我們撰寫程式時,提供各種強大的輔助功能與直覺方便的操作方式,讓程式開發得到更好的效率。

RubyMine是以JetBrains公司的另一款產品IntelliJ IDEA作為基礎而開發,而該套軟體的底層是Java,因此RubyMine也具備跨平臺的特性,可在Windows、Mac OS X和Linux平臺上執行,並且繼承JetBrains開發工具一貫的風格和簡潔的操作介面。

RubyMine 5.4.3支援Rails 1.2到4.0版本,並且提供不同於傳統目錄結構的方式,將Rails專案中的模型、視圖、控制器、方法、檔案等內容,作為Rails的元件呈現在專案視窗。這種呈現方式,與傳統根據目錄和檔案來呈現專案的方式相比,可以讓使用者快速理解專案目錄下的檔案和程式碼結構。

RubyMine 5.4.3同時也支援最新的Ruby 2.0版本,並且將Ruby程式開發過程中,經常會用到的工具(如RubyGem、Bundler等擴充套件管理工具,或者是RVM、rbenv、pik等版本管理工具),整合到操作介面中,讓我們可以用更便捷的方式執行這些工具。

在RubyGem套件管理的功能上,RubyMine提供了比其他開發軟體更好瀏覽和操作的圖形介面,例如建立新專案時,我們可以直接從操作介面上選擇Ruby SDK版本、Rails版本、使用的JavaScript庫和資料庫。

可透過遠端Ruby直譯器,進行應用程式測試與除錯

從RubyMine 5.0版後,增加了遠端Ruby直譯器的設定,使用者可以在RubyMine的操作介面下,透過遠端的Ruby直譯器,來測試Rails應用程式並除錯。

開發人員常會透過虛擬化的方式,在主機上執行多個作業系統環境,並將程式碼部署到虛擬上執行的不同作業系統,以方便測試應用程式,RubyMine讓我們可以使用遠端的Ruby直譯器,來執行Ruby應用程式。

RubyMine支援兩種方式來設定遠端Ruby直譯器,較常見的方法是透過SSH登入到遠端伺服器,並使用遠端伺服器上,已安裝的Ruby直譯器,來測試Ruby應用程式並進行除錯工作。

另一種做法是透過Oracle VirtualBox虛擬化軟體和Vagrant部署工具(功能是將VM部署到不同的供應商環境,如Amazon EC2),來使用遠端的Ruby直譯器,RubyMine可以從Vagrant的設定檔讀取遠端虛擬伺服器設定,並進行Rails應用程式的測試與除錯。

以往我們使用文字編輯器開發Rails應用,當要安裝RubyGem套件時,就必須開啟終端機來執行gem install或bundle install指令。這套開發工具幫我們將這些指令,全部整合到操作介面中,我們只要輸入快速鍵,或是透過快速鍵開啟對話視窗,即可執行操作指令。

並可個人化操作介面與編輯器的色彩主題,並自定快速鍵

撰寫程式之前,我們會習慣將開發工具的介面和編輯器風格,設定成自己習慣的樣式,RubyMine貼心提供了自定色彩的功能,不僅可以變更操作介面和編輯器背景的色彩,還可自定程式碼的色彩風格,讓程式碼更容易被閱讀,並且可以直接預覽變更後的內容。

RubyMine內建自訂快速鍵的功能,並內建多款編輯器和開發工具的快速鍵組合,讓已經熟悉其他開發軟體快速鍵的使用者,即便轉換到RubyMine開發軟體後,也能延續使用原本已熟悉的快速鍵,而不影響程式開發效率。

內建強大的程式碼輔助,並針對Ruby語言提供眾多功能

撰寫程式的過程中,我們會需要一些輔助功能來簡化與加速程式撰寫,RubyMine的編輯器提供多種程式碼輔助功能,像是格式化、檔案模版、程式碼片段、自動完成、語法高亮度顯示和自動重構等功能。此外對於Rails專案中,用來進行全域設定的YAML檔案格式,也有提供語法高亮度顯示和錯誤高亮度顯示等支援。

自動完成可以針對Ruby程式語言的類別名稱、方法名稱或是其他關鍵字提供輔佐,另外它也會自動完成程式碼敘述。當我們在Mac平臺寫Ruby程式時,只要輸入def,再按下Shift+Command+Enter鍵,輔助功能就會自動補上end敘述,可確保程式結構的正確性。

針對Rails框架的特性,提供自動完成與程式碼重構功能

Rails專案中的模型、視圖、控制器和輔助方法之間,都有緊密的關聯性,RubyMine可以自動識別這些關聯性,並針對Ruby和Rails的諸多語言特性,提供強大的工具支援。

例如RubyMine能識別Rails資料庫遷移檔裡面的資料表欄位,並提供自動完成功能。例如我們在Rails模型中定義has_one、has_many這些關聯性後,RubyMine會自動識別模型之間的關聯性,並在適當的時候提供自動完成。而對於Rails模型中常用到的find_by_*方法,自動完成功能也都有支援。

當我們需要重新命名控制器中的某個方法名稱時,RubyMine的自動重構功能會檢查與該方法相關聯的檔案,並自動幫我們重新命名相關聯的檔案,或是當我們對一個模型重新命名後,與該模型相關的控制器和視圖也會同時被重新命名,可以讓我們省去大量修改的時間。

RubyMine的編輯器還會分析Rails專案中,模型、視圖、控制器、輔助方法與測試檔案它們之間的關聯性,並內建一些實用的工具,讓我們寫程式時,可以在MVC架構之間快速切換。

舉例來說,在Mac平臺上,我們只要在編輯器上按住Command鍵,並點選任何函式、類別或變數名稱,就能快速開啟該函式定義、類別定義或變數宣告的位置,並查看程式碼內容。

此外還有針對Rails特性所提供的「Extract Partial」重構功能,它可以讓我們將Rails視圖檔案中的部分程式碼內容,移動到其他的部分樣板中。

內建多種模板功能並整合Emmet,讓HTML、CSS網頁開發更加輕鬆

RubyMine的編輯器有各種模板(Template)功能可用,透過File Template,我們可以對不同的檔案類型,預先設定重複使用的程式碼內容,下次建立該類型的檔案時,我們預先設定好的內容就會自動產生。

另外也可以用Surround Template自動產生程式結構(如while …… end敘述),或是透過Live Template,針對不同的程式語言,預先設定好常會使用到的程式碼片段,之後就能在撰寫程式時使用。

RubyMine 5.4的Live Template,整合Emmet(Zen Coding)開發工具,它是一個針對HTML和CSS的網頁開發工具,預先定義許多常用的程式碼片段,包括HTML5格式和CSS3樣式語法,並支援CoffeeScript語言(是一種建構於JavaScript之上的語言,提供更簡單的語法,可編譯成JavaScript,執行於Web應用程式或伺服器端應用程式)。

例如開發HTML5網頁應用時,只要在編輯器輸入標籤縮寫(如video),然後再按住Tab鍵,程式碼輔助就會在編輯器中,自動填上<video>標籤的完整語法內容,而這些內容使用者也可以自行定義。然而程式碼輔助並沒有支援WAI-ARIA無障礙網頁應用的aria元素屬性。

支援CSS3、SASS、LESS等樣式敘述檔案,並提供調色盤功能

RubyMine的程式碼輔助,對於SASS、LESS、SCSS等樣式描述檔案,也都有支援,像是提供自定函式定義,並支援自動完成、重新命名及巢狀屬性。

此外像是在編輯CSS檔案時,只要在編輯器輸入border,並按下Tab鍵,程式碼輔助就會針對此語法,自動完成網頁瀏覽器指定的CSS3樣式,像是-webkit、-moz、-ms和-o等樣式。

在編輯CSS檔案時,顏色編輯是經常會做的事,RubyMine的CSS編輯器,會列出同一份文件中出現過的顏色,同時提供CSS顏色選取器,讓我們用滴管工具來挑選調色盤上的任何顏色。

提升JavaScript編輯能力並支援W3C新版的API規格

這款軟體的JavaScript編輯器也提供很好的編輯能力,例如撰寫JS檔案時,當我們將游標移到function開頭的「{」號,或結尾的「}」號時,編輯器就會自動將對應的括號反白顯示。

而JavaScript編輯器的程式碼輔助功能,對於一些新版的JavaScript API規格,如Geolocation、Web Storage和Touch Events,也都有支援。

同時還提供ECMAScript 5.1標準的驗證機制,可以幫我們檢查撰寫完的JavaScript是否符合標準。內建的Strict Mode功能,會自動幫我們驗證語法,並標記出語法上的錯誤(如位定義的全域變數、重複的參數/屬性名稱),讓程式碼執行在更嚴謹的環境中,避免瀏覽器執行到不安全的程式碼,或丟出例外。

使用者可以將現有的TextMate Bundle匯入到編輯器中使用

TextMate是Ruby on Rails開發人員非常熟悉的一款編輯器,它有許多程式碼片段和功能,可以透過Bundle的方式安裝成擴充套件來使用,而RubyMine讓我們可以從TextMate編輯器匯入Bundle,因此我們可以將TextMate上已經設定好的程式碼片段,直接套用到RubyMine的編輯器中,省去許多重新設定的時間。

提供圖形介面測試與除錯工具,並支援Ruby 2.0與CoffeeScript

在測試和除錯工具方面,這套軟體也提供了許多實用的工具,像是視覺化的測試和除錯工具,讓我們可以設置中斷點來進行除錯,就像以往對Ruby或Javascript程式除錯一樣容易。我們也可以使用程式碼觀察,RubyMine的除錯器會自動掃描程式碼,並偵測潛在的錯誤。

在開發Ruby on Rails網頁程式時,我們會用到一些測試框架來進行除錯,RubyMine將RSpec、Cucumber、Shoulda、MiniTest、Test::Unit和Test/Spec這些測試框架,整合到圖形操作介面中,讓我們可以更方便地執行程式碼測試工作。此外這款開發軟體的Live Template和自動完成功能,也有支援RSpec模板。

在眾多的網頁開發語言中,CoffeeScript這套Ruby社群所熟悉的網頁開發語言,已經越來越獲得開發者的青睞,RubyMine 5.4的編輯器可以識別.coffee檔案,並透過程式碼輔助提供程式撰寫支援,包括程式碼產生、自動完成、格式化、編譯成JavaScript等功能。

RubyMine的除錯工具也支援Ruby 2.0和CoffeeScript,首先必須先安裝coffee-script-redux-debugger這個Ruby Gem套件,然後我們可以在這套開發工具的Debug設定選項中,選擇要使用Firefox或Chrome瀏覽器來除錯,在瀏覽器安裝JetBrains IDE Support擴充外掛後,就能透過RubyMine的圖形介面來設置中斷點,並進行偵錯。

以圖形方式呈現UML模型,方便分析類別之間的結構關係

在軟體開發過程中,常會使用UML圖,來表達模型中的訊息,並協助專案團隊成員了解、討論和設計軟體。每個模型包含的屬性以及它們之間的關聯性

RubyMine內建Rails架構視圖,可讓開發人員以圖形的方式,透過MVC(Model-View-Controller)導航選項,瀏覽Rails專案中的Ruby類別圖、Rails模型關聯圖,或Ruby Gems套件關聯圖,了解每個模型所含的屬性,以及它們之間的關聯性。

這項特性不僅可以讓我們清楚了解Rails專案中每個模型的屬性,以及它們之間的關聯性,還可以執行自動重構。另外,透過內建的「Go To Related Files」功能,我們還可以從UML圖形快速切換到Rails模型所對應的控制器、視圖、輔助方法或測試檔案。

此外Rubymine和其他的整合開發工具一樣,也整合了像是Git、CVS、Subversion、Mercurial、Perforce等主流的版本控制系統,並整合了切割與合併工具,我們不僅可以在開發工具的單一介面中,按順序瀏覽程式碼的更動,還可以對更改列表進行管理,管理程式碼與團隊專案協作,從此變得更加方便。

自動完成支援Ruby和Rails語言特性

針對Ruby/Rails程式語言的特性,提供自動完成,支援類別名稱、方法名稱與其他關鍵字,另外還可以自動完成程式碼敘述。

支援W3C新版JavaScript API規格

編輯器內建的各種程式碼輔助功能,能夠支援W3C定義的新版JavaScript API規格,開發HTML5與JavaScript網頁應用程式變得更加方便。

除錯工具支援熱門的CoffeeScript語言

除了Ruby和JavaScript外,RubyMine的除錯器也支援非常熱門的CoffeeScript,可以使用軟體的圖形操作介面進行除錯。

透過Live Template可以自定程式碼片段

內建的Live Template功能,可讓使用者自定程式碼片段,並支援從TextMate匯入Bundle擴充套件設定,讓編輯器功能更加強大。

內建調色盤功能,選取顏色樣式更方便

編輯器也支援Sass、SCSS、LESS等樣式敘述檔案,並提供更加方便的調色盤功能,讓使用者方便選取任何顏色。

以更具邏輯的形式呈現Rails專案結構

RubyMine將模型、視圖、控制器等內容,作為Rails的元件,來呈現Rails專案目錄,提供更容易讓人一目了然的目錄結構。

以圖形化方式呈現UML模型

RubyMine以標準的類別圖,來呈現專案的UML模型,讓開發人員透過圖形化的方式,分析Ruby類別及資料表之間的關聯性。


產品資訊 ●售價:商業版199美元、個人版99美元【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】 ●原廠:JetBrains ●網址:www.jetbrains.com/ruby ●記憶體體需求:1GB以上 ●支援作業系統:Windows以上、Mac OS X 10.5以上、Linux ●支援語言:Ruby、Rails、HTML、CSS、JavaScript、CoffeeScript、Sass、SCSS、LESS等 ●其他安裝需求:Ruby 1.8.x以上或JRuby、Oracle JDK 1.6

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】


Advertisement

更多 iThome相關內容