【快速应用开发】看看RedwoodJS

自我介绍

  • 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【架构师酒馆】和【开发者开聊】,有更多的内容分享,谢谢大家收藏。
  • 企业架构师需要比较广泛的知识面,了解一个企业的整体的业务,应用,技术,数据,治理和合规。之前4年主要负责企业整体的技术规划,标准的建立和项目治理。最近一年主要负责数据,涉及到数据平台,数据战略,数据分析,数据建模,数据治理,还涉及到数据主权,隐私保护和数据经济。 因为需要,比如数据资源入财务报表,另外数据如何估值和货币化需要财务和金融方面的知识,最近在学习财务,金融和法律。打算先备考CPA,然后CFA,如果可能也想学习法律,备战律考。
  • 欢迎爱学习的同学朋友关注,也欢迎大家交流。微信小号【ca_cea】

将整个堆栈带到JAMstack

几天前,我在浏览Hacker News时,看到了一篇有趣的帖子,标题是“Redwood:一个用于JAMstack的集成、全栈JavaScript web框架”。评论中有一些有趣而生动的讨论——我建议你去看看。

我最近完成了RedwoodJS教程,其中涉及构建一个简单的博客应用程序。在这篇文章中,我将分享一些关于我与红木公司合作的初步想法。

概述

让我们先来看看自述中对红木的官方描述(增加了重点):

“Redwood是一个固执己见、全栈、无服务器的web应用程序框架,它将允许您轻松构建和部署JAMstack应用程序。想象一下,一个由CDN静态交付的React前端,它通过GraphQL与您在世界各地的AWS Lambdas上运行的后端进行通信,所有这些都只需一个git推送即可部署——这就是Redwood。

通过为您做出大量决策,Redwood可以让您着手研究应用程序的特殊之处,而不是浪费时间选择和重新选择各种技术和配置。此外,由于Redwood是一个合适的框架,您可以在一段时间内以最小的工作量持续进行性能和功能升级。”

如果你熟悉React,你会很快学会红木。在完成红木教程之前,我没有深入使用GraphQL、Prisma或AWS Lambda。然而,通过一点外部阅读,我能够在学习红木教程的同时掌握这些技术的基本原理。本教程还很好地介绍了通过Netlify进行部署。

Redwood主要建立在React开发流程之上。我已经和React合作了一段时间,我发现这个库最困难的一点是它只是一个库,而不是一个完整的web框架。和许多开发人员一样,Rails是我学习的第一个框架,(和许多其他人一样)我爱上了它的简单性和强大的组织原则。

当我开始学习React并开始创建一个新项目时,我经常被所需的配置选项和附加技术(Webpack、Babel、React Router等)淹没。

红木如何解决这一痛点?

红木项目组织与工具

Redwood提供了一个连贯的目录结构——所有文件和资产的集合位置——并为您做出了许多关于底层技术和工具的决策。

目录结构

这是Redwood的高级文件夹和文件结构:

如果你坚持使用Redwood的组织,一切都会正常工作——就像Rails一样,你可以说!严格的组织格式也为开发人员协作带来了显著的好处。Redwood的作者对这种“标准中的力量”提出了很好的观点:

Redwood相信标准有力量,并为您决定使用哪些技术,如何将代码组织到文件中,以及如何命名。有了对Redwood惯例的共同理解,开发人员应该能够进入任何Redwood应用程序并快速跟上进度。

在我看来,React和更广泛的JS web开发社区迫切需要这种Rails风格、约定而非配置的方法。组织React项目的方法太多了,这使得开发人员很难深入研究新的代码库。

相关技术和工具

Redwood让React开发人员的生活更轻松的第二种方式是选择相关的技术和工具。例如,看看GraphQL客户端库的众多可用选项,它们只是典型GraphQL堆栈的一部分:

这种多样性和必要的决策在现代JavaScript生态系统中很常见——这让我抓狂!

Rails几乎在任何地方都是固执己见的,而React是一个相对较小的库,它为开发人员在如何组合项目方面提供了很大的自由和灵活性。作为直接的比较,Rails和React是苹果和桔子。然而,我通常更愿意放弃一些可定制性,转而使用一套我知道能很好地配合使用的坚实技术。

