STERFIELD

2020/07/03

新しい機能実装時の設計ポイント

新しい機能実装時の設計ポイント

はじめに

主にMVCにおける自分なりの(内部)設計ポイントをまとめました。

設計時のポイント

  • 不具合が起きても改修しやすいように
  • 依存性が低い
  • 機能単位で役割などの定義をはっきりさせる

機能をまとめる

今回はAPI連携など他の機能からある程度分離しているものを例とする。

留意点は以下。

  • 大きな機能として一つのファイル(群)にまとめる
  • Controllerは「受け渡し」の役割だけを担わせる
  • データ整形であっても「その機能に依存する」限り機能ファイル(群)に集約する
  • Controllerから呼び出す機能単位で関数を先にInterfaceとして作っておく

以降では、大機能として追加開発の全体を定義して
中機能として「大機能の中で使う機能の種類」を定義し、
小機能として「中機能を実現するための細かな関数単位での処理」を定義することとする。

例えばこんな感じです

などのようにする。
機能自体に不具合があっても基本的には(上述で示す)Handlerの修正だけで済む。

機能のブラックボックス

前項のHandlerにて複数の機能があるとします。

例えば

  • 商品検索
  • 注文作成(決済連携)

これは「一つの(大きな括りでの)機能」としてのHandler管理に対して、
「商品検索」「注文作成」という枝分かれした機能を「関数」として先に定義しておく。
Controllerなど呼び出される時は必ずここだ、というエンドポイント的な役割

先にこれだけ書いておくことで後からたどりやすくなる。
また「この機能のどの中機能を修正・更新したい」という時に
そこから辿れりやすく、中機能の中で完結するよう運用がしやすくなる。

特に最初に細かく設計をせず
流動的に進める場合に有効である。
予め命名規則なども開発全体でルール作りなどしておくとスムースであろう。

上記の例だと
前処理、中機能でやるべき中枢の処理後処理
を埋めていくだけで良くなる。
実装当初は何も処理せず、呼び出し側がそれだけで
従来の機能を果たすようにしておくと、後のテストも楽になるであろう。
PHPDocなど各処理の役割に対して実装前に定義しておくと
開発者以外の共有としても好ましいかもしれない。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい