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

【POP26】アーキテクチャ根底技法⑤機能、目的ごとに分離しよう

はじめに

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

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

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

What : 関心別でコードを分ける

関心とはソフトウェアの機能や目的のことです。本記事では「関心」と表現しますのであらかじめご容赦ください。

それぞれの関心に関するコードを集めて、独立したモジュールとして、他のコードから分離させる設計技法です。分離されたモジュール同士の結びつきは最小限に抑えます。具体的な設計技法は『MVC』や『AOP』などがあります。MVCなどはrailsなどに標準装備されています。

Why : 関心別でコードの変更が行われるから

コードの変更は「関心単位」で行われます。例えばお問い合わせフォームです。お問い合わせフォームに新たに「住所」の入力欄を追加したいと言った時に、お問い合わせフォームというモジュールができていたらそのモジュールを変更すれば目的は達成できます。このようにコードの変更は関心別で行われるのです。またそうすることのメリットを下記にまとめます。

  • 修正、機能追加の際にコードを読む範囲、量が限定されて変更が容易になる。
  • 影響範囲がモジュール内にとどまるため、変更時の品質が安定します。
  • 最初の開発でモジュール毎(関心毎)の開発が可能となるのでチーム開発がしやすい。(分業しやすい)

How : 関心別でモジュール化しよう

関心毎にモジュールを作成し、互いに異なる責務や、無関係な責務は分離します。一つのモジュールが異なる前提で異なる役割を果たしていたら互いに独立させましょう。

関心別でモジュールを分ける方法は「MVCモデル」などがあるので是非調べてみてください。

関連 : AOP(アスペクト指向プログラミング)

ソフトウェアの振る舞いを「アスペクト」と呼ばれる機能単位として分離して記述し、プログラムの様々な対象に適用できるようにする手法のことです。

既存のオブジェクト指向プログラミング言語や開発環境に補助的に導入されることが多い。

終わりに

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

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

次回、「【POP27】アーキテクチャ根底技法⑤充足、完全、プリミティブの性質」です。ぜひ、次の記事も読んでみてください。

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

ミッチー

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

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

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