プロジェクト

全般

プロフィール

機能 #639

設定の保存にPStoreを使用しない

toshi_a 初音3年以上前に追加. 3年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2014-02-14
期日:
進捗率:

0%

プラグイン名:

説明

現在、CondigLoaderの値の保存はPStoreを使用しているが、YAMLに変更する。理由としては:
  • データ破損時の復旧を容易にする。
    Marshalizeされたデータは可読性がないため、破損しても原因が特定しづらい。
    現在もセーブデータが破損するという問題が度々発生していることが報告されていて、1件については破損したデータを入手できたが、原因が特定できなかった。
  • PStoreの設計がmikutterにあっていない
    PStoreは排他制御のためにトランザクションが用意されているが、mikutterは実際にデータを書き込むのは常に1つのスレッドで、かつロールバックも使わないので、PStoreのトランザクション処理は役不足である。
    結局それを迂回するために余計な処理を実行している現状がある。
  • 設定ファイルが読めるように、という要望
    Marshalではなく、YAMLのような人が見て直接編集しやすい形式にしてほしいという要望が上がっている。最初にあげたようなメリットのほかに、プラグインがどのような設定を作成するかを目視で確認しやすくなる。

懸念としては、

  • 安全性
    アクセストークンなどが直接見えてしまう。ただ、Marshalizeされていたとはいえ今までも暗号化はしていなかったので、暗号化するか、暗号化した上で別の場所に保持しておくべきだった。
    読めるデータに読めないデータが入っているのもなんだか気分が悪いので、このへんいい機会なのでちゃんと考える。

関係しているリビジョン

リビジョン 1ea5a8e9 (差分)
toshi_a 初音3年以上前に追加

ConfigLoaderの設定保持をYAML形式に変更。ファイルの場所もsettings/以下に refs #639

履歴

#1 toshi_a 初音3年以上前に更新

  • ステータス新規 から 様子見 に変更

YAMLで保存するように変更。懸念点は #640 で対策

#2 toshi_a 初音3年以上前に更新

  • ステータス様子見 から 終了 に変更

他の形式にエクスポート: Atom PDF