上条动态介绍了撤销的历史。大家对于"撤销"功能已经习以为常,难以想象什么App没有撤销功能。但其实这个功能却困扰了很多人很多年。
实现一个撤销功能并不难,但如何能够"正确"的实现,正确的实现用户的期望才是难点。
比如 OBS Studio这个知名软件,2018年就在日程表上,但直到去年才加入了撤销/重做功能
obsproject.comThis is on the agenda. Fortunately, it's not a "difficult" feature to write, it's actually pretty simple, but the implementation is what's delicate, and requires a fair amount of experience to get right.
Liveblocks 也专门写了一篇文章介绍如何在多人协作的环境下实现undo/redo功能
liveblocks.io这篇文章 (
maxliani.wordpress.com ) 提到撤销就像建筑中的管道,尤其像下水管和排水管。它会穿过建筑的地基,遍布建筑,在浇灌水泥之前就需要安排好。
也就意味着,如果开发过程中就时刻想着"撤销"这个功能,那么会很简单,也会很自然。
但如果等到项目完成后才开始加入撤销,那就会极其有侵入性,甚至需要重新设计。