Ruby on Rails 在 2019 年的發展狀況預測

Ruby on Rails(官方簡稱爲Rails,亦簡稱爲 RoR),是一個使用 Ruby 語言寫的開源 Web 應用框架,嚴格按照 MVC 結構開發。它努力使自身保持簡單,來使實際的應用開發代碼更少,使用最少的配置。Rails 的設計原則包括 “不做重複的事”(Don’t Repeat Yourself)和 “慣例優於設置”(Convention Over Configuration)。Ruby 語言以自然、簡潔、快速著稱,全面支持面向對象程序設計,而 Rails 則是 Ruby 廣泛應用方式之一,在 Rails 平臺上設計出一套獨特的 MVC 開發架構,採取模型(Model)、視圖(View)、控制器(Controller)分離的開發方式,不但減少了開發中的問題,更簡化了許多繁複的動作。如此優秀的 Ruby on Rails,怎麼會有“Ruby on Rails 已死”的言論,還傳得甚囂塵上?

只要在谷歌上搜索Ruby on Rails,肯定會得到與本文標題類似的結果。事實上,這個問題可以追溯到幾年前,當時就有人開始反思,使用已經問世13年的基於 Ruby的框架,是否值得。

有些人會反駁:如果要構建需要根據用戶行爲進行調整的動態複雜網站,這個框架仍然是很好的選擇。像 Airbnb 和 Soundclod 這樣的網站使用這個框架的效果就特別好。Rails 的支持者相信這個框架的快速編程過程也有很大價值,並鼓勵公司在需要時尋求 Ruby 開發外包

另一方面,Rails 的批評者則認爲,這個框架的光輝歲月早已遠去,並且還有更好的選擇。這些框架包括借鑑了 Rails 的一些想法作爲基礎框架,如 Python 的 Django 和 Perl 的 Catalyst。

那麼,孰是孰非?嗯,這並不是非黑即白的情況。有些項目可以從 Ruby 開發者或足夠複雜的軟件中受益,以至於可以考慮外包給一家 Ruby 開發公司。但是,還有其他項目,Rails 根本無法解決這一問題。

有一件事是肯定的,Ruby on Rails 仍然是某些項目的有效選擇。讓我們繼續閱讀,一探究竟。

Rails 依然生氣勃勃

儘管有些人表示“Ruby 和 Rails 已經死了”,但事實遠非如此。我們有幾個理由這樣認爲,包括:

  • 大型網站仍在使用它: 如果 Rails 真的死了,那麼使用它的網站就應該遠離它,不是嗎?那他們爲什麼還要堅持使用不再受支持的框架呢?那是因爲 Rails 並沒有死掉。像 Shopify、Airbnb、GitHub、SoundCloud 和 Hulu 這樣的大型網站,直到今天還在使用 Ruby on Rails,而且還一直把賭注押在它的發展上。此外,有大約 2700 萬個網站使用這個框架構建,從這個角度說明,這個框架仍然是非常活躍的。

  • 它有一個活躍的社區: 僅在 GitHub 中,Rails 就有 3800 多個貢獻者(相比之下,Django 只有 1700 多個貢獻者),這些貢獻者定期幫助開發。在主要貢獻中,有新的開源庫(gem)和豐富的文檔,其中有關於如何最大限度地使用和開發這些 gem 的說明和指南。

  • Rails 仍然不斷更新: 因爲有活躍的社區和穩定的用戶基礎,很顯然,Rails 仍然會更新。事實上,Rails 6.0 剛剛於去年 4 月發佈,其中包含了 4 個主要功能,這些功能顯示了開發者對這個框架的承諾。這些功能包括:

    • Action Mailbox(行動郵箱):一種新的方法,將傳入的電子郵件路由到類似控制器的郵箱,以便在 Rails 中處理。

    • Action Text(行動文本):它將 Trix 編輯器引入 Tails 中。

    • 並行測試:使用 fork 或 threads 來並行測試。

    • Webpack:默認的 JavaScript 捆綁器。

  • 初創公司使它保持活力: 由於 Rails 是一個開源框架,初創公司將其視爲一種在項目中削減成本的好方法。它的 gem 還爲 Ruby 開發人員提供了通過更簡單的編碼來創建豐富功能的可能性。考慮到使用 Rails 編碼是非常簡單的事,Ruby開發公司在處理其應用程序時所花費的時間更少。

使用 Rails 的優點和缺點

現在,我們已經知道了 Rails 依舊非常活躍,是時候回答“爲什麼要在項目中使用 Ruby 開發服務?”的問題了,要回答這個問題,我們有必要了解Rails 的優缺點。

