2010-04-02 107 views
1

Ruby on Rails可能是目前最受讚譽的web開發框架。這有很多原因,但是每個框架,即使是同類最好的框架都有其缺點。Ruby on Rails的缺點

我想知道在開發Ruby on Rails應用程序時遇到的最常見問題以及您經常遇到的問題。

回答

0

就像任何科技一樣,這裏有一條學習曲線。但作爲一個相對較新的框架,DHH等人已經能夠「站在巨人的肩膀上」(前輩),並且創造了一個偉大的框架。

我一直很高興選擇Rails作爲我的商業軟件的框架。

缺點?沒有像Java和Perl這樣的老式框架的庫多得多。 - 但圍繞這個問題有辦法。例如,從Rails調用這些庫或移植它們。

性能通常在缺點類別中提到,但更低廉的硬件和後期版本的Rails的改進已經考慮到了這一點。和「穩定」一樣。

3

對框架進行頻繁版本更新會使您的應用難以保持最新狀態 - 升級可能會在不明顯的地方發生。

MonkeyPatching - 對於任何需要長時間維護大型代碼庫的人來說,都會造成嚴重的問題。

性能/功耗 - 使用Ruby迭代器和ActiveRecord輕鬆實現耗費內存的數據庫查詢。

但是,任何一天

2

我不激動不已Rails的使用全局變量的一切,我會接管Java或PHP。模型類通過全局變量(ActiveRecord::Base.connection)查找數據庫連接,還有Rails類,它是記錄器,當前環境,緩存等的全局訪問點。ActionMailer使全局變量超出您的郵件程序,並且等等等等。 Rails是圍繞全局變量的使用而建立的,所以無論你做什麼,在應用程序的任何級別,都可以隨時訪問全局變量。

這使得測試變得醜陋。如果Rails建立在Java之上,它會使測試變得非常困難,但是由於它是Ruby,所以它變得很難看。測試需要排除大量的全局上下文,以便單獨運行,這很容易使測試看起來毫無意義。看到五行或十行代碼存儲不同的全局變量,接着是一行或兩行實際測試,這並不罕見。這並不是說測試的五到十行設置是一個問題,但是如果沒有閱讀正在測試的代碼,您就不會輕易看到全局狀態會產生什麼影響,以及它的重要性。這使得許多測試不必要地變得醜陋。

我覺得有點諷刺的是,Rails社區是我參與過的任何測試中最精明的測試。

話雖如此,我不會交易任何目前可用的Rails。你完成任務的速度,以及大量的插件和寶石,消除了所有繁瑣的工作,每天都讓我感動。

0

對於多線程應用程序,Ruby線程稱爲綠線程,它不是OS級線程。這不能提供真正的多線程。