Controllerは「何でも屋」になりやすい
MVCの中で、一番太りやすいのがControllerです。
初心者の頃は、 「とりあえず動く場所に書く」 「ここに書けば画面も動く」 という理由で、Controllerに処理を集めがちです。
しかし、この状態が続くと、 Controllerがどんどん複雑になり、 修正や追加がつらい構成になってしまいます。
この記事では、Controllerの本来の役割と、 なぜ太りやすいのか、 どう考えると整理しやすいのかを解説します。
目次
Controllerとは何を担当するのか
MVCにおけるControllerの役割は、 受け取りと振り分けです。
具体的には、次のような役割を持ちます。
- ユーザーからのリクエストを受け取る
- 必要な処理をModelに依頼する
- どのViewを返すかを決める
Controller自身が業務ルールを判断する場所ではない という点が重要です。
なぜControllerは太りやすいのか
Controllerが太りやすい理由は、とてもシンプルです。
動作確認がしやすいからです。
Controllerに処理を書くと、 画面がすぐ動き、結果が目に見えます。 そのため、 「ここに書いてしまえ」 という判断が増えやすくなります。
入力チェックや業務判断までControllerに書き始めると、 Controllerは「何でも屋」になってしまいます。
Controllerがやるべきこと・やらないこと
Controllerがやるべきこと
- リクエストの受け取り
- 処理の流れの制御
- Viewの選択
Controllerがやらないほうがよいこと
- 業務ルールの判断
- 複雑な計算や状態管理
- データの正当性チェックの本体
Modelとの役割分担の考え方
ModelとControllerの境界で迷ったときは、 次の視点で考えると判断しやすくなります。
- 業務として正しいかを判断しているか? → Model
- 処理の流れを決めているだけか? → Controller
Controllerは薄く保ち、 判断はModelに任せることで、 MVCは長く保守しやすい構成になります。
まとめ
- Controllerは受け取りと振り分けが役割
- 業務ルールを書きすぎると太りやすい
- 判断はModelに任せる意識が大切
0 件のコメント:
コメントを投稿