Web 框架的架构模式探讨
WEB前端开发社区 昨天
科学作为一种经验主义的认识论,有着经验主义的巨大缺陷:它永远不能产生绝对正确的真理。这是归纳法的本质决定的。而且值得注意的是,归纳不具有唯一性。
世界上所有的青蛙都戴眼镜 世界上所有戴眼镜的都是青蛙

模式是一套立足于特定背景,基于共性总结出的方案,它绝不是真理。
Middleware 中间件模式

记录开始时间 需要验证用户的身份 authentication。 解析cookie 并加载body 根据路由返回不同的业务处理结果 没有命中路由则返回404页面 记录日志 记录总共花费时间 处理异常并显示页面(开发环境)
中心化控制流 解耦处理模块(重用性) 声明式、可配置的服务(配置和代码无关)
public class DebuggingFilter implements Processor { private Processor target; public DebuggingFilter(Processor myTarget) { target = myTarget; } public void execute(ServletRequest req, ServletResponse res) throws IOException, ServletException { // preprocess target.execute(req, res); // post-process }}
Express 中间件模式
var express = require('express');var app = express();


/* 文件 bird.js */ var express = require('express') var router = express.Router() router.get('/', function (req, res) { res.send('Birds home page') }) module.exports = router /* 文件 app.js */ var birds = require('./birds') // ... app.use('/birds', birds)
Koa 异步中间件模型
MVC 模式
许多页面里面的视图是一致的,但是背后的数据模型不一致。比如:网站上几乎没有一个视图或者组件是独一无二的,表格,下拉框等。 许多页面里面的数据模型是一样的,但是展现的视图不一致。比如:同时支持PC和移动端,国际化本地化。

DI 依赖注入模式
不需要修改业务逻辑代码实现替换 不需要关注服务的创建和生命周期


最后
不喜欢不看的原因确定内容质量低不看此公众号
赞 (0)
