LoginSignup
0
2

More than 5 years have passed since last update.

Clean Architecture を勉強してみた

Posted at

Clean Architecture についてアレコレ話をして
自分の中で落ち着いたので走り書きレベルのまとめ

かなり手抜きっぽいけど、イメージ図にするとこんな感じ。
(画面から処理を呼んだ際、データベースから何かを読み込んで画面に反映する、みたいな構造です)
class-specification.png

TL;DR

  • 最も変化しないであろう根本的なデータ構造を一番下位に用意
    • DBとやり取りするデータ構造や、画面表示用のデータ構造は随時変換する
  • インターフェースが重要
    • 特に上位に処理を委譲する時はかなり大事
    • テストも書きやすくなる
  • ファイル数は結構多くなりそう

今までは DB用データ構造 <--> 画面表示用のデータ構造 で直接変換してたけど
両者の間に変更されにくいデータ構造を置くのは良いかも、と感じた。
また、テストを書きながら、インターフェースを介して依存性を下げる構造も改めて感心した。

内側から外側の処理が呼びたい!

内側から外側の処理を呼ぶ時はインターフェースを経由するのが重要です

ダメな実装

ng.png

良い実装

ok.png

おみやげ

作図はPlantUMLを使いました。
一番上のイメージ図を作成する際に使ったファイルをGitHubに置いたので

設計等で使えそうならテンプレートにでもどうぞ。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2