Categories
程式開發

Redwood:將Ruby on Rails開發體驗帶到JavaScript


GitHub聯合創始人Tom Preston-Werner發布了紅木JS“,一款全新的面向邊緣的全棧JavaScript Web框架。Redwood集成了預先確定的後端和前端技術棧。Redwood遵循“慣例優先“( convention-over-configuration)”的原則,並努力為開發者提供類似Ruby on rails的開發體驗“。

RedwoodJS的GitHub主頁“對Redwood的描述如下:

Redwood是一個全棧式無服務器Web應用程序框架,你可以輕鬆地用它構建和部署JAMstack應用程序。想像一下,一個由CDN提供的React前端通過GraphQL與運行在世界各地AWS Lambdas上的後端通信,所有這些都可以通過git push實現——這就是Redwood提供的能力。 Redwood為你做了大量的決策,讓你能夠專注在應用程序上,而不是浪費時間去選擇和重新選擇各種技術和配置。

Redwood技術棧包括React、GraphQL(Apollo)、棱鏡“、Babel、Webpack,還有其他即將發布的,如“或故事書“。此外,Redwood支持JAMstack“,一種基於客戶端JavaScript、可重用API和預構建標記的現代Web開發架構。Redwood還採用了自動部署和無服務器架構。

Redwood的架構如下:

Redwood:將Ruby on Rails開發體驗帶到JavaScript 1

RedwoodJS架構圖,來自Netlify博客

Redwood提供了自己的內置路由解決方案“,開發人員可以更新路由的路徑“,而不會破壞到路由的鏈接。

就像Ember一樣,Redwood附帶了大量CLI生成器,這些生成器減少了常見操作的樣板文件(例如,創建一個新項目、一個新路由或一個新組件)並遵循Redwood的約定。

紅木細胞“提供了聲明式的方法來處理跨多個狀態(加載、錯誤、成功)的遠程數據抓取。紅木形式“使用反應鉤形“(最近獲得2020年GitNation React OS大獎“)來管理表單。

一位Reddit用戶對Redwood表示歡迎,並將其與Rails進行了比較:

恭喜發布新版本,感覺就像是Rails在JavaScript時代一樣,從:REST => GraphQL,Sprockets => Babel/webpack,VM => Lambda,Caching => 靜態站點,ERb => React,Active Record => Prisma ,Rspec => Jest,routes.rb => Routes.js。

另一位Reddit用戶評價了Redwood為開發者所做出的決策:

我認為一個默認的工具箱可以讓你快速啟動和運行一個項目,這樣你就可以進行POC或真正開始評估應用程序要解決的問題和它所提供的解決方案,還能獲得快速的反饋循環,這非常有價值。

這讓人想起Geertjan Wielenga在FOSDEM 2020大會上發表的關於企業軟件棧廣度的演講:

你不希望組織中的每個人都要自己去弄清楚應該使用什麼技術棧。

其他開發者對Redwood技術棧的某些部分錶示懷疑。其中一個說:

>對於高級的應用場景來說,Prisma肯定是有局限性的。我已經用了兩年,因為這個,我們現在改用後石墨“。Prisma 2幫不到我們,只會讓情況更糟。

另一個開發者提到”:

Lambda函數長度有限制,無服務器和關係型數據庫的連接有問題……Redwood嚴重依賴目前還在測試當中的Prisma 2。

Redwood文檔提到“,Redwood仍在積極開發當中,應該謹慎使用:

Redwood正處在“可用、正確、快速”這三個階段的“可用”階段的後期。

Redwood是一個基於MIT許可的開源項目。歡迎開發者反饋和貢獻,並應遵循相應的指南“。

原文鏈接:

Redwood-將Ruby on Rails體驗帶入JavaScript