Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

初识Egg #161

Open
fengzilong opened this issue Dec 13, 2017 · 2 comments
Open

初识Egg #161

fengzilong opened this issue Dec 13, 2017 · 2 comments

Comments

@fengzilong
Copy link
Member

fengzilong commented Dec 13, 2017


title:  初识Egg
date: 2017-12-13

简介

Egg:为企业级 node 框架和应用而生

Egg 推崇约定大于配置,可以认为它是”框架的框架”,我们可以基于 Egg 开发出一套适应自身业务场景的上层框架,而这一切都得益于 Egg 高度灵活的插件机制,以及渐进式开发的模式

渐进式开发

渐进式开发的过程也就是框架演进的过程

也就是说,如果你想自己定制一个适应于自身业务的 Egg 上层框架,一开始可能是无框架的,每个 Egg 工程中各自的插件都是定制、差异化的体现,当最终证明某个插件是符合当前业务的最佳实践时,才向下沉淀为框架的一部分

以封装上层框架的形式沉淀出一套适应于业务的技术方案

插件和框架

Egg 的插件加载支持两种模式

  • path 模式
  • package 模式

简单来说,path 即加载本地插件,package 即加载 npm 包形式的插件,这可能会是一个逐渐转换的过程

演进大致分为4个阶段(以插件为例)

阶段1:糅合在工程的某个目录中
阶段2:提取到工程的插件目录
阶段3:提取为独立的 npm 包形式的插件
阶段4:沉淀为框架的一部分

这个过程也保证了一些优秀的功能、通用的配置或技术选型以框架的形式跨工程复用,保证工程间的一致性,改善每个工程各自一套方案,或者方案间存在细微差异的状况,我们只要保证框架的版本统一就能保证工程间的一致性

附带一提,Egg 的框架定制能力也很强大,支持多级继承,比如

Egg 框架 -> 企业级框架(网易) -> 部门级框架(考拉)

每一级都可以根据自身的业务进行二次定制

小结

egg

by fengzilong

@fengzilong
Copy link
Member Author

@kaola-blog-bot hallo?

@ImHype
Copy link
Member

ImHype commented Dec 13, 2017

@kaola-blog-bot halo?

kaola-blog-bot added a commit that referenced this issue Dec 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants