2009年10月13日火曜日

O/Rマッピング

「問題」とは、ActiveRecordに代表されるO/Rマッピングの技術の進化が、本来のMVC(そしてオブジェクト指向そのもの)のメリットを無視した「えせMVC」な設計を助長している、という問題。

・MVCやオブジェクト指向を表面的にしか理解していないエンジニアが増えている(ここが根本的な問題)
       
・SQLを自分で記述しなくて良いO/Rマッピングはとても魅力的(これはこれで別の問題を含んでいるが、このエントリーではあえて突っ込まない)
       
・O/Rマッピングにより抽象化したデータは一見れっきとしたModelに見える(ここが誤解のもと)
       
・O/RマッピングとHTMLテンプレートを使っただけで、自分は「MVCのデザインパターンに従った設計が出来る」という幻想を抱かせる(これが大きな誤解)。
       
本来ならModelの中に記述すべきビジネスロジック(ビジネスルールに基づいてデータベースにアクセスし、データの整合性に責任を持つロジック)をControllerの中に記述しはじめてしまい、結果的にController層が必要以上に分厚くメンテナンスしにくいアプリケーションができてしまう(スパゲッティのできあがり)。

 「この業界でプロとして仕事をするなら、使う言語やフレームワークにかかわらず、オブジェクト指向とMVCのコンセプトだけはしっかりと理解した上で仕事をしてほしい。そして、O/Rマッピングを使う時には、それだけでModel作りが終わったと誤解してはいけない」。

 オブジェクト指向と同じく、MVCのコンセプトは「はやりすたり」とは関係のない良いアプリケーションを設計する上での基本中の基本。


いつの世ににも 上滑りの人はいるもので、PROGRAMができれば!ではない世界があることを猛省している.

0 件のコメント: