Programing/Language/SoftwareEngineering
Last-modified: Wed, 10 Jan 2024 11:23:30 JST (374d)
Architecture
CQSの原則
副作用を最小限に抑える設計原則
- オブジェクトの状態を変更するメソッドと、値を返すメソッドを分離する
SOLIDの原則
オブジェクト指向言語における5つの開発原則
- Single-responsibility principle(単一責任の原則)
クラスや関数は、単一の機能に対しての責任を持つ - Open/closed principle(開放/閉鎖の原則)
クラスや関数は、拡張に対しては開放されており、修正に対しては閉鎖されているべきである - Liskov substitution principle(リスコフの置換原則)
基底型は派生型で置き換えても動作が変わらないべきである - Interface segregation principle(インターフェース分離の原則)
- dependency inversion principle(依存性逆転の原則)
YAGNI原則
"You ain't gonna need it" 機能はじっさいに必要となるまでは追加しない方が良い
DRY原則
ソフトウェア開発全体において情報を重複させない
GRASP
"General Responsibility Assignment Software Pattern" オブジェクト指向設計における汎用的な責任性割り当ての9つのパターン
- Information Expert
- 必要な情報を持つクラスに責務を割り当てる
- 情報と責務の分散と情報の隠蔽化を促進する
- High Cohesion
- 一つの責務を全うするのに必要最低限かつ、その責務に特化したプロパティとメソッドのみでクラスを構成する
- Low Coupling
- クラス間の関連性と依存性は可能な限り小さくする
- Creator
- Controller
- Indirection
- Polymorphism
- Protected Variations
- Pure Fabrication