We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
重要,但是大多公司封装的脚手架基本也都有相似的约定。相比而言 BFF(backend for frontend) 更具有特色
BFF 主要解决的矛盾:服务层面向通用接口编程 API 相对稳定,但是 client 端更偏向于体验, API 经常变化。
因为 BFF 的概念,egg 引入了 controller / service 的概念。
Service 是在复杂业务场景下用于做业务逻辑封装的一个抽象层,提供这个抽象有以下几个好处:
我前司的脚手架也有 controller / service,但是因为以下理由:
controller
service
BFF
最终我们在 router 中直接把接口 proxy 到后端,实现了效率的大大提升。 说不出孰优孰略,只能说基于场景吧。
多个中间件的配置可能出现冲突
通过插件实现脚手架核心功能:进程管理、日志、安全、跨语言RPC、故障排除 AliNode
egg.js 把 app 启动/ 中间件加载 隐藏,egg-bin 把 webpack 编译、babel 编译等细节隐藏。让用户关注点集中在插件、配置、与业务代码。 egg 团队觉得这样还不够,他们引入了框架的概念,建议各事业部以egg.js为底层框架。把大量配置与插件都集成到框架中,便于统⼀团队的开发模式,⼀致的开发体验,⼀次性学习成本。 代码如下:
app 启动
中间件加载
egg-bin
webpack 编译
babel 编译
https://github.com/eggjs/egg-core/blob/94b221b4d8/test/fixtures/egg/index.js
Egg & Node.js 从小工坊走向企业级开发
The text was updated successfully, but these errors were encountered:
No branches or pull requests
eggjs
特色
约定优于配置
重要,但是大多公司封装的脚手架基本也都有相似的约定。相比而言 BFF(backend for frontend) 更具有特色
BFF
BFF 主要解决的矛盾:服务层面向通用接口编程 API 相对稳定,但是 client 端更偏向于体验, API 经常变化。
controller 与service
因为 BFF 的概念,egg 引入了 controller / service 的概念。
Service 是在复杂业务场景下用于做业务逻辑封装的一个抽象层,提供这个抽象有以下几个好处:
我前司的脚手架也有
controller
/service
,但是因为以下理由:BFF
的理念,后端面向前端开发最终我们在 router 中直接把接口 proxy 到后端,实现了效率的大大提升。
说不出孰优孰略,只能说基于场景吧。
loader 机制
多个中间件的配置可能出现冲突
插件机制
通过插件实现脚手架核心功能:进程管理、日志、安全、跨语言RPC、故障排除 AliNode
框架定制
egg.js 把
app 启动
/中间件加载
隐藏,egg-bin
把webpack 编译
、babel 编译
等细节隐藏。让用户关注点集中在插件、配置、与业务代码。egg 团队觉得这样还不够,他们引入了框架的概念,建议各事业部以egg.js为底层框架。把大量配置与插件都集成到框架中,便于统⼀团队的开发模式,⼀致的开发体验,⼀次性学习成本。
代码如下:
整体架构
关键代码分析
loader
https://github.com/eggjs/egg-core/blob/94b221b4d8/test/fixtures/egg/index.js
插件体系
资料
Egg & Node.js 从小工坊走向企业级开发
The text was updated successfully, but these errors were encountered: