开发越来越快,生产越来越慢

开发越来越快生产越来越慢

一个有意思的现象:过去五年,前端构建工具的速度提升了10倍以上,但前端应用在生产环境的表现,并没有同步提升。

Webpack 时代,我们抱怨构建慢。一个中型项目动辄五六分钟的打包时间,改了行代码要等半天。Vite 出来之后,这个痛点解决了——开发启动几乎是瞬间的,热更新也感受不到延迟。Turbopack 更激进,号称比 Webpack 快700倍。

但用户感受到的,不是你的构建速度,而是页面加载速度。

构建工具优化的是开发体验,生产环境的性能瓶颈在另一个维度。

我在金融业务的前端团队工作,我们的理财平台页面不少,交互逻辑也复杂。说实话,Webpack 的构建速度从来不是真正的瓶颈——打包慢就慢呗,反正有 CI 跑。真正让人头疼的是运行时性能:首屏加载慢,交互响应卡顿,复杂页面的水合时间太长。

这几年工具链换到 Vite,开发体验确实好了很多。但生产环境的问题一点没少。原因很简单:Vite 的开发模式靠浏览器原生 ESM,不需要打包,所以快。但生产环境你不可能把几百个模块直接扔给浏览器——还是要打包,还是要处理代码分割和树摇。

开发环境的"快",给用户感知不到。

更深层的问题是 Hydration 成本。现代 React 应用送到浏览器后,不是直接可用的——框架需要重新执行一遍 JavaScript,建立事件绑定,恢复组件状态。这个过程叫 Hydration,应用越大,代价越高。

我见过一些场景,一个大型 SPA 的 Hydration 时间在 3G 网络下超过8秒。用户看到页面了,但点什么都没反应。这种体验,构建工具再快也救不了。

React 团队显然意识到了这个问题。Server Components 和 Selective Hydration 都是解决方案。前者让某些组件完全不需要 Hydration,后者把 Hydration 分块进行。方向是对的,但本质上还是在 Hydration 这个框架内打补丁。

真正的范式变化在 Edge。

边缘计算把渲染逻辑推到离用户最近的节点,延迟降低一个数量级。配合 Streaming SSR,用户不需要等整个页面构建完成——服务端生成一块,浏览器渲染一块。Cloudflare Workers、Vercel Edge Functions、Deno Deploy,都在往这个方向推。

但这不是银弹。边缘节点的冷启动、缓存失效后的回源延迟、边缘环境的计算资源限制,都是实际问题。不是所有应用都适合边缘渲染,也不是所有团队都有能力维护一套边缘架构。

在金融业务里,我们面对的现实更复杂。合规要求、数据隔离、审计追踪,这些约束条件决定了不是所有逻辑都能推到边缘。有些场景,传统的中心化部署反而是最优解。

我的判断是,未来两三年,前端架构会走向分层:静态资源在边缘,动态渲染在边缘,核心业务逻辑在中心。既不是纯 CDN,也不是纯 Serverless,而是一种混合模式。大部分团队不需要全面转向边缘计算,但需要理解这个趋势,在合适的场景用起来。

构建工具的竞争已经见顶了。下一个竞争维度是运行时——你的应用在生产环境跑得多快,你的用户感知到的是什么。

开发体验的优化已经做得差不多了。是时候把注意力转回用户了。

You voted 3. Total votes: 14

添加新评论