作者 | 云谦
习惯从业务场景、用户体验、研发速度、维护成本四个维度来看框架等前端技术,大部分的技术点都能找到合适的位置,解的问题是如何快速上线和维护满足业务的好用的产品。
业务场景
这部分解从框架的角度看业务需要。
框架负责,
- 对接后后端框架
- 对接输出环节,包括支付宝容器,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 + 小程序,长远看,多套写法应该走向统一
关注「Alibaba F2E」
把握阿里巴巴前端新动向