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

Clean Architecture 達人に学ぶソフトウェアの 構造と設計_第10回

masyus_work
November 11, 2020

Clean Architecture 達人に学ぶソフトウェアの 構造と設計_第10回

masyus_work

November 11, 2020
Tweet

More Decks by masyus_work

Other Decks in Technology

Transcript

  1. Clean Architecture
    達人に学ぶソフトウェアの
    構造と設計【輪読会】
    第10回:第21章~第22章
    2020/11/11 @masyus_work

    View full-size slide

  2. アーキテクチャ ≠ フレームワーク
    フレームワークはツールであり、
    生き方ではない
    第21章
    叫ぶ
    アーキテクチャ

    View full-size slide

  3. 第21章 叫ぶアーキテクチャ
    1. 建物のアーキテクチャの例
    - 戸建て
    - 図書館
    2. ソフトウェアアーキテクチャはシステムのユースケースを支える構造
    - 「戸建て」や「図書館」が建物のユースケースを叫んでいる
    - ソフトウェアアーキテクチャもアプリケーションのユースケースについて
    叫ぶべき
    3. アーキテクチャはフレームワークに関するものではない

    View full-size slide

  4. 第21章 叫ぶアーキテクチャ
    1. 優れたアーキテクチャは環境やツールの意思決定を延期・留保できる
    2. 「ウェブ」=「提供の仕組み(IOデバイス)」
    - アプリケーションアーキテクチャもウェブをそのように扱うべき
    3. 「フレームワーク」=「ツール」
    - フレームワークにアーキテクチャを乗っ取られないこと
    4. テスト可能であるべき

    View full-size slide

  5. 第22章
    クリーン
    アーキテクチャ

    View full-size slide

  6. 第22章 クリーンアーキテクチャ
    1. アーキテクチャの事例
    - ヘキサゴナルアーキテクチャ
    - DCIアーキテクチャ
    - BCE
    - ...いずれも関心事の分離が目的

    View full-size slide

  7. 第22章 クリーンアーキテクチャ
    アーキテクチャは
    1. フレームワーク非依存
    2. テスト可能
    3. UI非依存
    4. データベース非依存
    5. 外部エージェント非依存

    View full-size slide

  8. 第22章 クリーンアーキテクチャ
    依存性のルール

    View full-size slide

  9. 第22章 クリーンアーキテクチャ
    1. エンティティ
    - 企業全体の最重要ビジネスルールをカプセル化したもの
    2. ユースケース
    - アプリケーション固有のビジネスルールが含まれている
    - エンティティに入出力するデータの流れを調整
    3. インターフェイスアダプター
    - データ変換
    - From: エンティティやユースケースに便利なフォーマット
    - To: DBやWeb等の外部エージェントに便利なフォーマット

    View full-size slide

  10. 第22章 クリーンアーキテクチャ
    4. フレームワークとドライバ

    View full-size slide

  11. 第22章 クリーンアーキテクチャ
    境界を超える
    依存関係逆転の法則

    View full-size slide

  12. 第22章 クリーンアーキテクチャ
    典型的なシナリオ

    View full-size slide

  13. 復習しよう

    View full-size slide

  14. クイズ1
    「ソフトウェアアーキテクチャは
    システムの○○○○○○を支える構造」
    → ○に入る文字を答えよ

    View full-size slide

  15. クイズ1
    「ソフトウェアアーキテクチャは
    システムの○○○○○○を支える構造」
    → ○に入る文字を答えよ
    正解は...
    「ユースケース」でした!!!

    View full-size slide

  16. クイズ2
    「優れたアーキテクチャは○○や○○○の意思
    決定を延期・留保できる」
    → ○に入る文字を答えよ

    View full-size slide

  17. クイズ2
    「優れたアーキテクチャは○○や○○○の意思
    決定を延期・留保できる」
    → ○に入る文字を答えよ
    正解は...
    「環境」「ツール」でした!!!

    View full-size slide

  18. クイズ3
    「ユースケースには、アプリケーション固有の
    ○○○○○○○が含まれている」
    「ユースケースは、エンティティに入出力する○○○の
    流れを調整する」
    → ○に入る文字を答えよ

    View full-size slide

  19. クイズ3
    「ユースケースには、アプリケーション固有の
    ○○○○○○○が含まれている」
    「ユースケースは、エンティティに入出力する○○○の
    流れを調整する」
    → ○に入る文字を答えよ
    正解は...
    「ビジネスルール」「データ」でした!!!

    View full-size slide

  20. 輪読会 第10回は以上になります
    ありがとうございました!

    View full-size slide