ARTICLE · 1065239
零代码文档驱动大模型开发---AI办公助手系列-数据安全-删了能找回,改错了能回退
上一篇,把基础功能补齐到了"功能等价"。但功能再全,有个更基本的问题还没正面回答——数据会不会出事。写了一半的文档,突然崩溃、误删、改错了回不去,这是办公软件最致命的信任问题。而我们的底线是"数据在本地",那就必须在本地,把"防丢、防错、可回退"做扎实。这一篇,就讲这个。
一、项目需求
办公软件最怕的不是"功能少",是"写的东西没了"。三个最典型的场景:
• 误删了一份重要文档;
• 改来改去,突然想回到昨天的版本,回不去;
• 正写着,软件崩了、电脑蓝屏了,辛辛苦苦写的内容没了。
所以要做三件事:删了能找回、改错了能回退、写着不丢。而且全程在本地,不上云。
二、项目功能
• 回收站:删除进回收站(软删除),可恢复、可彻底清除。
• 版本历史:每 3 分钟自动快照 + 手动创建,最多 20 版,可回退、可另存。
• 自动保存恢复:编辑时持续写恢复文件,崩溃重启弹窗恢复。
• 未保存标记:标签红点● + 状态栏「已保存 / 未保存」。
• 文档对比:两个文档逐词 diff,绿=新增、红=删除线。

三、功能优化及优化思路
优化一:删除进回收站,而非真删
痛点:误删是最高频的事故。真删了,数据就没了,追不回来。
解法:删除不真删,加一道防线:只打一个deleted_at标记(软删除),文档进回收站。用户后悔了能一键恢复;确认不要了,再彻底清除。

心得:可逆的操作,才配叫"安全"。凡是用户可能后悔的动作,都留一道"撤销"的后路。数据安全的第一原则,就是别把事情做绝。
改进二:版本历史自动快照
痛点:自己每次手动"存个快照",不现实。真到改错了想回退,往往一个版本都没有。
解法:让系统每 3 分钟自动存一次快照,也支持手动创建,最多留 20 版。自己不用记得,系统替你记着,随时能回退、能另存成新文档。

改进心得:安全不能依赖用户的自觉。 必要的保护(快照、自动保存)必须是"系统默认",而不是"自己记得"。靠自觉的保险,约等于没保险。
改进三:防丢内容,切走不丢
问题:发现一个很隐蔽的 bug。编辑后还没到防抖保存的那几毫秒,就切到了别的文档,再回到原文档,发现最后敲进去的内容丢了。以为存了,其实没存。
解法:切走之前,把最新内容 flush 回内存并写库(统一走一个保存点),保证切走切回读到的都是最新的。再加一道未保存标记——标签红点、状态栏「未保存」,让用户一眼知道"这文档到底有没有被存住"。
改进心得:"看起来存了"和"真的存了"是两码事。保存逻辑要盯住"最后一个字",而不是"最后一次定时器触发"。数据丢失,往往就发生在这些差几毫秒的边界里。
下篇预告
数据在本地"不出事",这块地基夯实了。下一篇,回到"本地 AI"这条线——补上 OCR 从 0 到 1 的故事:它怎么从死磕 tesseract 失败,翻篇到本地 PP-OCRv4,再踩平打包原生模块的四个坑。