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

ちょうぜつ本の紹介 (クリーンアーキテクチャとパッケージ原則)

ちょうぜつ本の紹介 (クリーンアーキテクチャとパッケージ原則)

ちょうぜつソフトウェア設計入門というソフトウェア設計について書かれている本を紹介しています。 その本で取り上げられているクリーンアーキテクチャやパッケージ原則に焦点を当て、効率的なソフトウェア設計の重要性について解説をしています。

クリーンアーキテクチャはソフトウェアの問題解決に適した設計を提供し、パッケージ原則は再利用性の高い、依存性の少ない設計を促進します。これらの原則に従うことで、システムの開発がシンプルになり、保守性が向上します。

suzuki masayuki

November 12, 2023
Tweet

More Decks by suzuki masayuki

Other Decks in Programming

Transcript

  1. © 2023 • Azit Inc. CREW E xpressのという配送サービスを 開発をしているプログラマ 書いた記事

    安全にプロダクト品質を改善できる!ほぼ100%のテストカバレッジがある世界 理解するのが難しいシステムをドメインモデリングによって生産性をあげた話 (Qiitaのミノ駆動さん QiitaEngineerFesta_設計 のコンテスト受賞) 自己紹介 鈴木まー 主な職務 複雑なシステムの開発をRailsの開発をDDDやモジ ュ ラーモノリスを使って開発しやすくする 設計上問題となっているところの改善リファクタ
  2. © 2023 • Azit Inc. クリーンア ーキテクチャー ソフトウェアはそれぞれ異なる問題解決をするためのもの そのため既製フレームワークをただ盲目的に使用をするのではなくて それぞれのソフトウェアを解決する問題に適したア

    ーキテクチャーを 考えていく必要がある クリーンア ーキテクチャの考えはそれぞれ異なる問題を解決するため の独自ソフトウェアのア ーキテクチャを 設計するための考えかた(フレームワーク)
  3. © 2023 • Azit Inc. クリーンア ーキテクチャー この章を読むことで実際にクリーンア ーキテクチャにしていくための ことを以下のキーワードを元に解説をしています

    変更の影響範囲を絞って思考負荷を低くする ア ーキテクチャーを整理しやすくするために高凝集度、低結合にする 依存野向を各レイヤーの安定度 ドメインモデルというソフトウェアのコアとなる部分を安定する
  4. © 2023 • Azit Inc. クリーンア ーキテクチャー この章を読むことで 変更の影響範囲を絞って思考負荷を低くする ア

    ーキテクチャーを整理しやすくするために高凝集度、低結合にする 依存野向を各レイヤーの安定度 ドメインモデルというソフトウェアのコアとなる部分を安定する を理解できるようになる それによって 先程の図を理解できるようになる
  5. © 2023 • Azit Inc. そもそも 再利用とは? フレームワークとかライブラリーはいろんな人が利用するので 利用をするけど プロダクトではコードを再利用しないのでは

    再利用性があると他のコードとの依存部分をなくして 独立してマイクロサービスとして 移植しやすくすること ここは本では書いていない部分 パッケージ原則
  6. © 2023 • Azit Inc. パッケージ原則は以下のものがある 再利用・リリース等価の原則 ReuseReleaseEquivalentPrinciple(REP) 全再利用の原則 CommonReusePrinciple(CRP)

    閉鎖性共通の原則 CommonClosurePrinciple(CCP) 非循環依存関係の原則“ AcyclicDependenciesPrinciple(ADP) 安定依存の原則“StableDependenciesPrinciple(SDP) 安定度・抽象度等価の原則“StableAbstractionsPrinciple(SAP) パッケージ原則
  7. © 2023 • Azit Inc. 全再利用の原則 CommonReusePrinciple(CRP) パッケージにおける単一責務のようなものと捉えることができ 、 特定の目的を達成するために関連するクラスを

    一緒にグルー プ化することを推奨しています 。 この原則に従うことで、パッケージ内のクラスは共通の目的に従事し、 同じコンテキストで再利用される可能性が高くなります 。 パッケージ原則
  8. © 2023 • Azit Inc. クリーンア ーキテクチャー ソフトウェア開発において、各問題に 最適なア ーキテクチャを検討することが重要

    クリーンア ーキテクチャは、このような個別の課題に応じたソフト ウェアア ーキテクチャを考案するための枠組みを提供します