GOODROIDでリードエンジニアをさせて頂いています及川です。 今回は技術的負債を設計で返済した経験をもとに、 負債化した原因から全シーン単一起動可能な設計によって解決に経った経緯を書きました。 負債の顕著化 技術的負債は、ネストの深いシーンのデバッグ工数が爆増という形で顕著化しました。 シーン起動に必要なデータがシーン依存になっており、インゲームのたった一行の変更ですら、特定手順のシーン起動によって必要な情報を構築しなければ確認ができない状態でした。 負債化した原因 負債化した原因は、肥大化しやすい設計です。 旧設計でシーン遷移を行うためには、Use Case経由でServiceを叩いて任意のStorageに状態を持たせる必要がありました。 次のシーンに必要なデータの保存フォーマットがシーン毎に異なるため、接続するシーン同士でユニークな実装が求められていたためです。 実装としては、汎用