查看原文
其他

前端技术未来三年前瞻性思考

云谦 云谦 2020-10-24

习惯从业务场景、用户体验、研发速度、维护成本四个维度来看框架等前端技术,大部分的技术点都能找到合适的位置,解的问题是如何快速上线和维护满足业务的好用的产品

业务场景

这部分解从框架的角度看业务需要。

框架负责,

  1. 对接后后端框架
  2. 对接输出环节,包括支付宝容器,pc 和 mobile 浏览器,组件研发等
  3. 对接二方服务,包括统计,鉴权等

未来三年,

  1. 更多的业务有移动办公需求,小程序会继续加量
  2. 更多复杂场景的出现,包括重型应用,应用集群等,WebAssembly,微前端,Module Federation 等技术会在此发挥作用
  3. 标准应用中 NoCode/LowCode 的占比逐渐增大,开发者逐渐习惯这种研发方式,包括云凤蝶或更垂直的 NoCode 平台,imgcook 等
  4. 需要对接的业务场景越来越多,框架层需要做取舍、收敛和适时的减法

用户体验

什么是默认好用?以及如何做到默认好用。

要有更好的用户体验,前端 + 设计师需负责,

  1. 前端尺寸要小,这样页面载入更快
  2. 合理的 Code Splitting、Bundle Splitting 和按需加载策略,这样重要内容载入更快
  3. UI 好看,交互流畅且好用
  4. 合理的缓存和预加载策略,这样页面切换更快

之前觉得 5G 来了尺寸肯定不是问题,直到我看到需要下载 60M JS 资源的页面,内网环境打开页面都要 8s+。现在的图形库、UI 库根本不把尺寸当回事。

未来三年,如果我们希望有更好的用户体验,

  1. 图形库、UI 库自己得做瘦身/按需加载/正确的 tree-shaking/设计合理的按需编译
  2. 更多框架层内置的性能优化方案
  3. 框架接管请求层,不止是发请求,基于路由,提供缓存和预加载策略
  4. 混合研发如果成为主流,需要解沙箱满的问题,参考 tech ui 首页,换 module federation 或者坐等浏览器实现标准的沙箱环境

研发速度

这部分解如何快速完成研发,并交付上线。

各方配合,不止是框架,

  1. 工具提速、框架瘦身、TS 定义等
  2. 组件封装,包含 antd/antv/tech-ui
  3. 数据准备,包含 oneapi
  4. 交付流畅性,包含 DEMO 中心,MOCK 平台,联调最佳实践等
  5. 辅助工具

未来三年,

  1. 编译速度肯定会大幅提升,路肯定不止一条;重 CPU 部分会基于 Rust/Go 实现但不是整体,整体方案的终态我更倾向 npm pre-built cdn + bundless 的组合;这不止是框架/工具等事,ui 库和工具库也许合理规划和配置,不然一个项目用 5 个图形库 + 10 个依赖 antd 等库,10000+ 的文件要编译,怎么搞也是快不起来
  2. 更多垂直领域高级别的封装,集成框架/UI/数据/数据流,快速产出中台应用,形态可能是平台,也可能是 ProCode;封装等级越高,开发越快,但定制越难,需权衡
  3. 命令行在很多场景下不够用,借助辅助工具可进一步提效形态有编辑器插件、Chrome 插件和 In-Context Editing

维护成本

产品不仅要开发,还要维护,何况框架和依赖库还在不断升级。

成本问题包括,

  1. 新人的上手成本
  2. 开发人员迭代的接手成本
  3. 技术栈升级成本

未来三年,对于框架而言,

  1. 降低技术栈升级成本。这需要框架有更好的顶层设计,更好的抽象,抹平底层技术栈,解 3-5 年后依赖的技术栈变更后迁移成本最小化的问题;功能方面权衡一方集成/二方提供/三方引入,设计上适度集成,适度组合,适度 eject
  2. 写一样的代码。持续打磨最佳实践,方案唯一化,一不是绝对的一,而是特定场景下的一;框架支持多端适配,未来是 PC + 小程序,长远看,多套写法应该走向统一


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存