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

誤解 クリーンアーキテクチャ

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for satokoki satokoki
June 12, 2024
320

誤解 クリーンアーキテクチャ

おれはダーティアーキテクチャだった・・・・・・

Avatar for satokoki

satokoki

June 12, 2024
Tweet

Transcript

  1. Sec. 誤解 クリーンアーキテクチャ - 誤解1 クリーンアーキテクチャはすごい クリーンアーキテクチャのでは、 右記の同心円図(通称たまねぎ図)が有名です。 名前がずるいため、なんだか最強のフレームワークの ように感じます。 画像出典:

    
 Robert C. Martin 「The Clean Architecture」 しかし、クリーンアーキテクチャは数ある技術的な概 念なかの一つでしかありません。 むしろ、すごいと思いすぎるとクリーンな実装に振り 回され、結果時間がかかってしまうことになります。
  2. Sec. 誤解 クリーンアーキテクチャ - 誤解3 クリーンアーキテクチャは銀の弾丸である 銀の弾丸とは「どういうケースでも撃てば解決する最強 のソリューション」として扱われることがあります。 クリーンアーキテクチャはそうではありません。 画像出典: 漫画「銀の弾」-

    南 導入すれば複雑性が増し、SPAの実装などでは冗長な設 計となります。 他にも、初期学習フェーズで手間がかかるために短納期 でのプロジェクトにも不向きです。 エンジニア一人ひとりが、ケースごとに設計を考えてい くことが大事になります。
  3. Sec. 誤解 クリーンアーキテクチャ - 誤解4 小規模プロジェクトに向かない 💡 小規模プロジェクトとは ここでは、1〜5人程度のプロジェクトのことを指します。 とはいえ、メンバーが10人までならギリギリ小規模って言えるかも。 大規模に導入することで効果が出ると思われがちですが、

    キックオフの段階で大規模であることはそうありません。 最初から段階的に実装を進める必要があります。 クリーンアーキテクチャは一つの概念だけではなく、 複数の概念で成り立っています。 一つひとつを注視して、 プロジェクトに導入したいものから導入するべきです。
  4. ざっくりこんなのがあるよ ・Entities ・Gateways ・Usecases ・Controller ・Presenter 上記の項目をこれから扱っていきます。 画像出典: 
 Robert

    C. Martin 「The Clean Architecture」 Sec. 実践 クリーンアーキテクチャ 細かい部分はここでは取り扱わないので、 知りたいものは書籍や各種サイトにてご覧ください。
  5. Usecases ユースケースは、 ・アプリケーション固有のビジネスルール ・DDDにおけるアプリケーションサービス などを定義します。 エンティティと含めて、 この部分までがドメイン層になります。 Sec. 実践 クリーンアーキテクチャ -

    アプリケーションビジネスルール また、外部の層が依存するためのインターフェースも ここで作成します。 アプリケーション内のAPI的な役回りが主です。
  6. インターフェースアダプターとは? ドメイン層からフレームワークなどへ求められた データを送る便利な層です。 Sec. 実践 クリーンアーキテクチャ - インターフェースアダプター インターフェースアダプターおばあちゃん 使いやすいように 2本セットにしたから

    ・使いやすいようにデータを変換する ・プロトコル(通信規格)を合わせる ・実装をビジネスロジックから関心を分離する 右記ではおばあちゃんがデータを変換しています。
  7. Controller Controllers は入力をアプリケーションが要求する形に 変更して伝えるのが役目です。 その名の通り、 ゲームのコントローラーのような役割を担います。 Sec. 実践 クリーンアーキテクチャ - インターフェースアダプター

    さっきのおばあちゃんで言うところの、人間の インプットから形式を合わせる外部アダプターです。 おばあちゃん? 0101010… 欲しいものを言う 人間 ABC