对于上面的GraphQL客户端示例,Redwood为您做出了选择,并使用Apollo客户端。更好的是,您可以非常广泛地使用Redwood,而无需非常熟悉Apollo客户端本身的设置和实现。实际上,Redwood使使用GraphQL变得更容易、更容易访问。

路由

我喜欢使用Redwood的另一件事是它的路由解决方案。在我最近的几个项目中,我发现使用React Router有点痛苦。Redwood推出了自己的it路由解决方案。我发现Redwood的路由比React Router更容易实现。

使用Redwood Router,无需将routerProps传递到组件,也无需管理复杂的历史记录和匹配对象。最后,Redwood Router利用了命名路由功能,使开发人员能够在不破坏任何链接的情况下更新路由的路径。这是一个很好的功能,有助于代码库不那么脆弱,更经得起未来考验。

其他好处

使用Redwood的两个额外好处是它强大的CLI生成器和monorepo方法,Rails开发人员应该都熟悉这两种方法。Redwood的生成器可以快速设置基本的CRUD应用程序。

Redwood提供的另一个简化程序是能够在GitHub monoreo中轻松地使用前端和后端构建项目。在能够构建单回购Rails应用程序之后,我从不喜欢管理React前端回购和Rails(或类似的)API后端回购所带来的额外复杂性。

总结

我发现红木教程简单易懂,甚至很有趣。该框架的生成器和配置默认值使构建全栈应用程序变得快速而简单,并且为打字错误和其他常见的开发错误留出了更少的空间。

红木还有许多其他有趣的方面,我期待着很快探索它们。我迫不及待地想看看Redwood是如何发展的,并希望自己能为这个项目做出贡献(悬而未决的问题)。

概括一下,Redwood还处于早期阶段,还没有准备好生产,但我想我会喜欢使用这个框架的!

文章链接:【快速应用开发】看看RedwoodJS | 程序员云开发,云时代的程序员.

欢迎收藏  【全球IT瞭望】,【架构师酒馆】和【开发者开聊】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/237547.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CommonJs模块化实现原理ES Module模块化原理

CommonJs模块化实现原理 首先看一个案例 初始化项目 npm init npm i webpack -D目录结构如下: webpack.config.js const path require("path"); module.exports {mode: "development",entry: "./src/index.js",output: {path: p…

VBA信息获取与处理:在EXCEL中随机函数的利用

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

助力工业生产质检,基于轻量级yolov5-seg开发构建工业场景下滚珠丝杠传动表面缺陷分割检测系统

AI赋能工业生产是一个强有力的方式,在我们之前的系列博文中也有很多相应的开发实践,感兴趣的胡都可以自行移步阅读,本文的核心思想就是想要基于轻量级的实例分割模型来开发构建工业场景下的滚珠丝杠传动表面缺陷分割检测系统,首先…

Openwrt源码下载出现“The remote end hung up unexpected”

最近项目原因需要下载openwrt21.02版本源码,花费了很多时间,找到正确方法后,发现可以节省很多时间,记录下过程,方便自己,可能方便他人。 一.问题阐述 openwrt21.02下载链接如下: git clone -…

Springboot入门篇

一、概述 Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者Rod Johnson 。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。 1.1对比 对比一下 Spring 程序和 SpringBoot 程序。如下图 坐标 Spring 程序中的…

【华为数据之道学习笔记】3-11元数据管理

1. 产生元数据 (1)明确业务元数据、技术元数据和操作元数据之间的关系,定义华为公司元数据模型。 (2)针对找数据及获取数据难的痛点,明确业务元数据、技术元数据、操作元数据的设计原则。 1)业务…

Pytorch-LSTM轴承故障一维信号分类(一)

目录 前言 1 数据集制作与加载 1.1 导入数据 第一步,导入十分类数据 第二步,读取MAT文件驱动端数据 第三步,制作数据集 第四步,制作训练集和标签 1.2 数据加载,训练数据、测试数据分组,数据分batch…

C++之STL算法(1)

STL容器算法主要由、、组成;   algorithm主要有遍历、比较、交换、查找、拷贝、修改等; 1.遍历容器for_each for_each()函数用于完成容器遍历,函数参数如下: for_each(_InIt _First, _InIt _Last, _Fn _Func) 形参&#xff1a…

mybatis多表映射-延迟加载,延迟加载的前提条件是:分步查询

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

基于 librosa和soundfile对音频进行重采样 (VITS 必备)

基于 librosa和soundfile对音频进行重采样 一、前言 在玩bert-vits2的时候有对音频进行重采样的需求,故写了一下批量对音频进行重采样的脚本。 优化点: 根据机器自适应线程数为最多,保证充分利用机器资源,提高速度>30%。支持…

UE引擎 LandscapeGrass 实现机制分析(UE5.2)

前言 随着电脑和手机硬件性能越来越高,游戏越来越追求大世界,而大世界非常核心的一环是植被,目前UE5引擎提供给植被生成的主流两种方式为 手刷植被和LandscapeGrass(WeightMap程序化植被)。当然UE5.3推出新一代PCGFramework 节点程序化生成框…

Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度

一 示例 二 代码 <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent&qu…

点评项目——秒杀优化

2023.12.11 上一张的秒杀券下单还可以进行优化&#xff0c;先来回顾一下下单流程&#xff1a; 可以看出流程设计多次查询和操作数据库的操作&#xff0c;并且执行顺序是一个线程串行执行&#xff0c;执行性能是比较低的。 优化方案&#xff1a;我们将判断秒杀库存和校验一人一单…

蓝桥杯周赛 第 1 场 强者挑战赛 6. 小球碰撞【算法赛】(思维题/最长上升子序列LIS)

题目 https://www.lanqiao.cn/problems/9494/learning/?contest_id153 思路来源 Aging代码 题解 二分时间t&#xff0c;第i个小球对应一个起点pi、终点pit*vi的区间&#xff0c;问题转化为&#xff0c; 选最多的区间&#xff0c;使得不存在区间包含&#xff08;即li<l…

第二百零一回 介绍一个三方包open_settings

文章目录 1. 概念介绍2 使用方法3 代码与效果3.1 示例代码3.2 运行效果 4. 经验分享 我们在上一章回中介绍了Form Widget相关的内容&#xff0c;本章回中将介绍Form系列组件的验证与提交功能.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里说的的验…

【电路笔记】-电位器

电位器 文章目录 电位器1、概述2、电位器类型2.1 旋转电位器2.2 滑块电位器2.3 预设和微调电位器2.4 变阻器 3、电位器示例14、电位器作为分压器5、电位器示例26、变阻器6、滑块变阻器7、线性或对数电位器8、总结 当连接的轴物理旋转时&#xff0c;电位计和变阻器的电阻值会发生…

23种设计模式之装饰者模式(被装饰者,接口层,装饰抽象层,具体装饰者)

23种设计模式之装饰者模式 文章目录 23种设计模式之装饰者模式设计思想装饰者模式的优点装饰者模式的缺点装饰者模式的优化方法UML 解析预设场景 代码释义总结 设计思想 原文:装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0…

【EMNLP 2023】面向垂直领域的知识预训练语言模型

近日&#xff0c;阿里云人工智能平台PAI与华东师范大学数据科学与工程学院合作在自然语言处理顶级会议EMNLP2023上发表基于双曲空间和对比学习的垂直领域预训练语言模型。通过比较垂直领域和开放领域知识图谱数据结构的不同特性&#xff0c;发现在垂直领域的图谱结构具有全局稀…

做数据分析为何要学统计学(3)——何为置信区间?它有什么作用?

置信区间是统计学中的一个重要工具&#xff0c;用以使用样本参数()来估计总体均值在某置信水平下的范围。通俗一点讲&#xff0c;如果置信度为95%&#xff08;等价于显著水平a0.05&#xff09;&#xff0c;置信区间为[a,b]&#xff0c;这就意味着总体均值落入该区间的概率为95%…

虹科Pico汽车示波器 | 汽车免拆检修 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车&#xff0c;搭载LTG发动机&#xff0c;累计行驶里程约为10.7万km。车主反映&#xff0c;车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上提示“前照灯水平调节…