Keeping it Simple
ActiveRecord does not suck
http://karwin.blogspot.com/2008/05/activerecord-does-not-suck.html
CakePHPについては語らず、Railsについてだけですが。
要は、多くの初心者が“モデルって、DBテーブルのことだよね”と考えてしまうのはよくない、と。結果的にコントローラがふくれあがり、UnitTestで影響が出てしまう、という話になっています。
個人的な意見として、まぁ、それはそうなんですが、「絶妙に妥協」というか、通常、Webアプリで書く場合にはたいていの場合、DBがあるよね、だから、“情報”はDBテーブルに入れて、それとそのインターフェイスをモデルと考えようよ、という考え方は好きなんですよね。
Delphiの“コンポーネント”なんかは、中で何回継承していようと、完成した部品クラスはパレットの上に一列に並んでいたので、非常に直感的でした。
OOPの理想的な“Modelクラス”を使ったオープンソースをいじったりもしましたが、結局、親クラスのソースを次々と読まないと、「このクラスは何ができるの」ということが把握できなかったりするので、そういう点ではRails流のモデル定義は理想的ではないとしても“実用的”だと思っています。
昨日あたりIRCで彼がはしゃいでましたよ。(笑)