状態設計のチェック

  • この状態は 判断がすでに完了した結果 だけを表しているか
  • 「この状態の UI はあり得る?」と自分に聞いて、即答できるか
  • nullable や flag の組み合わせで「状態を表現していないか」
  • 状態を見ただけで、 これ以上判断が不要だ と分かるか

イベント設計のチェック

  • このイベントは「これから判断してほしい」通知になっていないか
  • イベントの型を見ただけで、何が確定したのか が分かるか
  • Boolean や Int で「意味を持たせて」いないか
  • sealed class にしたとき、アプリがとり得る状態として過不足がないか

境界設計のチェック

  • この境界を越えたあと、判断が発生していないか
  • 境界の向こう側で if / when が増えていないか
  • Flow の各関数の前後が「意味の切れ目」になっているか
  • 「ここから先は事実だけが流れる」と断言できるか

ViewModel / UI 分離のチェック(Android)

  • ViewModel は「判断済みの世界」だけを外に出しているか
  • UI は判断せず、状態とイベントを そのまま描画/反映 しているか
  • UI の onClick などから、判断済みのイベントを作成しているか
  • 「この判断、UI でも ViewModel でもできるよね」と思う箇所が残っていないか

統合チェック(最重要)

  • 「これは判断前/判断後のどちらか?」と即答できるか
  • 新しいコードを書く前に「判断はどこで終わらせる?」と自問しているか

→ これが自然にできていれば、設計は崩れにくい