操作
機能 #639
完了設定の保存にPStoreを使用しない
開始日:
2014-02-14
期日:
進捗率:
0%
プラグイン名:
説明
現在、CondigLoaderの値の保存はPStoreを使用しているが、YAMLに変更する。理由としては:
- データ破損時の復旧を容易にする。
Marshalizeされたデータは可読性がないため、破損しても原因が特定しづらい。
現在もセーブデータが破損するという問題が度々発生していることが報告されていて、1件については破損したデータを入手できたが、原因が特定できなかった。 - PStoreの設計がmikutterにあっていない
PStoreは排他制御のためにトランザクションが用意されているが、mikutterは実際にデータを書き込むのは常に1つのスレッドで、かつロールバックも使わないので、PStoreのトランザクション処理は役不足である。
結局それを迂回するために余計な処理を実行している現状がある。 - 設定ファイルが読めるように、という要望
Marshalではなく、YAMLのような人が見て直接編集しやすい形式にしてほしいという要望が上がっている。最初にあげたようなメリットのほかに、プラグインがどのような設定を作成するかを目視で確認しやすくなる。
懸念としては、
- 安全性
アクセストークンなどが直接見えてしまう。ただ、Marshalizeされていたとはいえ今までも暗号化はしていなかったので、暗号化するか、暗号化した上で別の場所に保持しておくべきだった。
読めるデータに読めないデータが入っているのもなんだか気分が悪いので、このへんいい機会なのでちゃんと考える。
操作