More Related Content
Similar to 第ⅴ部:clean architecture アーキテクチャ Part1
Similar to 第ⅴ部:clean architecture アーキテクチャ Part1 (6)
第ⅴ部:clean architecture アーキテクチャ Part1
- 2. 前回まとめ
- コンポーネント
- コンポーネントとはデプロイ単位のことである
- 優秀なコンポーネントは常に個別にデプロイができる状態を保っている
- コンポーネントの凝縮性
- 再利用・リリース等価の原則( REP)
- 閉鎖性共通の原則( CCP)
- 全再利用の原則( CRP)
- コンポーネントの結合
- 非循環依存関係の原則( ADP)
- 安定依存の原則( SDP)
- 安定度・抽象度等価の原則( SAP)
- 8. 第2章:独立性
ユースケース/運用/開発/デプロイ
- ユースケース
- 「ユースケース」とはアーキテクチャがシステムの意図をサポートする
- 優れたアーキテクチャを備えたカートはアプリケーションのように見える
- アーキテクチャがシステムの振る舞いに大きな影響を与えることはない
- 運用
- 運用に対してのアーキテクチャは本質的な役割を果たす
- ユースケースに対しての処理能力をサポートしなければいけない
- 優れたアーキテクトであればこれらの決定を選択肢として残せる
- 開発
- アーキテクチャは開発環境のサポートでは非常に重要な役割
- それぞれのチーム行動を独立させるアーキテクチャシステムを持たせる
- デプロイ
- アーキテクチャはデプロイの手軽さの決定にも役割がある
- 目指すべきは、変更に依存しない「即時デプロイ」
- 11. 第2章:独立性
切り離し方式のレベル
- ソースレベル
- あるモジュールに対する変更が、他のモジュールの変更や再コンパイルにつながらないよう、ソース
コードモジュール間の依存性を管理する (Gemなど)
- コンポーネントは全て同じアドレス空間で実行される
- コンポーネント間の通信は、単純な関数呼び出しを使用し、 PCのメモリに読み込まれた単一の実行
ファイルが存在する (モノリシック構造 )
- デプロイレベル
- あるモジュールのソースコードに対する変更が、他のモジュールの再ビルドや再デプロイにつながら
ないように、デプロイ可能な単位の依存性を管理する (jarファイル/DLLなど)
- 多くのコンポーネントは同じアドレス空間に存在し、通信には関数呼び出しを使用する
- 重要なのは、コンポーネントが単独でデプロイ可能な単位 (jarファイル/Gemファイルなど)に分割され
ていること
- サービスレベル
- 依存性をデータ構造のレベルまで下げ、ネットワークパケットだけで通信する
- 全ての実行単位は完全に独立している
- ソースやバイナリを変更してもお互いに影響を与えることはない (サービスやマイクロサービスなど )
- 12. 第Ⅳ部:Part1 まとめ
- アーキテクチャとは?
- コードを書かずより高いレベルの問題にフォーカスするというのは間違い
- ソフトウェアアーキテクチャとはプログラマである
- 自分で課題を経験し、生産性を最大化する設計にチームを導いて行くための「形状」
- ソフトウェアシステムの開発・デプロイ・運用・保守を容易にすること
- 独立性
- 優れたアーキテクチャは以下の事をサポートする
- システムのユースケース
- システムの運用
- システムの開発
- システムのデプロイ