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

【POP43】障害を生まないための7つの設計原理に④階層原理について

はじめに

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

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

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

What : 階層構造にこだわる

ものごとの主従関係、前後関係など、階層関係を常に意識して整理された関係性を構築しましょう。同じような処理が別の階層に存在しているとみにくいです。

下記の例を見てみましょう。

【例1】 階層構造あり

 

    • 東京
      • 渋谷
      • 新宿
      • 港区
        • 西麻布
        • 虎ノ門
        • 高輪
        • 六本木
      • 新宿区

【例2】 階層構造なし

  • 東京
  • 渋谷
  • 新宿
  • 港区
  • 虎ノ門
  • 高輪
  • 六本木
  • 西麻布
  • 新宿区

 

どうでしょうか?普段、本などでなんとなくみている階層構造にどれだけのパワーがあるかがわかると思います。プログラムはこんな簡単な階層では済みません。意識していないともう東京の地下鉄並みに複雑なものになってしまいます。

Why : 階層構造は読みやすいから

明確な階層構造はそれだけで見やすくなります。それは読み手が勝手に全体を抽象化して理解することができるからです。正しく抽象レベルを設定し、明確な階層構造を作成することで、プログラマの意図や仕様が伝わりやすくなります。そして、バグが減ります。

How : 抽象階層構造のあるコードを書く

コードの各々について階層構造を持たせます。同じ階層内はできるだけ抽象度が同じものを選びましょう。また、上位から見た時にかいレベルは「外部から見ているような視点」で記述するのが良いです。

例えばアカウントを作成する関数と削除する関数は同じ階層におくべきです。そしてアカウント情報を一部だけ変更する関数は作成する関数の下の階層に設置するといった感じです。

終わりに

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

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

次回、「【POP44】障害を生まないための7つの設計原理に⑤線形原理について」です。ぜひ、次の記事も読んでみてください。

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

ミッチー

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

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

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