Ruby on Rails即將邁入20歲,官方著手準備7.1慶生版本,現在先釋出Beta版本供開發者測試。Ruby on Rails 7.1 Beta版本加入了一系列重要更新,其包括改善Docker部署,強化身分驗證工具、擴充Active Record的非同步查詢功能,並新增MySQL轉接器(Adapter)Trilogy的支援。此外,這個版本還在Active Job和自動載入方面進行最佳化,還加入了新的JavaScript執行環境Bun

當開發者使用指令建立新應用程式時,Ruby on Rails現在會自動生成所有需要的Docker檔案,供開發者使用Kamal或是其他以Docker為基礎的工具來部署應用程式。官方提到,這些Docker檔案都經過調整,使其適用於生產環境,具備正確的快取層並通過多階段建構減少映像檔大小,而且無論開發者是否使用JavaScript建置環境,Docker檔案都會包含所需相依項目。

在現代網頁開發中,JavaScript建置環境已經變得相當重要,可用來轉換、壓縮甚至是最佳化前端程式碼,而在使用Docker時,Docker檔案需要確保容器內包含正確的工具和設定,來處理JavaScript工作流程。Ruby on Rails所生成的Docker檔案不只考慮到Rails應用程式在伺服器端的部分,同時考慮前端建置需求,Ruby on Rails 7.1這項新功能,無論開發者在Rails應用程式中是否使用JavaScript建置流程,其生成的Docker檔案都能確保應用程式在容器中順利運作。

Ruby on Rails新版本內建對MySQL轉接器Trilogy的支援。Trilogy是由GitHub開發,目標是成為mysql2的替代品,提供更好的效能、靈活性,以及嵌入的簡易性。官方提到,現在GitHub與Shopify生產環境都已經採用Trilogy,官方提到,在此新版Rails先提供Trilogy支援,而下一個主要版本,Trilogy可能就會成為預設選項。

Ruby on Rails中負責操作資料庫和定義資料庫模型的核心元件Active Record,能夠將資料庫中的資料表映射到Ruby物件中,讓開發者能夠以物件導向的方式操作資料庫。而在7.1版本中,Active Record非同步查詢獲得強化,開發者能夠在同一時間內,平行執行多個、速度較慢的查詢,特別是那些著重運算的操作,並以非同步的方式繼續處理其他請求。

同時,Ruby on Rails也支援了對複合主鍵功能。依據Shopify的實際經驗,複合主鍵能提高常見的查詢效能5到6倍,並且慢速查詢的數量減少80%。儘管複合主鍵使資料插入操作明顯變慢,但是當讀取操作遠多於寫入的大型資料表來說,這樣的效能提升非常有價值。

Ruby on Rails中的Active Job增加了一種新方法,使得佇列大量工作更有效率,開發者可以一次性將一大批工作放入佇列中,減少佇列資料儲存多次往返所產生的成本開銷。另外,新版本還增加新的配置方法,強化應用程式自動載入功能,特別是包含lib目錄的情況。

值得注意的是,Ruby on Rails從這個版本開始支援使用Bun作為JavaScript執行環境,生成新的應用程式。Bun是一款訴求快速的JavaScript執行環境與多合一工具包,才剛釋出1.0正式版,官方稱Bun可達Node.js的5倍速。

熱門新聞

Advertisement