复盘:我如何从 0 到 1 开发一个企业级 AI 表单填充 SDK

29 阅读2分钟

🚀 复盘:我如何从 0 到 1 开发一个企业级 AI 表单填充 SDK

摘要:历时 3 个月,从需求分析到架构设计,再到最终上线。本文记录了 AutoForm SDK 开发过程中的技术选型、踩坑经验和心得体会。

1. 缘起

公司内部有大量的旧系统(JSP, jQuery),业务部门天天抱怨填表繁琐。 重构是不可能重构的,这辈子都不可能重构。 于是老板下令:做一个通用的插件,挂上去就能自动填表。

2. 技术选型:艰难的抉择

方案 A:Chrome 插件

  • 优点:权限大,跨域方便。
  • 缺点:需要每个员工安装,更新麻烦,无法集成到客户的 SaaS 产品中。
  • 结论:Pass

方案 B:iframe 嵌入

  • 优点:简单,隔离性好。
  • 缺点:无法操作宿主 DOM,通信麻烦。
  • 结论:Pass

方案 C:Web Component SDK (最终选择)

  • 优点:原生支持,样式隔离,可操作 DOM,集成简单(一行 JS)。
  • 缺点:兼容性(IE 拜拜),开发门槛稍高。

3. 核心难点攻克

难点一:元素定位

页面结构一变,脚本就挂。 解法:引入 @medv/finder 生成 CSS 选择器 + 语义化指纹(Label/Placeholder)双重定位。

难点二:框架兼容

React/Vue 的受控组件无法直接赋值。 解法:劫持原生 Setter + 模拟完整事件链(Input/Change)。

难点三:体积控制

不能影响宿主页面性能。 解法:Loader + Core 双层架构。Loader 仅 5KB,Core 按需动态加载。

4. 心得体会

  1. 不要重复造轮子:善用开源社区的力量(如 rrweb, finder, user-event)。
  2. 用户体验至上:技术再牛,如果用户觉得难用也是白搭。我们花了很多时间打磨悬浮球的交互和 AI 的对话体验。
  3. 保持敬畏:在别人的页面上跑代码,一定要小心小心再小心(样式隔离、异常捕获)。

5. 广告时间

如果你也想体验一下这个 SDK,或者想看看源码实现,欢迎访问我们的官网。


👉 官网地址:51bpms.com

也可以添加微信详细沟通

linkme.png