プリンシプルプログラミング プログラミング

【POP28】アーキテクチャ根底技法⑦ポリシーと実装の分離

はじめに

この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。

著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。

プリンシプルオブプログラミングをPOPと訳します。

What : ポリシーと実装は混ぜない

モジュールには次の二つを扱います。しかし、単体のモジュール内でその両方を扱ってはいけません。

ポリシーモジュール

ソフトウェアの前提に依存する、「ビジネスロジック」や「その他のモジュールに対する引数選択を行う部分」のこと

実装モジュール

ソフトウェアの前提に依存しない独立したロジック部分のこと。前提条件はモジュールに対して「引数」として与えられる。

Why : 「実装」は安定であるが「ポリシー」は不安定であるため

実装モジュールはソフトウェアの前提に依存しない「純粋なモジュール」なので、他のモジュールにも再利用することができる。

ポリシーモジュールは引数を指定するため、ソフトウェアに特化している。よってソフトウェアに変更があるとポリシーモジュールも変更することとなる。

よって、ポリシーと実装のモジュールが混在してしまうとポリシーの変更に実装が影響を「受けてしまい再利用できないため、混在させてはいけない。

How : ポリシーと実装は別のモジュールへ

モジュール作成において「ポリシー」と「実装」は別にすることを意識して設計する。そして分けてコードする。

分離が不可能な場合は、どこが実装でどこがポリシーかを明確に表現する。保守の際に混在してしまうリスクがあるため、修正対象がどちらの役割のモジュール化明確に把握してから作業する。

終わりに

この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。

この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。

次回、「【POP29】アーキテクチャ根底技法⑧インタフェースの実装と分離」です。ぜひ、次の記事も読んでみてください。

  • この記事を書いた人
  • 最新記事

ミッチー

小中高と野球漬けの毎日 ▶︎ 大学時に自分が何もできないことに気づき、プログラミング学習開始 ▶︎ PCは疎かったがめげずに継続 ▶︎ 受託で案件を頂きながら、オーダースーツ事業に、通販事業にも参戦 ▶︎ 東証一部Web系自社開発企業にエンジニアとして内定。

-プリンシプルプログラミング, プログラミング

© 2022 オミチャンネル Powered by AFFINGER5