優點包括:

  • 快速開發過程: 如果你曾經與 Ruby 開發人員合作過,那麼你必定知道,在開發一個項目的速度方面,很難擊敗 Rails。正如我們之前所說,其直觀的編碼使得從一個階段到另一個階段的開發變得更容易,從而節省了時間和成本。有人估計,Ruby 開發公司完成一個項目的速度,要比那些使用其他棧的公司快 40%。

  • 易於實現: Rails 速度極快的另一個表現是在應用程序中實現複雜的業務邏輯。Ruby 開發人員可以非常快速地創建 API,並與前端框架(例如 React 或 Vue)完美配合,以便立即獲得應用程序。

  • 海量的庫: Rails 的另一個特點是,有非常廣泛的庫可供使用,如此一來,開發者便能輕鬆專注於應用程序的整體邏輯。許多功能的實現相當簡單,因爲 gem 充當了應用程序和外部服務之間的橋樑。

  • Rails 慣例: 使用慣例減少開發人員必須做出決定的數量,並限制重複。這樣,開發人員只需指定應用程序的非常規方面,而將典型行爲留給框架。這使得 Ruby 開發服務更容易從一個 Rails 項目轉移到另一個項目,因爲結構和編碼時間仍然非常相似。

  • 自我記錄: 通過組合一組流行且免費的 gem,可以爲項目添加自我記錄的功能。這將爲正在處理的項目創建必要的文檔,這將會把開發者從單獨處理項目的需求中解放出來。這還允許其他開發人員僅通過引用相同項目上的現有文檔就可以處理同一個項目。

至於缺點,以下是最相關的:

  • 性能不理想: Rails 並不快。事實上,Rails 並不是需要高運行速度和低服務器資源消耗的項目的首選。這主要適用於同時擁有數百萬用戶的應用程序,但這個問題仍然值得一提。

  • 擴展問題: 雖然有些人說不能,但確實可以擴展 Rails,就是需要升級服務器或者在多個服務器上分配工作。問題是,這樣做是否真的值得,因爲必須在服務器基礎架構上投入更多資金,才能獲得與其他框架和後端解決方案(如 NodeJS 或 Phoenix)相同的性能。

  • 不夠靈活: 在 Rails 中編寫代碼,既簡單又快速,但有一點需要注意:開發人員可以按照框架要求的方式編寫代碼。這對於某些應用程序可能很好,但是當處理非常規項目時,很多默認功能都無法調整,這意味着 Ruby 開發人員必須適應,或者使用其他框架。

  • 缺乏尖端技術庫: 現在,開發者生活在人工智能和機器學習時代。不幸的是,Rails 和這些技術無法和睦相處。事實上,它的社區對開發解決方案並沒有興趣,如果在一個項目中考慮使用這些技術之一,那麼最好使用 Python 甚至 Java。

應該使用 Ruby on Rails 嗎?

Rails 仍然是相關的,並且還有很多積極的東西可供選擇。但是,這個問題值得一提,有些特定類型的項目在使用 Rails 開發時可以完美工作:

  • Web App: 如果不希望同時擁有數百萬用戶,Ruby on Rails 就是一個很好的選擇。它易於使用,可以比其他框架更早地將產品推向市場,並且,還提供了一項擁有大量特性的可靠技術。

  • 電子商務: Shopify 仍然使用 Rails 是有原因的:它有大量面向電子商務商店的 gem。這意味着,如果使用這個框架的話,可以讓商店在短時間內啓動並運營起來,甚至還可以通過幫助臺、支付網關,甚至電子郵件來啓動。

  • 內容管理: Rails 庫還爲內容創建和 SEO 提供了強大功能,允許用戶在短時間內構建一個以內容爲中心的網站,提供創建和分發所需的所有選項,並提供最佳實踐。

  • 自定義數據庫解決方案: 由於 Rails 具有 ActiveRecord,因此可以輕鬆地操作數據庫而無需 SQL。這個 ORM 還與數據庫管理系統集成,提供了一種管理複雜數據庫的可靠方法。

  • 原型: 最後,Rails 非常適合創建各種應用程序的原型。由於 Rails 非常易於使用,且快如閃電,可以在短時間內得到應用程序的框架版本。因此,開發者可以生成具有基本功能的早期版本,以向團隊其他成員展示所希望的新項目開發方向。

結束語

Rails值得開發者重新考慮,該項目的性能並不是最好的,而且還存在可伸縮性問題,但有幾個好處讓 Rails 變得優秀。比如,構建原型的可能性、爲電子商務提供的功能、用它編寫代碼的易用程度以及大量可用的庫,這些都是使用 Ruby on Rails 可以獲得的。

此外,還有一個活躍的社區,社區中有大量參與者,他們會不斷突破界限,開發新的 gem,以促進框架發展。在使用 Rails 之前,開發者需要知道的唯一事情就是正在着手哪種類型的項目。

最後要考慮的一件事,我們還沒有提到:如果“Ruby on Rails 已死”言論成真,這會使得在 Rails 項目中更難以尋找到合適的人才。這就是爲什麼大多數使用這個框架的公司,都在尋求海外 Ruby 開發團隊幫助的原因。通過這些團隊,可以避免冗長的招聘過程,並且有足夠的靈活性來使用這一框架。

作者介紹:

Jaspal Singh,職業博客寫手、網頁設計師、SEO 和 WordPress 專家。居住在 Jaipur,喜歡學習新事物,目前正在嘗試視頻編輯。

原文鏈接:

Is Ruby On Rails Still Relevant In 2019?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章