Clean Architecture についてアレコレ話をして
自分の中で落ち着いたので走り書きレベルのまとめ
かなり手抜きっぽいけど、イメージ図にするとこんな感じ。
(画面から処理を呼んだ際、データベースから何かを読み込んで画面に反映する、みたいな構造です)
TL;DR
- 最も変化しないであろう根本的なデータ構造を一番下位に用意
- DBとやり取りするデータ構造や、画面表示用のデータ構造は随時変換する
- インターフェースが重要
- 特に上位に処理を委譲する時はかなり大事
- テストも書きやすくなる
- ファイル数は結構多くなりそう
今までは DB用データ構造 <--> 画面表示用のデータ構造 で直接変換してたけど
両者の間に変更されにくいデータ構造を置くのは良いかも、と感じた。
また、テストを書きながら、インターフェースを介して依存性を下げる構造も改めて感心した。
内側から外側の処理が呼びたい!
内側から外側の処理を呼ぶ時はインターフェースを経由するのが重要です
おみやげ
作図はPlantUMLを使いました。
一番上のイメージ図を作成する際に使ったファイルをGitHubに置いたので
設計等で使えそうならテンプレートにでもどうぞ。