読者です 読者をやめる 読者になる 読者になる

「Undo」をどう設計する?

設計

ふと、こんなことを post してみた。

そしたらたくさんリプ頂けたという話。

 Undo の設計って、Undo 1回毎の単位でデータ丸ごと保存&復元ってやってりゃ簡単なんだけど、データ量が多いときにどうしようもなくなるから他の方法模索したくなりますね。で、差分とか逆操作とかが選択肢として挙がってくるんだけど、そうすると今度は「要素同士の参照関係の解決をどうするんだ?」「型安全性を可能な限りキープしつつ、速度を犠牲にせずに実現するには?」と、興味が移ります。そこでリアクティブプログラミングですか〜、的な流れでございますた。

Togetter 『「Undo」をどう設計する?』

 設計の話そのものはもちろん面白いのですが、それとは別に仕事でチーム開発するシーンを考慮するとまた違った意味で面白かったのではないかなぁと思います。というのも Undo のライブラリシステムは堅牢に作ってなんぼなわけです。なので、将来のプログラマのわずかなコーディングミスで大切なデータが全て吹き飛んでしまうといった重大なトラブルの可能性を下げられるなら下げる配慮もしたい。そうしたとき、ミス耐性が強い弱いって話が出てくると思うのですが、そういうのがあるともっと面白かったんじゃないかなぁと思ったです。

 とゆーわけで、Undo がどーやって実装されてるか、って話は面白かったでござる。ちゃんちゃん。