関心の分離
逆に複雑な状態とは?
さまざまな関心事が入り組んでいる状態
モジュール化されていても関心事が散財していたり共存していたりすると複雑度があがる
四象限をベースに考える
https://gyazo.com/81a969d8c97a32b27566dd45e79251eb
入出力の関心事と計算判断の関心事を混在させない
手続き的なモジュール化だと分離が上手く行かないことが多い
型によるモジュール化により計算・判断のロジックだけを独立したモジュールにわかりやすく記述できる
実装の詳細の中に業務の関心事を記述しない
プログラムの大部分は実装の詳細なので意識しないと混在する
ソフトウェアの変更要求は業務の関心事の変更
業務の関心事を表現するモジュールを独立させる
実装の詳細から解放され、業務の関心事だけをわかりやすく表現できる
パッケージ名・クラス名・メソッド名に業務で使われる言葉を積極的に使う
実装の詳細のモジュール群は、業務の関心事を表現したモジュール群から使われる基礎部品
ビジネスルールに基づく計算・判断のビジネスロジックを集約する
変更が楽で安全なものとなる
さまざまな詳細の中から本質的な特徴だけを選択して取りだすこと