Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クリーンアーキわからんかった人のためのオニオンアーキテクチャ

Kasai Kou
November 04, 2021

 クリーンアーキわからんかった人のためのオニオンアーキテクチャ

LT会の登壇資料です.
Zenn: https://zenn.dev/streamwest1629/articles/no-clean_hello-onion-architecture
(記事追加したい願望が強いのでZennフォローしてくれるとありがたい)

Kasai Kou

November 04, 2021
Tweet

More Decks by Kasai Kou

Other Decks in Programming

Transcript

  1. はじめに① アーキテクチャ is 何? かさいさん(Kasai Koji) SNS Twitter: @StreamWest1629(かさいさん) GitHub:

    StreamWest-1629 コーディング時に決めておく指針 「何をすべきか」がわかる 「やりたいこと」が伝わる その手段の1個にできたら 満点💯
  2. クリーンアーキテク チャの問題(注意)点 依存関係逆転の原則 は明記されない 依存関係逆転の原則とは? 言語の インターフェイス モジュール1 モジュール2 見かけ上、一方向に

    依存しているように見え る仕組み モジュール2が”言語のインターフェイス”の要件を満たすと 👉モジュール1は”言語のインターフェイス”として モジュール2を参照できる 依存関係逆転の原則は必要だが 場所について明記はない
  3. オニオンアーキテクチャの提案 Infrastructure層 Application Services 層 Domain Services層 Domain Model層 ライブラリ・ドライバ

    を使った処理を管理 Domain Services層で 定義する参照型に 従ったモジュール ビジネスロジック を管理 言語のインターフェイス を管理 Domain Service 内の型として Infrastructure層 を参照 依存関係 逆転の原則 データ構造等 を管理 どこにも 依存しない 見かけ上はこの方向に依存していく
  4. オニオンとクリーンの比較 クリーンアーキテクチャの概念 オニオンアーキテクチャの概念 Entities層 Domain Model層 Entities層またはUse Cases層 Domain Services層

    Use Cases層 Application Services層 Interface層またはInfrastructure層 Infrastructure層 Infrastructure層 (外部のライブラリ・ドライバなど)