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

2020 年 11 月 21 日

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


2020 年 11 月 21 日 11:001597

评论 1 条评论

发布
用户头像
中文镜像文档站:https://redwoodjs.cn
2020 年 11 月 30 日 11:19
回复
没有更多评论了
发现更多内容

为什么你做的 Excel 表不好用?

Tony Wu

效率工具 产品设计 Excel ER图

直播技术的背后--RTMP协议

soolaugust

直播 RTMP

为什么使用Portainer,而不是Docker CLI来管理Docker环境

xcbeyond

Docker 运维 Portainer

360 Atlas生产环境使用心得

心平气和

MySQL 分库分表 Proxy Atlas

瀑布模型总结

我是程序员小贱

Newbe.Claptrap 框架如何实现在多种框架之上运行?

newbe36524

Docker 云计算 微服务 .net core ASP.NET Core

二叉树的遍历(前序、中序、后序)

申屠鹏会

golang 算法 二叉树

平时开发Git常用的小技巧

zui.zhang

git rebase

学习总结 -- Week 10

吴炳华

SpringCloud(Netflix)-技术专题-微服务入门介绍

李浩宇/Alex

从根上学习Git

书旅

git 工具 版本控制 版本管理工具

突破内存限制的高性能排序

架构师修行之路

深挖502和504

书旅

nginx 服务器 HTTP 状态码

Spring Boot Actuator微服务服务监控

xcbeyond

Java 微服务 springboot actuator 服务监控

今天给二叉树加个BGM,二叉树唱歌了!

我是程序员小贱

范型的下一步

申屠鹏会

golang 翻译

troubleshoot之:GC调优到底是什么

程序那些事

性能分析 jvm调优 GC调优

误执行 rm -fr /*,我删删删删库了,要跑路吗?

小林coding

Linux 程序人生 Shell linux命令

在龙门吊上,看到破浪而来的智能时代

脑极体

跟我一起基于 Karma 搭建一个测试环境 (中)

Jack Q

前端进阶训练营 Karma 测试框架搭建

TOGAF认证不只一个,您考的是哪个?

周金根

对待一件事,从不喜欢再到喜欢,转变需要多大

良知犹存

程序人生

webbench源码阅读

我是程序员小贱

计算机网络基础(十九)---传输层-TCP的拥塞控制

书旅

TCP 协议栈 网络层

Linux后台开发高频题目总结

我是程序员小贱

翻译:如何编写Golang代码(How to Write Go Code)

申屠鹏会

golang 翻译

TypeScript 设计模式之观察者模式

pingan8787

typescript 前端 设计模式

k8s-client-go源码剖析(一)

LanLiang

go 开源 Kubernetes 容器 源码剖析

gRPC在Spring Cloud中的应用

xcbeyond

Java gRPC SpringCloud

老张「原创小说」

瓜藤老祖

个人成长

TCP/IP学习(1):创建套接字

申屠鹏会

TCP 网络 TCP/IP

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