美文网首页
egg.js设计思路

egg.js设计思路

作者: 黑曼巴yk | 来源:发表于2019-11-16 10:57 被阅读0次

理想的企业级Web开发模型

  1. 错误处理(优雅的退出)
  2. 多进程管理(egg-cluster)
  3. 编程模型的约束(egg-loader)
  4. 安全(egg-security)
  5. 丰富的扩展点(plugin)
    ....

编程模型规范

├── package.json
├── app.js (可选)
├── agent.js (可选)
├── app
|   ├── router.js(路由)
│   ├── controller(控制器)
│   |   └── home.js
│   ├── service (业务逻辑)
│   |   └── user.js
│   ├── public (静态资源)
│   |   └── reset.css
│   ├── view (模板)
│   |   └── home.tpl
├── config(配置)
|   ├── plugin.js
|   ├── config.default.js
│   ├── config.prod.js
└── test(单元测试)
    ├── middleware
    |   └── response_time.test.js
    └── controller
        └── home.test.js

约定优于配置,通过loader进行挂载

插件机制

如果仅仅是提供一套规范,那么其实没有太多技术含量,也很容易做到。
koa的middleware是处理请求相关的,但是不太适合用于承载扩展的职责。还有些和请求无关的。比如:日志切割,定时任务等。不适合用middleware来承载。
插件可以作为框架 的渐进式的演变。

进程管理

              +--------+          +-------+
                | Master |<-------->| Agent |
                +--------+          +-------+
                ^   ^    ^
               /    |     \
             /      |       \
           /        |         \
         v          v          v
+----------+   +----------+   +----------+
| Worker 1 |   | Worker 2 |   | Worker 3 |
+----------+   +----------+   +----------+

为什么不使用PM2等进程管理工具? 还多了一个agent的进程

  • agent进程只有一个(worker进程有多个),负责脏活累活。
  • 不对外进行服务,专门处理公共事务
  • 如: 定时日志切割,公共资源访问,后端长连接等

渐进式的开发思路

应用内部的业务逻辑 ->沉淀应用内部插件-> 独立出插件系统->插件集规范->沉淀到框架
希望做到

  • 对业务开发者提供强约束,提高研发效率。(目录规范)
  • 对架构团队提供灵活的定制能力。(插件能力)
    大概来看一张全景图:


    image.png

相关文章

  • egg.js设计思路

    理想的企业级Web开发模型 错误处理(优雅的退出) 多进程管理(egg-cluster) 编程模型的约束(egg-...

  • egg.js 入门视频教程

    egg.js视频教程整理如下: 01 Egg.js的介绍、egg.js环境搭建、创建 运行egg项目(14分12秒...

  • 智能客服设计

    Chat-bot 设计思路 在下面介绍的设计思路过滤了一些细节。 阿里小蜜设计思路 腾讯客服设计思路 智能客服机器...

  • egg-mongoose 增删改查

    egg 基本框架的搭建 egg.js官网 一、egg.js 添加 egg-mongoose 插件 1. 在plug...

  • Egg 的基本知识点

    1、Egg.js 是什么? Egg.js 是《阿里旗下产品》基于 Node.js 和 Koa 是一个 Nodejs...

  • 基于 Egg.js 构建 OAuth 2.0 服务器

    技术栈:Egg.js、MongoDB、EJS Egg.js 作为后台服务端框架; MongoDB 作为后台服务器的...

  • Egg框架应用Sequelize操作MySQL小结

    Egg.js,是阿里开源的企业级 Node.js 框架。相比Express、Koa,Egg.js更为轻量,是Koa...

  • 设计思路

    确定页面类型 导航型 侧重路径引导和流量分发,有较强的运营性质。纯粹入口型,不同强弱使用不同的核心内容做做入口,引...

  • uni-app写一个阅读类app

    这个程序主要是学习uni-app和egg.js,介绍:前端开发使用uni-app,后端使用egg.js,数据库使用...

  • 【原创】快速搭建egg.js

    快速初始化 安装egg.js脚手架 初始化egg.js应用 安装应用依赖 启动项目 在localhost:7001...

网友评论

      本文标题:egg.js设计思路

      本文链接:https://www.haomeiwen.com/subject/jineictx.html