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~

目录
相关文章
|
关系型数据库 Java MySQL
基于AutoJs过滑块快手极速版脚本
基于AutoJs过滑块快手极速版脚本
669 0
|
小程序 前端开发 API
小程序云开发实战四:调用豆瓣API获取具体的数据
小程序云开发实战四:调用豆瓣API获取具体的数据
343 0
|
数据格式
Layui中table数据表格使用方法渲染 返回的数据不符合规范,正确的成功状态码应为:“code“: 0异常处理
Layui中table数据表格使用方法渲染 返回的数据不符合规范,正确的成功状态码应为:“code“: 0异常处理
1675 0
|
4月前
|
架构师 前端开发 程序员
低代码 VS 全栈开发,2025年了,程序员到底该如何选择?
在技术管理领域深耕十年,作者指出工具之争毫无意义,关键在于如何使用。本文深入解析低代码与全栈开发的本质、区别与融合,探讨在快速变化的技术环境中,程序员该如何选择发展方向,实现效率与深度的平衡。
|
存储 人工智能 关系型数据库
数据库的深度探索:技术演进、应用领域与未来趋势
一、引言 数据库,作为信息技术领域中的关键组件,不仅为数据的存储、检索和管理提供了强有力的支持,而且随着技术的不断发展,其功能和应用领域也在不断扩展
1086 7
|
安全 API PHP
港澳台验证码海外短信群发教程,利用阿里云国际如何实现境外短信操作
港澳台验证码海外短信群发教程,利用阿里云国际如何实现境外短信操作
|
SQL 监控 关系型数据库
MySQL如何查看每个分区的数据量
通过本文的介绍,您可以使用MySQL的 `INFORMATION_SCHEMA`查询每个分区的数据量。了解分区数据量对数据库优化和管理具有重要意义,可以帮助您优化查询性能、平衡数据负载和监控数据库健康状况。希望本文对您在MySQL分区管理和性能优化方面有所帮助。
1068 1
|
存储 机器学习/深度学习 物联网
云计算的物联网应用:智能化转型的关键
本文探讨了物联网(IoT)与云计算的结合及其在数据处理中的应用。物联网通过连接设备进行数据交换,而云计算提供资源处理和存储。核心概念包括物联网的无线通信、传感、微控制器及数据技术,以及云计算的虚拟化、分布式计算、存储和网络技术。两者协同工作,云计算助力物联网处理大量数据,实现高效分析。文章还介绍了数据预处理、分析(如统计学、机器学习、深度学习)和应用的算法,以及数据应用的实例,展示了如何在智能家居系统中运用这些方法。未来,面对大数据、安全与隐私、实时性及边缘计算的挑战,物联网与云计算将继续发展。
2156 2
|
JavaScript Java 测试技术
基于Java的音乐管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的音乐管理系统的设计与实现(源码+lw+部署文档+讲解等)
177 1