2010年7月9日金曜日

Railsと MVC

Life is beautiful: Ruby on Railsの「えせMVC」の弊害
(誤解した人が多かったので追記すると)結論としては、「Railsを使って(データの整合性が大切な)アプリケーションを作る場合、素のままのActiveRecordにControllerから直接アクセスするのは避け、ActiveRecordの上に一枚皮をかぶせる形でビジネスロジックを含んだModelをきちんと設計・実装し、ビジネスロジックがControllerに浸食していくことを意識して避けることが大切である。

そうそう、ActiveRecordはたしかにそれだけでModelとして通じる場面も少なくないけど、ビジネスロジックがあるならそれをModelに実装するのがMVCの精神。
もっといえば、DBに関連してなくても、つまりActiveRecordでなくてもModelは必要になってくる。

ただし、WebプログラミングにおいてはそもそもビジネスロジックをModel化するのが面倒な場合も多い。
下手するとそのページでしか使わないページ専用モデルがいくつもできることになる。
そういう場合はMVCにとらわれずに、あきらかにそのページ固有であるビジネスロジックはModel化せずにコントローラに書いちゃったほうがスパゲッティにならない。
判断は難しいけど。
コントローラに書いたのを後で共通化したければリファクタリングしましょう。
.

0 件のコメント:

ブログ アーカイブ

カテゴリー