この記事はGoodpatch Advent Calendar 2019 4日目の記事です。 私は普段Ruby on RailsのREST APIのインフラ・バックエンド周りが多いですが、最近は、TypeScriptでフロントエンドとバックエンドをつなぐ部分なども担当しています。 今回は、まだ実装中ですが、 チームでの共同編集が必要なアプリケーションのUndo/Redo の設計と実装について簡単に紹介します。 (アプリケーションの内容はまだ詳しくかけないので、その辺は察してください ) 前提条件など Undo/Redoとは まず一般的なUndo/Redoは以下のような解釈でほとんどのユーザーでズレがないと思います。 Undo コンピューターの用語で直前に ユーザが 行った 操作を取り消し 、 元に戻す こと。データベースの専門用語ではロールバック。 Undo - Wikipedia Redo