大家好,我是若川。今天推荐云谦大佬的一篇好文章,值得收藏。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列
习惯从业务场景、用户体验、研发速度、维护成本四个维度来看框架等前端技术,大部分的技术点都能找到合适的位置,解的问题是如何快速上线和维护满足业务的好用的产品。
业务场景
这部分解从框架的角度看业务需要。
框架负责,
对接后后端框架
对接输出环节,包括支付宝容器,pc 和 mobile 浏览器,组件研发等
对接二方服务,包括统计,鉴权等
未来三年,
更多的业务有移动办公需求,小程序会继续加量
更多复杂场景的出现,包括重型应用,应用集群等,WebAssembly,微前端,Module Federation 等技术会在此发挥作用
标准应用中 NoCode/LowCode 的占比逐渐增大,开发者逐渐习惯这种研发方式,包括云凤蝶或更垂直的 NoCode 平台,imgcook 等
需要对接的业务场景越来越多,框架层需要做取舍、收敛和适时的减法
用户体验
什么是默认好用?以及如何做到默认好用。
要有更好的用户体验,前端 + 设计师需负责,
前端尺寸要小,这样页面载入更快
合理的 Code Splitting、Bundle Splitting 和按需加载策略,这样重要内容载入更快
UI 好看,交互流畅且好用
合理的缓存和预加载策略,这样页面切换更快
之前觉得 5G 来了尺寸肯定不是问题,直到我看到需要下载 60M JS 资源的页面,内网环境打开页面都要 8s+。现在的图形库、UI 库根本不把尺寸当回事。
未来三年,如果我们希望有更好的用户体验,
图形库、UI 库自己得做瘦身/按需加载/正确的 tree-shaking/设计合理的按需编译
更多框架层内置的性能优化方案
框架接管请求层,不止是发请求,基于路由,提供缓存和预加载策略
混合研发如果成为主流,需要解沙箱满的问题,参考 tech ui 首页,换 module federation 或者坐等浏览器实现标准的沙箱环境
研发速度
这部分解如何快速完成研发,并交付上线。
各方配合,不止是框架,
工具提速、框架瘦身、TS 定义等
组件封装,包含 antd/antv/tech-ui
数据准备,包含 oneapi
交付流畅性,包含 DEMO 中心,MOCK 平台,联调最佳实践等
辅助工具
未来三年,
编译速度肯定会大幅提升,路肯定不止一条;重 CPU 部分会基于 Rust/Go 实现但不是整体,整体方案的终态我更倾向 npm pre-built cdn + bundless 的组合;这不止是框架/工具等事,ui 库和工具库也许合理规划和配置,不然一个项目用 5 个图形库 + 10 个依赖 antd 等库,10000+ 的文件要编译,怎么搞也是快不起来
更多垂直领域高级别的封装,集成框架/UI/数据/数据流,快速产出中台应用,形态可能是平台,也可能是 ProCode;封装等级越高,开发越快,但定制越难,需权衡
命令行在很多场景下不够用,借助辅助工具可进一步提效;形态有编辑器插件、Chrome 插件和 In-Context Editing
维护成本
产品不仅要开发,还要维护,何况框架和依赖库还在不断升级。
成本问题包括,
新人的上手成本
开发人员迭代的接手成本
技术栈升级成本
未来三年,对于框架而言,
降低技术栈升级成本。这需要框架有更好的顶层设计,更好的抽象,抹平底层技术栈,解 3-5 年后依赖的技术栈变更后迁移成本最小化的问题;功能方面权衡一方集成/二方提供/三方引入,设计上适度集成,适度组合,适度 eject
写一样的代码。持续打磨最佳实践,方案唯一化,一不是绝对的一,而是特定场景下的一;框架支持多端适配,未来是 PC + 小程序,长远看,多套写法应该走向统一
最近组建了一个江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你进群。
················· 若川出品 ·················
今日话题
略。欢迎在下方留言~ 欢迎分享、收藏、点赞、在看我的公众号文章~
一个愿景是帮助5年内前端人走向前列的公众号
可加我个人微信 ruochuan12,长期交流学习
推荐阅读
我在阿里招前端,我该怎么帮你?(现在还能加我进模拟面试群)
若川知乎问答:2年前端经验,做的项目没什么技术含量,怎么办?
点击上方卡片关注我、加个星标,或者查看源码等系列文章。
学习源码整体架构系列、年度总结、JS基础系列