開發的最佳選擇。
相比之下,ruby on rails 框架則是新的。并沒有很多人使用 rails 開發高通信流量的站點,并且幾乎不存在什么使用 rails 多年開發項目的經驗。但它仍然是一種高生產力的數據庫支持的 web 應用程序開發的框架。最后,盡管我們對 rails 缺乏開發長期項目的經驗和并未得到廣泛部署有所顧慮,但那份緊湊的時間表驅使我們選擇了 ruby on rails。
作出這個決定之后,我們發現招募項目人才非常容易。我們還發現早期的生產力優勢非常顯著 —— 甚至比預期的還要好。我們確實遇到了一些早期的穩定性問題,因此加強了測試工作的力度。此后穩定性得到了極大的改進。
原理
每個框架設計者都使用一組假定來構造該框架的重寫原理。學習遵守該原理的約束可使您愉快地進行編程,而挑戰這些約束則會使您的編程受挫。rails 框架和 java 框架擁有很多不同的原理。
rails 是一種集成框架,需要使用高度利用 ruby 語言的動態本質。rails 開發人員強調框架的生產力特性而不是工具特性,并且常常將 web 架構看得非常簡單,在本系列的前幾篇文章中您已了解到這一點。java 設計者通常必須分塊地組合開發環境,獨立地選擇持久性、web 和集成層。他們通常嚴重地依賴工具來簡化核心任務。web 架構設計趨向于較為復雜。
完全集成
java 框架往往是解決一個小問題(比如持久性或查看組織),而 rails 則是一個集成環境。rails 開發人員的優勢在于不必解決與許多不同框架集成的問題。大多數 hibernate 開發人員陷入了過早關閉與 java web 框架之間的連接的陷阱。rails 視圖框架是從頭構建的,以便與 activerecord 集成(rails 持久性框架)。當您考察用于 web 服務、配置和插件的 rails 框架時也會發現類似的經驗。java 編程支持各種不同的框架,對于所有這些框架使用不同的集成策略。
java 開發人員的優勢在于選擇。如果您需要從頭構建一個框架,則可能要考慮使用基于 sql 的解決方案用于數據庫集成(如 ibatis 或 java 編程中基于 jdbc 的包裝框架之一)。反過來,如果要使用一種古老的模式進行編程,則可能要使用對象關系映射框架(如 hibernate)。相比之下,如果您使用 rails,則擁有一個主要選擇:activerecord。這意味著 java 框架提供了更多的選擇,有時能提供更好的集成開發項目的解決方案。但是由于我們要開發一個 green-field 項目,因此選擇算不上是一個問題。