Node.js Web 框架再进化 - 面向前端与未来标准

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 第 十 六 届 D 2 前 端 技 术 论 坛 Node.js Web 框架再进化 面向前端与未来标准 淘系技术部 - Node.js 架构组 - 刘子健(繁易)
2. ! 刘子健 / 繁易 / Lxxyx " 淘系技术部 - 前端技术 - Node.js 架构 - 前端技术专家 # Node.js & Serverless & Web Framework Midway.js Core Member Node.js Core Collaborator Alibaba Delegate
3. Node.js & Web 框架简述 目录 Midway - 面向前端的框架演进之路 未来 - 面向标准 & 规划
4. Node.js & Web 框架简述
5. Node.js 可用于 编写 CLI 处理数据 Restful Api 页面渲染 ……
6. Web 开发 & Web 框架 Web 框架功能 • 现代 Web 开发离不开 Web 框架 • Web 框架提供了高效开发 Web 应用的方式 Restful API 数据库 CRUD • Web 框架存在适用场景与规则约束 页面渲染 身份校验
7. Node.js Web 框架的三个阶段 起步 & 轻量 • Node.js 刚起步 • 前端工程师尝鲜 • 验证 Node.js Web 场景可行性 • 主打:轻量 & 极简
8. 起步期 • 极简 & 易学 • 易于集成 • Express(Nest / Webpack) • Koa(Egg / Midway) • 生态繁荣 & 久经考验 • 缺乏规范 & 最佳实践 • 不利于团队协作 & 大规模开发 • Express 年久失修
9. Node.js Web 框架的三个阶段 起步 & 轻量 企业 & 架构 • Node.js 刚起步 • Node.js 规模化落地 • 前端工程师尝鲜 • 专业 Node.js 工程师出现 • 验证 Node.js Web 场景可行性 • 主打 • 主打:轻量 & 极简 • 企业级框架 & 架构 • 规模化 & 团队协作
10. 企业级框架 Express Fastify • 大而全,功能完善 • 规范 & 最佳实践明确,易于团队协作 • 社区生态活跃 Egg Koa Koa Midway Express Egg • 大而全,上手成本高 • 限制多,较难拓展
11. Node.js Web 框架的三个阶段 起步 & 轻量 面向前端 企业 & 架构 • Node.js 刚起步 • Node.js 规模化落地 • Node.js 成熟 & 完善 • 前端工程师尝鲜 • 专业 Node.js 工程师出现 • 前端工程师人数跃升 • 验证 Node.js Web 场景可行性 • 主打 • 主打 • 主打:轻量 & 极简 • 企业级框架 & 架构 • 面向前端框架设计 • 规模化 & 团队协作 • 简洁 & 轻量
12. 全栈框架 • For 前端,全栈开发 • 简单易学 • 支持 Serverless 部署 • 后端功能弱 • 自定义拓展困难 • 强依赖于平台支持
13. Node.js Web 框架满意度调研(stateofjs 2020) Next.js 登顶 & Express.js 仍然备受关注
14. 总结 • Node.js Web 框架迭代与前端行业发展密切相关 • 前端应用场景多于纯 Node.js 后端场景 • 面向前端设计的全栈框架兴起,Node.js 用法回归简洁 & 轻量
15. Midway - 面向前端的框架演进之路
16. 2014 7
17. Midway @ 2018 - 从企业级起步 TypeScript 静态类型 多人协作 IoC 复杂架构 面向接口编程 Egg 统一框架 复用生态 Midway Demo
18. Ali Node.js @ 2019 集团 1600+ Node.js 应用 常年 cpu 利用率 < 10%,乃至 5% 前端维护乏力 Docker、进程,限流,日志、跨语言 服务器利用率低 传统应用的缺点限制了 Node.js 在阿里的进一步发展 DevOps 成本高 前端业务诉求: “ 后端往大后台下沉,前端往小前台发 力,提升生产力。 ” “ 前端同学希望将中台服务快速组合为各类业务接口,和端侧 同步快速交付前台,以更快的响应业务需求变化来帮助业务 试错。 ” 需要赋能前端,让云原生给前端降本增效
19. Node.js Serverless 搭建服务 Serverless 智能化 IDE 2019-2020 阿里经济体前端委员会四大技术方向
20. 挑战:用户群体割裂 前端工程师 Node.js 工程师 偶尔写接口 希望简单易上手 全职 Node.js 开发 注重复杂场景的应对能力 如何在一个框架下服务好两种用户?
21. 挑战:使用场景不同 简单场景 要求快速实现 CRUD、接口聚合 可能演进为复杂场景 企业级场景 注重可维护性 依赖注入、整洁架构 如何在一个框架下支持两种场景?
22. 挑战:前端范式变更 React Hooks Vue Composition Api Class Component 向 Function + Hooks 转变
23. 挑战:前端范式变更 同一个开发者,前后端思维不同 框架有没有可能支持函数式开发,又能与 OOP 并存?
24. 解法:渐进式设计 Midway 一体化应用 Modern Web 场景化 API Schedule Message 一体化调用 Socket 组件生态 生态 编码范式 服务生态 Task Cache Mongo Logger ORM Swagger Redis Validate Decorator 多平台支持 … 三方模板支持 Hooks CORE Midway 核心 BaseFramework Container App Hook Context hook RequestContainer 多工具链 … …
25. Hooks:函数即接口
26. Hooks:获取请求上下文 获取 URL 查询参数 自定义 Hooks
27. Hooks:面向全栈应用设计
28. Hooks:简化接口调用 1 导入函数 2 调用函数并使用返回值
29. 渐进式 - 像搭积木一样演进 项目类型 开发方式 拓展组件 触发器 IoC + 装饰器 Config HTTP 部署平台 Middleware WebSocket 纯接口项目 Server ORM 一体化项目 gRPC Swagger 函数式 Cache RabbitMQ FaaS
30. 渐进式 - 像搭积木一样演进 项目类型 开发方式 拓展组件 触发器 IoC + 装饰器 Config HTTP 部署平台 Middleware WebSocket 纯接口项目 Server ORM 一体化项目 gRPC Swagger 函数式 Cache RabbitMQ FaaS 前端一体化应用
31. 渐进式 - 像搭积木一样演进 项目类型 开发方式 拓展组件 触发器 IoC + 装饰器 Config HTTP 部署平台 Middleware WebSocket 纯接口项目 Server ORM 一体化项目 gRPC Swagger 函数式 Cache RabbitMQ FaaS 复杂的企业级应用
32. 渐进式 - 像搭积木一样演进 项目类型 开发方式 拓展组件 触发器 IoC + 装饰器 Config HTTP 部署平台 Middleware WebSocket 纯接口项目 Server ORM 一体化项目 gRPC Swagger 函数式 Cache RabbitMQ FaaS 随着时间流逝 复杂度增加的应用
33. 落地情况 2020.04 2500+
34. 总结 • 企业内仍存在简单场景与复杂场景,框架设计应考虑到此问题 • Node.js Web 框架应关注开发者体验,面向前端工程师设计 • 云 + 端的研发模式将成为未来的主流研发模式
35. 未来 - 面向标准 & 规划
36. 类型安全 MySQL 生成 Prisma Client PostgreSQL SQLite
37. 类型安全 从前端到后端再到数据库的全链路类型安全方案
38. 展望:云端融合 JS Module Blocks(Stage 2) JS Module Fragments(Stage 1)
39. 展望:云端融合 - 与前端委员会标准化小组推进 TC39 提案 - 反馈场景 & 谋求推进至 Stage 2 Github tc39/proposal-module-fragments/issues/14
40. 让 Node.js Web 开发更简单 & 有趣 Thanks

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 12:26
浙ICP备14020137号-1 $Map of visitor$