天使の取り分

ソフトウェア開発に関するよもやま

Clean Architectureを読む(5)

7章 SRP : THE SINGLE RESPONSIBILITY PRINCIPLE

7章からは第3部 DESIGN PRINCIPLESということでSOLIDと呼ばれる5つの設計原則についての説明です。 まずは単一責任の原則ですが、あるモジュールを変更する理由が複数あってはいけない、というものです。あるいは、モジュールはただ一つのアクターに対してのみ責任を持つべきとされています。
例えば従業員クラスに対して、会計部門の要求に基づくメソッド、人事部門の要求に基づくメソッド、情報システム部門の要求に基づくメソッドが混在しているべきではない、分離すべきだというものです。

8章 OCP : THE OPEN-CLOSD PRINCIPLE

ソフトウェアは拡張に対して開いていて、変更に対して閉じているべきだというやつです。要は、なるべく少ない変更で拡張できる作りにしろよというものです。
例えばレポートをWeb画面に表示するか、紙で出力するかというUI要件は詳細であって、変わりやすいものです。どのように計算をするかといったビジネスルールを実装するコンポーネントがそのような詳細に依存することはあってはならず、依存関係は逆でなければいけません。 ハイレベルなポリシーを最上位に置き、他の何にも依存しないように保つことで、詳細レベルの変更から保護すべきだと述べられています。