ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

ユーザーに無茶な操作をされても、壊れないようにするための方法を考えてみる

以下の2記事を読んで、そりゃおかしくなるわなぁと思ったが、どうやったらソフトウェア側で防ぐことができるかを、一介のソフトウェア開発者として考えてみた。

Evernoteのバックアップファイルをインポートする際に絶対やってはいけないこと | 化学系メーカー研究職です

Evernoteを最新版にバージョンアップする際にやってはいけないこと | 化学系メーカー研究職です

 

バックアップファイルのインポートへの対応

バックアップファイルのインポートは、ファイルメニューから行うのだろうから、同期中はインポートをできないようにメニューを非表示にする。

Evernoteのバージョンアップへの対応

Evernoteのバージョンアップは、同期開始前または、バージョンアッププログラム起動時に、Win32APIのCreateMutex()を使って、排他処理を追加する。

同期中にバージョンアッププログラムが起動したら、同期中のためにバージョンアップ出来ないと表示する。

バージョンアッププログラムが起動しているときに同期を開始しようとしたら、バージョンアップ中のため同期できないと表示する。

 

この2つの対応で、防げるのではないかと思う。

 

気がついたこと

同期は定期的に行われているから、バージョンアップしているときに、同期のタイミングになることも考えられるから、自分でも起こり得たことだと気がついた。

今までは運がよかっただけか。