首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redwood:将Ruby on Rails开发体验带到JavaScript

GitHub 联合创始人 Tom Preston-Werner 发布了RedwoodJS,一款全新的面向边缘的全栈 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)、Prisma、Babel、Webpack,还有其他即将发布的,如JestStorybook。此外,Redwood 支持JAMstack,一种基于客户端 JavaScript、可重用 API 和预构建标记的现代 Web 开发架构。Redwood 还采用了自动部署和无服务器架构。

Redwood 的架构如下:

RedwoodJS 架构图,来自 Netlify 博客

Redwood 提供了自己的内置路由解决方案,开发人员可以更新路由的路径,而不会破坏到路由的链接。

就像 Ember 一样,Redwood 附带了大量 CLI 生成器,这些生成器减少了常见操作的样板文件(例如,创建一个新项目、一个新路由或一个新组件)并遵循 Redwood 的约定。

Redwood Cells提供了声明式的方法来处理跨多个状态(加载、错误、成功)的远程数据抓取。Redwood Forms利用React Hook Form(最近获得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 肯定是有局限性的。我已经用了两年,因为这个,我们现在改用Postgraphile。Prisma 2 帮不到我们,只会让情况更糟。

另一个开发者提到

Lambda函数长度有限制,无服务器和关系型数据库的连接有问题……Redwood严重依赖目前还在测试当中的Prisma 2。

Redwood 文档提到,Redwood 仍在积极开发当中,应该谨慎使用:

Redwood正处在“可用、正确、快速”这三个阶段的“可用”阶段的后期。

Redwood 是一个基于 MIT 许可的开源项目。欢迎开发者反馈和贡献,并应遵循相应的指南

原文链接

Redwood - Bringing the Ruby on Rails Experience to JavaScript

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/lQYSGiCPNOBrfVfEtBpL
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券