B
BIC STATION
TOTAL PC SUPPORT

モデル層へのロジック集約と
Fat Controller 回避

2026.04.18
10 MIN READ
AUTHOR: MAYA

"コントローラーに何百行ものコードを書くのは、指揮者が楽器を奪って自分で演奏を始めるようなものです。"

1. 指揮者に専念させる

初期の開発では、データの加工もバリデーションもすべてコントローラーに書きがちです。私はこの「Fat Controller(肥大なコントローラー)」を避け、コントローラーの責務を「リクエストを受け取り、適切なモデルを呼び出し、ビューを返す」という3点に限定しました。

Ideal MVC Flow
  • Controller: ユーザーの意図を解釈する
  • Model: データの計算・保存・ルールを担う
  • View: モデルの状態を視覚化する

2. ドメインロジックの隠蔽

たとえば「投稿の公開条件」などのビジネスルールは Model 内のメソッドに閉じ込めます。これにより、API 経由でも画面経由でも、同じ Model を呼び出すだけで一貫した挙動が保証されます。この設計思想が、後の BICSTATION の堅牢性を支えることになりました。

Encapsulation Example

$post->publish() と呼ぶだけで、日付チェックやステータス変更、ログ記録が内部で完結する。利用側はその詳細を知る必要はありません。

Vol.6 モデル層へのロジック集約と Fat Controller 回避 | BICSTATION | Bic Station