原文地址:知乎专栏 https://zhuanlan.zhihu.com/p/31640541
很荣幸的宣布,Egg 于 12.3 正式发布 2.0 版本,距 3.21 发布的 Egg 1.0 版本 时隔 8 个月。
2.0 特性
-
基于 Koa 2.x
- 异步解决方案直接基于 Async Function 。
- 去除 co 兼容后堆栈信息更清晰。
- 框架层优化带来 30% 左右的性能提升,不含 Node 8 带来的提升。
- 平滑升级,保持了对 Egg 1.x 以及 generator function 的兼容。
如何升级
Egg 的理念之一是渐进式增强,故我们为开发者提供渐进升级的体验。
- Node.js 使用最新的 LTS 版本(>=8.9.0)。
- 修改 package.json 中 egg 的依赖为 ^2.0.0。
- 检查相关插件是否发布新版本(可选)。
- 重新安装依赖,跑单元测试。
搞定!几乎不需要修改任何一行代码,就已经完成了升级。
这得益于 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 插件,文档优化等等。
社区方面:
- 来自 BAT,丁香园,全民直播等多家公司的反馈和插件回馈。
- 来自 GitHub Dependents 的统计:992 Repositories, 231 Packages
- NPM 搜索结果超过 400 个。
-
上层框架:
- 来自 @sky 对 WebPack 和 Vue/React SSR 的探索。
- 如果你有好的分享,PR 传送门:awesome-egg
趣味数据:
- 官网访问量中,Mac 占 47% → 这比例挺高的,看来 Node 程序猿都很幸福。
- 周末的访问量约为平时的 1/3 → 看来 Node 程序猿周末加班少。(滑稽
- 官网访问来源:站内,直链,外链各 30% 多,来自搜索引擎的较少。
分享交流:
- Node TSC @张秋怡 在 Node Interactive North America 2017 和 東京Node学園祭2017 分享了『Node.js at Alibaba』。
- @ngot 在 Node Party 分享了『Egg.js 在阿里巴巴集团的实践运用』
- @姜天意 在 腾讯IMWebConf 分享了 『脆弱的 Node.js』
一些吐槽:
-
我们最常遇到的问题:
- Ajax 遇到
csrf
安全问题 -
config.keys
报错 - 配置错误,不懂
module.exports
和exports
区别
- Ajax 遇到
-
我们最头痛的问题类型:
- 从不看 issue 模板里面要求提供的内容,挤牙膏式的交流。
- 如何向开源项目提交无法解答的问题
- 缺乏对 Node.js 的基础知识,和基础的问题排查能力。
写在最后
开源,痛并快乐着。
顺便拉下票,OSChina 开源中国正在举办 2017年度最受欢迎中国开源软件评选,请为 Egg 打 Call~