作者:探碼科技, 原文鏈接: http://nbbskj.com/tech-blog/740
撰寫本文時的年份是 2023 年。Rails創建于2004年18月。Ruby on Rails已超過<>歲!直到今天,經過這么長時間,你會發現充滿激情的長期 Rails 開發人員,他們發誓該框架是構建和發布應用程序最高效的框架,但許多人已經理所當然地認為今天開始使用 Rails 的感覺以及大量其他已經趕上來的框架。
Rails(和Ruby)非常關心開發人員的幸福感和生產力。它優化了“哇,我今天做了很多事情”的偉大感覺。你首先構建一個Web應用程序,它可以集成到Android和iOS應用程序中(稍后會詳細介紹)。
閱讀 Rails 原則是一個很好的地方,可以讓您了解?Rails?社區渴望成為什么樣的人。盡管有這些愿望,但有時你會發現自己在 Rails 中處于非常迷失方向的地方,比如AssetsPipline。總的來說,Rails是一種非常愉快的開發人員體驗。
如果您是第一次開始使用 Rails,您需要在構建 Rails 應用程序時在瀏覽器中打開并準備好這些資源。
Rails Guides 是開始閱讀構建 Rails 應用程序的基礎知識的好地方。即使你已經超越了基礎知識,你仍然會發現自己登陸指南來了解特定的Rails庫是如何工作的。
當你的旅程經過教程時,你會發現自己參考了API文檔,以了解特定類或方法在Rails中是如何工作的。這是一個您需要隨身攜帶的參考。
就像Rails API一樣,您將從Ruby語言及其標準運行時中使用大量內容。有時很難知道Ruby中的內容與Rails中的內容,特別是因為Rails中有一個龐大的庫,它擴展了稱為Active Support的Ruby語言。
隨著OpenAI的Chat GPT-4和Google的Bard等大型語言模型變得越來越強大,它們也成為更好的工具,以幫助回答剛開始使用任何新編程語言的人的問題。GPT-4 是獲得幫助的絕佳資源,但請注意,它非常樂意給出看似合理的答案,但要么完全錯誤、令人費解,要么不是最佳實踐。
在初學者指南中可能不會說,但大多數發布 Rails 應用程序的人都在他們的堆棧中使用這些技術。
rails new
默認為 SQLITE,這是一個非常棒的數據庫,但是當需要部署到生產環境時,大多數人選擇 Postgres 作為他們的數據庫。
我開玩笑說,“它真的應該被稱為Rails on Redis”,這是真的。Redis 可以在 Rails 中用于緩存、后臺作業處理以及 WebSockets、ActionCable 和 Hotwired。
雷迪斯真的是一把瑞士軍刀。它非常適合緩存,因為將數據讀取和寫入 Redis 非常快。它還附帶發布/訂閱功能,使其適合后臺工作人員使用,并通過 WebSocket 將通知推送到瀏覽器。
Web 請求應該很快,但有時應用程序需要執行一些需要幾分鐘的操作,例如更改大型視頻文件的分辨率。在 Web 應用程序中,您最不希望看到的是讓 Web 服務器花費幾分鐘來完成請求 — 這樣做可能會使您的 Web 應用程序處于爬網狀態,因為請求會堆疊在隊列中等待服務器響應。
Rails 中的解決方案是將此請求卸載到后臺工作線程,從而釋放 Web 服務器以繼續接收來自其他客戶端的請求。
Sidekiq是最流行的后臺worker框架。使用它不會出錯,因為它在生產中經過了許多大型 Rails 應用程序的測試。
Hotwire是Rails的一部分,但如果你登陸他們的網站,你只會看到Rails作為腳注被提及。在Rails內部,你會看到這些被稱為Turbo和Stimulus。
Hotwire是由創建Rails的人創建的,目的是大幅減少需要編寫和部署到客戶端的JavaScript數量。這種構建低延遲交互式Web應用程序的方法在過去幾年中迅速普及,以應對Rails開發人員在構建JS應用程序時遇到的日益增加的復雜性和挫折感。
默認情況下,當您創建新的 Rails 應用程序時,將包含該框架。
在 Rails 應用程序的根目錄中,您將看到一個 .該文件中的條目指向由托管在 https://rubygems.org?上的 Ruby 開發人員社區維護的包。Gemfile
當你厭倦了閱讀文檔,只想坐在沙發上看Rails時,有一些值得注意的截屏視頻值得一看。
GoRails在龐大的視頻庫中涵蓋了各種各樣的Rails和Ruby主題。對于喜歡逐步解決問題的初學者來說,這真的是一個好地方。
對于那些十年前開始的人來說,這是一部經典之作,今天仍然令人驚訝地具有相關性。Pro視頻最近由作者免費提供,因為這些視頻已經過時。
當您開始向應用程序添加更多功能時,您將開始查看為 Rails 應用程序添加功能的插件,例如身份驗證、支付等。幸運的是,有一些非常好的資源可以幫助您確定哪種寶石最適合您的項目。
當我做研究,看看我需要在 Rails 中安裝什么 RubyGem 來解決問題時,我首先?https://www.ruby-toolbox.com?看看還有哪些類似的庫存在。這有助于我更明智地決定應該關閉哪個庫。
Awesome Ruby是Ruby和Rails社區在其應用程序中使用的流行RubyGem的更簡短的列表。
你不需要訂閱所有這些,但值得每周至少閱讀一次,這樣你就可以跟蹤Rails的所有新內容和變化。
包括有關Ruby&Rails的一般新聞和更新,新教程和文章的鏈接,以及有關新代碼和工具或已更新的部分。
Tweets & Toots 的摘要,來自在 Rails 和 Ruby 社區中研究有趣問題的人們。
來自 Rails 團隊的每周時事通訊,涵蓋 Rails 中的更改和新功能。這封新聞信更狹隘地關注了 Rails 框架的變化,所以如果你只訂閱這個,你會錯過很多關于 Ruby Gems、插件和有趣的社區教程的其他新聞。
如果你想要為Rails發布一個移動應用程序,那么有一個完整的堆棧。Rails背后的團隊還發布了庫,可以更輕松地將Rails應用程序與移動應用程序集成。
Rails背后的團隊提供了一個庫,使與Rails的基本集成成為可能。框架中仍有許多空白需要填補,例如身份驗證。
?