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

【POP51】UNIX思想(4)分離の原則について

はじめに

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

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

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

What : メカニズムとポリシーを引き離す

タイトルの通りです。

メカニズム

そのソフトウェアに依存する部分のこと。例えばビジネスロジックやUIがそれにあたります。

ポリシー

ソフトウェアに依存しない、独立した部分のこと。例えば描画処理やラスト操作アルゴリズムなど、エンジン的な役割を果たす部分がそれにあたります。

Why : 安定と不安定を混在させてはいけないから

メカニズムは安定、ポリシーは不安定になります。この二つを組み合わせてしまうことは二つの欠点があります。

  • ポリシーが硬直化してユーザーの要求に合わせたポリシーの変更がやりにくくなってしまう
  • ポリシーを変更する際に、安定しているメカニズムまで変更が及んでしまいメカニズムの安定がなくなる恐れがある

How : 分離したポリシーを改善しよう

ソフトウェア内部で「安定部分」と「不安定部分」を明確に分けて管理しましょう。以下の二つのように設計します。

サービス系アプリケーション

普段使っているようなwebアプリです。フロントエンドとバックエンドにモジュールを分割します。

フロント部分が通信プロトコルを理解して、クライアントからの要求を受ける部分で「ポリシーの役割」を果たします。

バック部分が実際のサービス提供を行う「メカニズムの役割」を果たします。

こうすることで複雑さはかなり軽減されます。結果として障害が減り、ソフトウェア全体のコストは下がります。

エディタアプリケーション

エディタの機能を拡張するモジュールを、「設定ファイル」で駆動できるようにします。拡張可能なユーザへのインタフェース部分が「ポリシー」エディタのエンジンが「メカニズム」です。

こうすることで内部のモジュールが明確化されて、ユーザーが自由に機能を拡張できるようになります。

終わりに

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

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

次回、「【POP52】UNIX思想(5)単純性の原則について」です。ぜひ、次の記事も読んでみてください。

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

ミッチー

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

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

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