初识Egg

@fengzilong 2017-12-13 03:45:15发表于 kaola-fed/blog 待归档


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