鸽了 3 年的 Egg 3.0 带来了一个好消息!

简介: 鸽了 3 年的 Egg 3.0 带来了一个好消息!

点击预约 NodeParty 线上直播哟👇🏾


8月8日,NodeParty 线上直播,多位 Node.js 领域专家邀你一起云端相聚,快来预约直播吧!

EggJS 开源已经 7 年了,它的初心是能帮助前端架构师孵化出适合团队业务场景的上层框架,为此它提供了一套 Loader 规范以及延伸出的插件和框架能力,并支持渐进式的研发模型,从而很好的帮助开发者解决了企业框架的差异化定制与统一维护问题。



在具体实现上,其实 egg-core 这个库才是框架的框架的承载者,egg 则是一个集成了常用插件列表的可以开箱即用的应用框架。这是当时设计上的一个局限性,虽然也正因如此让 EggJS 在社区使用更广泛,但毕竟给上层框架的定制带来了一些束缚。

同时在那个时代,Typescript 还不像今天这样成为事实标准,采用 JavaScript 并拥抱 TC39 的规范才是当时的主流共识。虽然我们后续通过 Declaration Merging 的方式,很好的解决了 Loader 动态加载带来的智能提示问题。但插件的 d.ts 生态这块一直没有很好的维护。在应用层可以完全使用 TS 的情况下,使用 TS 重写 EggJS 底层代码是一个 ROI 不太高的事,毕竟谁也没想到 ESM 在未来几年的时间内居然发展的如此之慢。尽管如此,EggJS 为什么不基于 Typescript 编写,以及何时能支持更加彻底的 Typescript 编程界面而非约定优先的 Javascript 挂载风格,类似这样的讨论几乎伴随着整个 EggJS 自身的发展周期内。

2019 年 4 月的时候,EggJS 3.0 的里程碑第一次被确立下来,彼时 EggJS 团队的声音还是倾向于基于 ES Module 开发,更好的支持云原生为主要的演进方向,因为我们判断 BFF 到了一个需要 Serverless 解决运维成本的时候了,更多精力投入到了这一块探索中,对于这一个目标而言,更多的投入是在于 PaaS 和 中间件服务 的云原生化,在应用框架这一层现有的定制能力基本能满足。

之后因为种种原因,EggJS 3.0 最终没能在当年预设的十月如期发布,可能发布 3.0 Milestone 的 贯高 自己也没想到,这一鸽就到了 2022 年。

直到 2021 年我们重启了 Egg 3.0 的项目,产出了第一份 3.0 RFC(https://www.yuque.com/egg/3.0/rfc-v1),又重新吸引回小伙伴们的目光,最后经过各方的讨论,我们决定在 RFC 的基础上继续做一个能更加彻底解决 EggJS 维护过程中的痛点,同时可以满足各个小伙伴所在公司需求的全新驱动内核,更纯粹的框架的框架。



  • 更纯粹的框架的框架:提供插件复用能力及上层框架封装能力,渐进式的研发体验,初心不能忘。
  • 协议请求处理模型:不再基于 Koa,同时剥离原来的各种协议相关的内置插件,不再局限于 HTTP 场景。
  • 基于 IoC 的挂载机制,拥抱 TypeScript。
  • 基于 Manifest 的加载机制,新增构建期行为,增强企业级的扩展能力。

正如同 Egg 是框架的框架,拉丁语是英语的源头,因此我们把这个框架起了一个新的名字:Artus,它来自于拉丁语的框架。

Artus 刚刚面世,还在持续完善中,不过也是时候跟大家打个招呼了,我们将在支付宝体验科技举办的 NodeParty 2022.08.08 线上直播中分享跟它相关的故事,欢迎关注。


相关文章
|
存储 前端开发 数据库
electron项目中使用本地数据库sqlite3和sequelize框架
electron项目中使用本地数据库sqlite3和sequelize框架
|
5月前
|
弹性计算 运维 安全
毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN
本教程将介绍一种 “鱼与熊掌兼得” 的创新方案:核心VPN服务(Pritunl)部署在您本地的强大工作站上,通过轻量级的FRP内网穿透工具,借助阿里云ECS提供的稳定公网入口,安全地将其服务能力发布到互联网。 这样,远程员工只需连接到一个统一的云上地址,即可直接接入您办公室或实验室的本地网络,访问其中的设备,实现真正意义上的“远程局域网”体验。
755 1
毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN
|
1月前
|
安全 Linux API
OpenClaw(Clawdbot)保姆级教程:无影云电脑/本地部署+免费大模型API配置+Skills集成与常见问题解答
2026年,OpenClaw(曾用名Clawdbot、Moltbot)作为开源AI自动化代理框架,凭借“自然语言驱动+全场景任务执行+插件化扩展”的核心优势,成为个人与轻量团队提升效率的核心工具,被称为“24小时在岗的私人数字助理”。它无需手动编写脚本,仅需口语化指令,即可自主完成文件处理、网页操作、办公自动化、数据监控、内容创作等各类重复性任务,数据存储在本地或自有云端,隐私安全可控,完美适配零基础用户的使用需求。
903 1
|
JavaScript 安全 前端开发
Gzm Design:开源神器!用 Vue3、Vite4、TypeScript 革新海报设计,免费开源的海报设计器,主流技术打造,轻松高效
海报设计在各个领域都有着广泛的应用,无论是商业广告、活动宣传还是个人创意表达。今天要给大家介绍一款免费开源的海报设计器——Gzm Design,它基于最新的主流技术开发,为用户提供了丰富的功能,让海报设计变得轻松又高效。
721 64
|
设计模式 安全 数据库连接
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 `HAVING` 子句
【8月更文挑战第12天】
1236 1
在 MySQL 中使用 `HAVING` 子句
particles 粒子背景插件在vue3中的使用
本文介绍了如何在Vue 3项目中使用`particles.vue3`库来创建粒子背景特效。文章提供了粒子背景插件的概述、安装步骤、配置参数说明,并展示了粒子特效的实现效果。同时,提供了在main.js中进行全局配置、在Vue组件中使用粒子背景组件的示例代码,以及完整代码的下载链接。
|
监控 NoSQL MongoDB
mongodb查询100万数据如何查询快速
综上,提高MongoDB百万级数据的查询性能需要综合多项技术,并在实际应用中不断调优和实践。理解数据的特征,合理设计索引,优化查询语句,在数据访问、管理上遵循最佳的实践,这样才能有效地管理和查询大规模的数据集合。
903 1
|
存储 NoSQL 关系型数据库
何时使用MongoDB而不是MySql
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供了更好的性能。
720 1
何时使用MongoDB而不是MySql
|
监控 NoSQL MongoDB
深入MongoDB监控:全面解析命令、实用示例与最佳实践
深入MongoDB监控:全面解析命令、实用示例与最佳实践
529 0

热门文章

最新文章

下一篇
开通oss服务