乐于分享
好东西不私藏

最近有点干:从编辑器卡顿到 AI 团队升级

最近有点干:从编辑器卡顿到 AI 团队升级

半个多月没更新了,这段时间干了件大事,也踩了些坑。今天和大家随便聊聊。


一、编辑器性能优化:让”等待”变成”期待”

先说个让我最有成就感的——把一个网页编辑器的打开速度从 10 秒优化到了 5 秒左右。

起因

“这编辑器怎么又卡了?”

4月中旬,老板让我优化公司 MGBuilder 编辑器的打开速度。我一打开 DevTools,Network 面板一片红——400 多个请求扎堆在 3-11 秒,全在抢资源。

诊断

三个”性能杀手”:

杀手 影响
组件同步加载 30+ 个组件同时解析,CPU 打满
Monaco Editor 全量加载 光代码编辑器就占 2-3 秒
路由守卫同步等待 每次跳转都要等 API 才能展示

三招解决

第一招:组件懒加载

之前一上来就把所有组件都 import 了,后来改成:

const getComponent = (type) => {
  return defineAsyncComponent(() => import(`./components/${type}`))
}

按需加载,用到哪个才加载哪个。

第二招:Monaco 延迟加载

Monaco 编辑器足足有 3MB+,但用户不是每次都要写代码。所以改成:只有点击”代码组件”时才加载 Monaco。

第三招:路由守卫并行化

之前:跳转页面 → 等 API → 展示页面
改成:跳转页面 → 先展示 → 后台静默请求 API

用户体验立刻流畅了。

结果

阶段 打开时间
优化前 10+ 秒
优化后 5-6 秒
提升 约 40-50%

虽然还没到理想的 3 秒,但已经不再让人皱眉了。


二、模板开发:从无从下手到渐入佳境

最近还干了件技术活——学习模板开发。

说实话,一开始看模板代码有点懵。一个页面涉及七八个组件,变量传来传去,文件引用嵌套好几层,看得我眼花缭乱。

后来静下心来,啃下一个具体案例,慢慢理出了点头绪。

模板的核心要素

1. 页面结构

一个模板页面通常由这几部分组成:

  • 头部(head):引入 CSS、字体等公共资源
  • 导航(nav):网站导航栏
  • 内容区(page):页面主体
  • 底部(foot):页脚

2. 数据变量

模板里不写死数据,而是用变量引用:

<!-- 列表数据 -->
<th:block th:each="item : ${lists.data}">

<!-- 分类信息 -->
<th:block th:text="${curCate.config.get('name')}">

3. 组件机制

模板会把常用的区块拆成组件,比如:

  • 轮播图组件
  • 文章列表组件
  • 地图组件
  • 数字统计组件

不同页面按需组合这些组件,灵活又高效。

学到的经验

  • 模板语法要活学活用,不要死记硬背
  • 遇到不懂的变量,往数据源头(后端接口)追溯
  • 多看几个案例对比,能发现规律

后续会继续整理模板开发规范,争取形成一套可复用的开发流程。


三、工具升级:让 AI 团队更稳定

模型切换

之前团队用的一个免费模型突然下线了(trinity-large-preview),导致好几个 AI 助手”罢工”。

赶紧排查了一遍,把 writer、noter、assistant 的模型都切换到了稳定的选项。这次切换让我意识到:免费模型虽然香,但不稳定是个隐患。后续考虑逐步切到更稳定的方案。

Gateway 启动优化

之前 Gateway 启动特别慢,排查发现是飞书探测超时的问题。设置了一个环境变量 OPENCLAW_FEISHU_STARTUP_PROBE_TIMEOUT_MS=5000,把超时从 30 秒降到了 5 秒。

现在重启 Gateway 快多了,不用再等半天了。


写在最后

这段时间没有惊天动地的大事,但每件事都让我觉得团队在进步:

  • 工具更快了
  • 技术文档更完善了
  • AI 助手更稳定了

这些”小事”积累起来,就是护城河。

如果你也有类似的优化经验,欢迎评论区聊聊~


本文由 AI 助手妙手记录整理