利用する画面もあり、あまり頑張ってレイヤーを分けてはいません。的な構成を良く使い、新しい画面で利用されている部分もあります。コードはかなりこなれていてバグも少ないため、既存のコードを積極的に書き換えることはしていません。構成を参考にしました。分けることを真似しています。入れることを真似しています。移植性やコード品質を高めるため、またできるだけ依存の少ないクラスにするという目的で、次のような構成にしました。クライアントを構成するのに必要なクラスを集めたフレームワーク。依存Preludeアプリ仕様に無関係なユーティリティを集めたフレームワーク。依存するかどうかという分け方にしています。よかったことこのシンプルなルールのおかげで、無理なくフレームワーク化を実施できました。おかしな依存があるコードはコンパイルできなくなり、コードを綺麗に保てるようになりました。巨大なコードベースを抱えていたため、これは困難でした。この方針が実施されているかをコンパイル時に分かるようにするのは難しいので、ファイルがフレームワークに移動しただけで依存関係は綺麗にならないという事態になっていたと思います。残ったコードは多いですが、ここまでは綺麗、ここからはまだ汚いという区別ができてよかったです。する分割方法は非常に良かったです。隠蔽するだけの層としてうまく成り立っています。この隠蔽層は、アプリのアーキテクチャによらず必要になるため、今後も安定して利用できそうです。経由してファイルへの読み書きを行っていますが、これを使っていないコードも多くありました。利用を促進できました。差し替えることでインメモリで動作させ、ゴミの残らないテストコードにすることができました。導入されていると楽に作業することができます。記述されるため分かりやすくなります。内に書かれたロジックも多く残っています。切り出しが難しかったので、今後のリファクタリングや機能追加も難しい状態となっていそうです。ユーザー数も多く、リファクタリングによる無用なバグの発生は避けたいので、今後も慎重に整理を行っていきたいと思います。