Please enable JavaScript.
Coggle requires JavaScript to display documents.
高凝集・低結合 - Coggle Diagram
高凝集・低結合
メリット
コードが理解しやすい
拡張子やすさ
バグが少なく
再利用可能
テスト用意性
モジュールごとに考える
モジュールは様々な粒度があるが、まずはクラスで考える
凝集度とは
ある責務に特化したクラスを作ることを目指す
命名が曖昧だったり、
いろんなことをするメソッドがあるとだめ
クラス内の話
低結合
各クラス間の話
AクラスがないとBクラスが成り立たない場合は高結合
依存関係がない設計をなるべく目指す
特にモデルクラスの話かな?
互いのモデルは干渉しあわない方がよい気がする
アーキテクチャ
従来のレイヤードアーキテクチャだと問題がある
ビジネスロジックの層が肥大化して、解決領域が見えていない
例えば、商品を販売系なのか発送系なのかで行う処理が違うが、異なるサービス層に分けるくらいしか出来ない
DDDのレイヤードアーキテクチャ
ドメイン層を取り入れる
ここに特定コンテキストのモデルのロジックを詰め込む
オニオンアーキテクチャ
DDDのレイヤードアーキテクチャを改良して、
ドメイン層にインフラ層が使うインターフェースをおいておく
こうすることで、ドメインはそのインターフェースを使って好き勝手できる
インフラ層がどういう実装をしていようが問題ない。インターフェースさせ守っていれば