• image

  • アプリを設計する上で「アプリは1個のマップを持っている」と設計した

  • アプリ起動時に初期状態のマップを作成することにした

  • その後、以下の機能を追加した:

    • 起動時にサーバの情報を読みにいって、データがあればそれをロードする
    • Mapの更新があったら、サーバに保存する
  • 通常ロードの時間は一瞬なので問題にならなかった

  • しかし、6時間多くの人が描いたのを蓄積していったら時間が掛かるようになった

  • ロードが完了する前に初期状態マップを編集すると、その内容をサーバに書いてしまう

解決方法

  • 「アプリは1個のマップを持っている」が誤り
  • 「アプリは最大1個のマップを持っている」が適当
  • アプリの初期状態は「新規作成しますか?既存のマップを開きますか?」になっているべき
    • 新規作成を選んで初めて初期状態のマップが作成される
  • 編集リンクを直接開いた人は「既存のマップを開く」を選んだ相当
    • この場合はロードが完了するまでローディング中表示を出して、編集をさせないべき

関連: 明示的に編集モードにしなければ編集しない pRegroup2020