はじめに
この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。
著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。
プリンシプルオブプログラミングをPOPと訳します。
What : 「インターフェース」と「実装」から構成する
モジュールは下記の二つの分離した部分から構成する
インターフェースパート
モジュールが持つ機能を定義して、使用方法を定める部分。
クライアントがアクセス可能な関数のシグネチャーから構成される。
シグネチャー
関数やメソッドの名前、引数の数やデータ型、返り値の型などの組み合わせのこと。
実装パート
モジュールが持つ機能を実現しているコード部分のこと。内部で使用する、ロジックとデータが含まれており、クライアントからはアクセスできない。
Why : 使用者はインターフェースだけ知っていれば十分だから
両者を分離することで使用者のクライアントが詳細を知る必要性が省ける。クライアントにはモジュールのインターフェース仕様のみが表示されるため、シンプルでわかりやすく容易に使用できる。
How : インターフェースを用いて実装する
モジュールに関する設計原理について次の格言があります。
「インターフェースに対してプログラミングするのであって、実装に対してプログラミングするのではない」
この格言より、モジュール同士の呼び出しについては、互いにインターフェースのみが使用されるようにする。インターフェースの実装に関しては、直接呼び出すことを許可しないようにする。
終わりに
この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。
この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。
次回、「【POP30】アーキテクチャ根底技法⑨参照の一点性について」です。ぜひ、次の記事も読んでみてください。