简历3.0改版是2026年初的重点项目,目标是统一 PC、H5、微信小程序、App 四端的简历数据模型,实现多端编辑协同。旧版四端各有各的数据结构和接口,数据不一致、维护困难。今天把改版架构分享出来。
一、旧版问题
- 数据模型不统一:PC 端简历字段多,小程序端字段少,同一份简历在不同端显示不一样
- 接口不统一:四端各有各的 API,同样的功能要写四遍
- 编辑冲突:用户在 PC 编辑了一半,又在小程序打开,数据覆盖
- 没有版本管理:简历修改后无法回退到历史版本
- 同步延迟:一端编辑后,另一端要刷新才能看到最新数据
二、统一数据模型
用 JSON 存储简历内容,支持灵活扩展:
| |
统一的 JSON 结构:
| |
所有端共用这一套 JSON 结构,不同端可以选择性显示字段,但数据是统一的。
三、多端编辑协同
乐观锁 + 版本号
用版本号防止编辑冲突:
| |
增量同步
大简历全量传输慢,用增量同步,只传修改的字段:
| |
前端调用时只传修改的字段,比如只改了工作经历,就只传 work_experiences,不传整个简历。
四、版本管理
每次修改都存历史版本,支持回退:
| |
| |
五、踩坑经验
- JSON 字段查询慢:简历内容存在 JSON 字段,按技能、城市等条件查询时性能差。常用查询字段(城市、期望职位、工作年限)冗余到独立列,建索引
- 大简历传输慢:简历内容多时 JSON 体积大,全量更新慢。用增量同步(Patch),只传修改的字段
- 多端冲突:用户同时在两端编辑,乐观锁会拒绝后保存的一端。加了"合并冲突"提示,让用户选择保留哪端或手动合并
- 版本存储膨胀:每次修改都存全量版本,历史版本表增长快。只保留最近 20 个版本,更早的定期归档或删除
六、总结
简历3.0改版核心:
- 统一数据模型:四端共用一套 JSON 结构,数据一致,接口统一
- 乐观锁防冲突:版本号校验,防止多端编辑覆盖
- 增量同步:Patch 模式只传修改字段,减少传输量
- 版本管理:每次修改存历史版本,支持回退
- 实时通知:WebSocket 通知其他端刷新,多端数据实时同步
- 查询优化:常用字段冗余到独立列,解决 JSON 查询性能问题
多端协同的核心是"统一数据模型 + 版本控制 + 增量同步"。数据模型统一了,接口和展示才能统一;版本控制保证了多端编辑不冲突;增量同步提升了大内容的编辑体验。这三个点做好了,多端协同的基础就扎实了。