Project

General

Profile

Actions

機能 #639

closed

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

Added by toshi_a 初音 over 10 years ago. Updated over 10 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2014-02-14
Due date:
% Done:

0%

プラグイン名:

Description

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

懸念としては、

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

Updated by toshi_a 初音 over 10 years ago

  • Status changed from 新規 to 様子見

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

Actions #2

Updated by toshi_a 初音 over 10 years ago

  • Status changed from 様子見 to 終了
Actions

Also available in: Atom PDF