簡介:Ruby on Rails 只是使 Ruby 非常強大的方面之一,就像 EJB 只是 Java企業平台的一部分一 樣。Andrew Glover 揭示了 Java 開發人員可以使用 Ruby 做什麼。
在開始這篇文章之前,我需 要澄清一些事情。首先,這不是一篇關於 Ruby on Rails 的文章。如果您希望瞭解 Rails,每周(甚至 每小時)都有相關的文章和 blog 出現,它們都對這個令人興奮的架構的眾多特性大加推崇;請參見 參 考資料 中的列表。其次,本文並不是想預言,Java 面對像 Ruby on Rails 這樣更好的 語言、工具和框 架會衰敗下去。所以本文並不涉及近來通常與 Ruby 最相關的主題。
別誤會 —— 我認為 Rails 是令人難以置信的!它的功能極其強大,已經明顯地改變了 Web 開發的 面貌和步調。我只想指出一點:Ruby 要比 Rails 功能豐富,尤其是從 Java 開發人員的視角來看。
Rails 的專長是 Web 網站開發;但是,我自己沒有構建過全新的 Web 網站。我所工作的大多數 Web 網站已經 使用 Struts、Tapestry 或其他技術構建起來了。在我利用 Ruby 時,基本上是將它作為一種 與 Java 平台銜接的開發實踐。所以在本文中,我將談談如果您主要是 Java 開發人員,那麼應該如何利 用 Ruby 進行開發。
感覺是如此不同
Ruby 的文法與 Java 語言的文法不同。首先,Ruby 沒有方括弧或分號,而且它使類型成為完全可選 的。有人可能會說 Ruby 的文法很簡潔,這正是它的意圖:這種語言使開發人員可以迅速編寫簡潔的代碼 。
如果用 Java 語言和 Ruby 分別定義同一個類,通過比較,就能夠看到這種簡潔性。我先給出用 Java 語言編寫的兩個類 —— Word 和 Definition(就像是詞典)。在圖 1 所示的簡單類圖中,可以看出這 兩個類有幾個關係(如果這種複雜性看起來不自然,請忍耐一下;這是有意義的!):
一個 Word 可以擁有一個同義字(Word 的執行個體)集合。
一個 Word 還擁有一個 Definition 集合。
一個 Definition 擁有一個對 Word 的彙總關聯。
圖 1. 具有單詞和定義的簡單詞典