Egg 社区版 2.0 正式发布,性能提升 30%,拥抱 Async

简介: ![](https://private-alipayobjects.alipay.com/alipay-rmsdeploy-image/skylark/png/d5fe40ad-97fd-4797-af8d-b0e73ab7d92c.png) --- > 原文地址:知乎专栏 https://zhuanlan.zhihu.com/p/31640541 很荣幸的宣布,Egg 于 1


原文地址:知乎专栏 https://zhuanlan.zhihu.com/p/31640541

很荣幸的宣布,Egg 于 12.3 正式发布 2.0 版本,距 3.21 发布的 Egg 1.0 版本 时隔 8 个月。

2.0 特性

  • 基于 Koa 2.x

  • 框架层优化带来 30% 左右的性能提升,不含 Node 8 带来的提升。
  • 平滑升级,保持了对 Egg 1.x 以及 generator function 的兼容。

如何升级

Egg 的理念之一是渐进式增强,故我们为开发者提供渐进升级的体验。

  1. Node.js 使用最新的 LTS 版本(>=8.9.0)。
  2. 修改 package.json 中 egg 的依赖为 ^2.0.0。
  3. 检查相关插件是否发布新版本(可选)。
  4. 重新安装依赖,跑单元测试。

搞定!几乎不需要修改任何一行代码,就已经完成了升级。

这得益于 Egg 对 1.x 的兼容,但为了更好的统一代码风格,以及更佳的性能和错误堆栈,我们建议开发者参考 升级指南 进一步升级。

未来规划

如您所知,Egg 采用的是『微内核 + 插件 + 上层框架』模式。

其中微内核经过 3 年 4 个版本,以及在阿里的大规模应用,已经打磨的非常稳定。

接下来我们的重心主要在开发者体验方面的优化,包括:

  • 更好的开发者体验,包括 TypeScript,开发者工具,IDE 工具等方面。
  • 社区化运作

    • 协助业界的前端团队,打造适合特定团队业务场景的上层框架,欢迎勾搭。
    • 分享我们在团队、协作、规范化等方面的经验。
    • 分享在 Docker,GraphQL,SSR 等方面的探索和最佳实践分享。
  • 国际化,官网和文档翻译等。

同时,我们也欢迎社区更多的参与,一起打造更完善的生态。

我们这一年

截止至今天(2017-12-03):

  • GitHub 5.6k star,555 forks,npm 月下载量 11,140 (不含阿里内网数据),官网 PV 近万。
  • 从 1.0 到 2.0,我们一共发布了 18 个版本,处理了 820 个 issue,收到来自 90 多位 contributors 的 500+ (主库 272) 个 Pull Request 。
  • 开发者体验方面的优化包括:断点调试代理单元测试+覆盖率部署工具,TypeScript 支持,VSCode 插件,文档优化等等。

社区方面:

趣味数据:

  • 官网访问量中,Mac 占 47% → 这比例挺高的,看来 Node 程序猿都很幸福。
  • 周末的访问量约为平时的 1/3 → 看来 Node 程序猿周末加班少。(滑稽
  • 官网访问来源:站内,直链,外链各 30% 多,来自搜索引擎的较少。

分享交流:

一些吐槽:

  • 我们最常遇到的问题:

    • Ajax 遇到 csrf 安全问题
    • config.keys 报错
    • 配置错误,不懂 module.exportsexports 区别
  • 我们最头痛的问题类型:

写在最后

开源,痛并快乐着。

image.png

顺便拉下票,OSChina 开源中国正在举办 2017年度最受欢迎中国开源软件评选,请为 Egg 打 Call~

目录
相关文章
|
14小时前
|
安全 开发者 Docker
总结反思 持续进步-开源即时通讯(IM)项目OpenIM 新版本release-v3.7发布
背景 过去,我们团队对开源项目的认知较浅,过分追求进度,而忽视了代码的质量和规范。这导致了一些问题,例如部署流程设计不当:流程复杂、不规范,以及Mac与Windows部署的明显缺陷。这些问题不仅给开发者带来了困扰,也增加了社区维护的难度。 针对这些挑战,我们团队进行了深刻的反思并总结出了相关问题。目前,我们正在专注于提高代码质量和规范化工作,并在完善我们的开源贡献流程,以吸引更多贡献者参与。我们相信这是关键步骤,以扩大社区的影响力并将OpenIM发展成为一流的开源项目。 为此,我们已规划推出release-v3.7版本,该版本将全面改造部署、规范和流程等方面,并且与3.6版本数据完全兼容。
6 0
|
4月前
|
消息中间件 NoSQL 中间件
【Go电商实战05】结合商业项目讲解中间件的概念和应用
把Go语言中的知识点结合商业项目,理论联系实践,更好的学习理解,高效学,少踩坑。
|
JavaScript 前端开发 测试技术
|
敏捷开发 消息中间件 开发框架
一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务
Django官方发布3.0版本,内核升级宣布支持Asgi,这一重磅消息让无数后台研发人员欢呼雀跃,弹冠相庆。大喜过望之下,小伙伴们兴奋的开箱试用,结果却让人大跌眼镜:非但说好的内部集成Websocket没有出现,就连原生的异步通信功能也只是个壳子,内部并未实现,很明显的换汤不换药,这让不少人转身投入了[FastAPI](https://v3u.cn/a_id_167)的怀抱。不过一年之后,今天8月,Django3.1版本姗姗来迟,这个新版本终于一代封神,不仅支持原生的异步视图,同时也支持异步中间件,明显整了个大活。
一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务
|
开发框架 前端开发 小程序
专注性能的多端研发框架 - ice.js 3 正式发布!
ice.js 框架在之前的版本中,主要服务于中后台 / PC 的项目研发,而随着无线端以及多端能力的拓展,ice.js 3 将成为一套面向大淘宝技术的终端应用框架。因此在 ice.js 3 的版本中除了「开发者体验」之外,还围绕「用户体验」探索了大量技术方案。 ice.js 3 地址:https://v3.ice.work/
1145 0
|
存储 资源调度 前端开发
Sentry 开发者贡献指南 - 前端(ReactJS生态)
Sentry 开发者贡献指南 - 前端(ReactJS生态)
172 0
|
消息中间件 SQL 前端开发
Sentry 开发者贡献指南 - 测试技巧
Sentry 开发者贡献指南 - 测试技巧
171 0
|
API 开发工具 Python
顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇)
顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇)
155 0
|
前端开发
「vue3组件库」如何从0到1参与大型开源项目成为贡献者🎃
「vue3组件库」如何从0到1参与大型开源项目成为贡献者🎃
240 0
「vue3组件库」如何从0到1参与大型开源项目成为贡献者🎃
|
机器学习/深度学习 并行计算 算法
阿里开源 支持10万亿模型的自研分布式训练框架EPL(Easy Parallel Library)
最近阿里云机器学习PAI平台和达摩院智能计算实验室一起发布“低碳版”巨模型M6-10T,模型参数已经从万亿跃迁到10万亿,规模远超业界此前发布的万亿级模型,成为当前全球最大的AI预训练模型。同时做到了业内极致的低碳高效,使用512 GPU在10天内即训练出具有可用水平的10万亿模型。