はてな

で質問してみました。

アプリケーションソフトのプログラム開発において、アプリケーションのデータをファイルに保存する際に、安全な保存を提供するフレームワークや、安全な保存方法についての統一的なポリシーについて書かれた文献やウェブサイトを捜しています。

上書き保存中にアプリが落ちてしまい、大事なデータが消えてしまって断末魔をあげた方はたくさんいはると思います。
しかし、落ちても直前のデータを残してくれる良く出来たアプリもあります。
(というか、そうなってないと安心して使う気になれません)

開発者の立場からすれば、どう実装すればこのような安全な保存を実現できるのか、が問題になります。
開発者の方の多くは、この手の問題には一度は直面された経験があるのではないかと思います。
もちろん十分にテストしてアプリが落ちさえしなければよい、という意見もあるでしょうが、そこそこの規模のプロジェクトで結構の人数の開発者が絡んでくると、保存中だろうが何だろうがアプリが落ちる事態は想定しておかねばなりません。
また、落ちるバグがなくなるまでファイル保存が信用できないのでは、テスト自体が十分にできません。

リリース後に、客先でかなりの時間を費やして作り込まれたデータがそうやって壊れてしまうともう最悪で、信用問題にもなりかねないです。

これまで必要に迫られてそんな機能を提供するライブラリを作ってみたりしたのですが、前提となる問題設定が十分とは思えないので、中途半端な作りになっています。真面目に突き詰めるなら、かなり奥の深い問題なのではないでしょうか…。
こういうのって言わゆる定石になってそうな気がするのですが、よくできた有名なフレームワークがあったりするのだろーか…。

うーん、デザインパターンとかに載ってるんかな…。でもそこで扱うにしては、ファイルのような泥臭い実装寄りの話が絡んでるし、なんか違うような。帰ったら調べてみよう…。