アカウント名:
パスワード:
第一条 ソフトウェアは、人間による作業・成果物に害を及ぼしてはならない。また、その危険を看過することによって、人間の作業による成果物に危害を及ぼしてはならない。
この2つ(の組み合わせ)は時として矛盾する難しい要請ですね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
第一条 (スコア:2, 興味深い)
・ファイルの上書き保存中に落ちたりしても、ファイルが壊れるようなことになってはいけない
・保存時にディスクの空き容量が足りないとかだったら、ちゃんと警告を出す
・保存せずに終了しようとした場合は、保存してない旨警告を出す
・人間が間違った操作をしても、アンドゥで直前の状態に戻れるようにする
などなど。
Re:第一条 (スコア:0)
>・保存時にディスクの空き容量が足りないとかだったら、ちゃんと警告を出す
この2つ(の組み合わせ)は時として矛盾する難しい要請ですね。
だってそれを実現するためには書き込み前に今から書き込む「全」量のサイズを突き止めないとならない。
よほど単純なデータならいいが、シリアライズ時に色々あってサイズが増減するようなデータならば、ディスク以外(メモリとか?)にいったん全量を書き出さないと答えが判らないことになる。
そしてそんなことをするためのメモリが足りることも保証されるわけではない。
「これくらい期待させてくれよ」という要求ですら、この有様なのが、ソフトウェアってもんだ。
Re:第一条 (スコア:1)
テンポラリへ書き出し -> リネーム
が基本です。リネームは通常FSのインデックス(=FAT)書き換えだけですので、それを実行するプログラムが原因でファイル本体が壊れることはまずないです。
HDの容量不足はテンポラリ書き出し時点でわかりますし。
# たまにデスクトップアプリでもこうしているものを見かけます。
# 他にオートセーブの場合は自動命名で別名保存するタイプのものもあったような。
# と、いうか、大きな||大事なデータを扱うアプリほど、こういう実装にして欲しい。
# フラグメンテーションは気にしない