プロジェクトは「閲覧室」
アプリの中のプロジェクトを、図書館の閲覧室だと思ってください。部屋にはあなた専用の記録カード(最近開いたページ)と、ドアの名札(いま誰が居るか)があります。
移るときだけ、片づけが飛んでいた
片づけは「建物を出るとき」にだけ動く作りでした。部屋から部屋へ移るのは建物を出たことにならないので、何も片づかないまま次の部屋に入っていました。
Aの記録が、Bのカードに書かれた
カードを持ったまま次の部屋に入ったので、その部屋には存在しないページが記録として書き込まれました。ドアの名札も A に残ったままで、同僚からはまだ A に居るように見えていました。
直し方 ① 入る前に、片づける
次の部屋の準備を始める場所で、「前の部屋がまだ開いていたら先に閉じる」を一箇所だけ足しました。ここは部屋を移るどの入口からも必ず通る場所です。
結果: B のカードには B のページだけが並び、A の名札も消えました。
ところが、早歩きすると崩れる
A で司書に本を頼んだあと、B、C と足早に移ると、遅れて届いた A の本が、いま居る C の棚に入ってしまいます。返事が届く順番は、頼んだ順番とは限りません。
直し方 ② 依頼に番号札をつける
頼むときに番号札を渡し、届いた瞬間に「この番号はまだ最新か」を見ます。古ければ棚に入れずに捨てます。番号は部屋ごとではなく依頼ごとなので、A → B → A と戻ってきても、古い A と新しい A を取り違えません。
直し方 ③ 退出は、いつでも片づける
片づけには時間がかかり、その間の入室は順番待ちの列に並びます。「誰も居ないなら片づけ不要」と判断すると、列で待っている入室を取り消せません。退出のときは何も確かめずに片づけを呼ぶことにしました。
いまの状態
- B に混入した A のページ
- 0 件(修正前 3 件)
- A に残る名札
- 0 件
- テスト
- 14,924 件 通過
実機(ローカルの Firebase エミュレータ)でも、A → B の切替後に B のカードには B のページだけが並び、A のドアの名札が消えることを確認しています。