mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-07-27 21:24:40 +02:00
2.8 KiB
2.8 KiB
Preferences system
ユーザーの環境設定を管理するシステム。
指針
実装上のミスで、設定値が意図せず失われる(古い値で上書きされる)ことが絶対にあってはならない。
設定値が失われる、考えられるシナリオの例:
- 複数のタブでMisskeyを開いていて、タブAで設定を編集した後、タブBを開いたところ、タブBの古い状態の内容で設定が保存され、タブAで行った編集が巻き戻ってしまった。
- プロファイルの同期機能をオンにしたところ、サーバーに保存されていた古い設定でローカルが上書きされてしまった。
上記のシナリオが絶対に発生しない設計・実装にしなければならない。
上記以外にも考えられるシナリオがあれば、必ず適切な対処を行う設計・実装にしなければならない。
仕様
タブ間同期
ブラウザで複数タブを開いているとき、あるタブで変更した設定が他のタブでも反映されるようにし、UXを向上させ、古い設定情報が上書き保存されることを防ぐ。
自動バックアップ(cloudBackup)
定期的、または特定のタイミングなどで、プロファイルをサーバーに自動的にアップロードする。
デバイス間同期(cloudSync)
定期的、または特定のタイミングなどで、サーバーにアップロードされたプロファイルをダウンロードし、ローカルに適用する。
設定項目: デバイス間で同期(syncBetweenDevices, ValueMeta.sync)
デバイス間・プロファイル横断でその設定項目の設定値を同期する。
当オプションを有効にするかどうかは設定項目ごとに設定可能。
ユーザーストーリー(ユースケース)
同じプロファイルを複数のデバイスで使いたい(同期したい)
autoBackupとautoSyncをオンにする。
(新しいデバイスなどで)既存のプロファイルを継承した新しいプロファイルを作りたい
継承したいプロファイルをバックアップから復元した後、プロファイルの名前を変える。
メモ
autoBackupとautoSyncの違いがユーザーにとって分かりにくい可能性があるので、機能を一本化するか、個別にオンオフを切り替えられるのではなく「自動バックアップ:『しない/有効/有効+同期』」みたいな選択方式にするなどがいいかもしれない?
autoBackupはするがautoSyncしたくないケースはあまりないと思うが、一本化すると複数のデバイスで同一のプロファイルを共有しない人(大多数だと思われる)にとっては無駄に通信量が増えるだけになる