16.歴史の長さの足かせ

電子カルテWine Styleの開発は、商品になる以前、NOAの大橋先生と一緒に始めたWINEにさかのぼる1992年になる。その当時の開発環境はNeXTSTEP。それも初期の頃だ。その頃からひきづっている資産がいまだに初期のユーザのアーカイブの中には残っている。

プログラムの中でNSObjectのアーカイブを使って、データオブジェクトをアーカイブしている箇所はかなりの数ある。このアーカイブ、アンアーカイブを行うメソッドは、NSArchiver, NSUnArchiverが最初だった。そのごNSKeyedArchiver, NSKeyedUnarchiverが出てきて、長い間共存していた。世の中、ますますセキュリティーにはうるさくなり、これらを使うNSCodingプロトコルもNSSecureCodingへと移行してきた。それに伴って、NSArchiver, NSUnArchiverはdeprecate(不可とする)された。Wine Styleも新しいバージョンに移行するにあたり、古いアーカイブを新しいもの変更している。古いフォーマットのアーカイブがアクセスされた時の例外処理として古いアーカイブを新しいアーカイブに変更している。

WineCleanerの役割

WineCleanerというツールが3.2.7から追加されたが、現段階では半ばテンポラリーに作られたファイルのクリーニングを2日以上前のファイルを削除することだけに使っている。

上に書いた古いアーカイブを新しいものに変える処理は逐次的に行われていて、そのアーカイブを参照したタイミングで行われている。しかし、これだと使われないものはいつまでも古い形で残ってしまう。なので、古い形でアーカイブされている可能性のあるデータを全てチェックして新しいフォーマットに変更する処理をどこか近いうちにする必要がある。NSUnarchiverのような処理は、deprecateされても比較的長くライブラリーがサポートはしてくれるかそれにも限界はありますからね。

この記事が気に入ったらサポートをしてみませんか?