« RubyでTwitter (メモ) | トップページ | 悲しいお知らせw + Mac OS X で gem install mysql がエラーで通らない。 »

MVC(Model-View-Controller)とDocument-View

ごめんなさい愚痴らせてください。

仕事で関わらさせられてる案件。
VC++(MFC)の、昔からのソースコードを弄るんですけど。
動作をおっかけるだけで死ねます・・・まじで。
そのうえ修正要求がむちゃくちゃで、「心が折れる」仕事です。

というのも。とにかく構造がむちゃくちゃで。
Controllerにあたる部分をDocumentとViewの両方に書いているあげく。
(いや、Modelに相当する部分がViewで扱われていたり、Viewに相当する部分がDocumentに書かれていたり、ってのもあったな(^^;)
制御が関数呼び出しだったり、PostMessage/SendMessageだったりと、方式を混在させて書いているんです。
これではトラブル起きて当然だよね、と。
そのうえ「この構造を変えないでトラブルを起こさない制御をしてくれ」とかいう要求がきていて。
そんなの無理です・・・泣けます・・・。

さすが「外注に修正依頼出して白旗あげられた」いわくつきのソースだな、と。


それはさておき。
話に出てきた、MVCだのDocument-Viewだのについて、ちょっとお話を。
MVCは、Rails扱う上でも避けては通れない部分ですからね。

まあ、プログラミングにおける、アプリケーションの構造のはなしね。
役割分担というのかな。だいたいこんなかんじかな。(頭の中で概念的に把握してるだけなので(^^;)
・Model - データ管理 → 実際のデータを(アプリケーションが)扱う部分
・View - 実際に目に見えるもの(見え方) → エンドユーザーが見て触るのに直接関わる部分
・Controller - ModelとViewの間に立って、制御をする → 何をどうしたいか
MFCで採用されているDocument-View構造は、Model+(View+Controller)というのが近いかな。
Controllerがどっちにも書けてしまうので、意識しないとすごく汚いソースになっちゃうけどね。

わけることのメリットですけど。
・データ管理はデータ管理部分で処理を専念できる
・見た目部分は見た目部分で処理を専念できる
・制御部分を独立させるのでやりやすい
かな。ちょっとしたアプリだと大げさになっちゃうけど、規模が大きくなるとこのほうがやりやすくなります(し、後任にも迷惑をかけないと思う(笑))

私の解説よりも、他のサイトの解説が丁寧でわかりやすいので、そちらを読んでください!!
以下に参考になりそうなサイトを載せておきます。


参考になりそうなとこ。
MVC - MVCとはModel-View-Controllerの頭文字をとったものです。
使わないと損をするModel-View-Controller
 Smalltalkでの例、というか元々Smalltalkの概念でしたよね。

おまけ。
@IT:連載:【改訂版】初歩のUML 第13回

あわせて(上記から)
アーキテクチャ・カテゴリ - @IT情報マネジメント
 今後の仕事を考えると、このへん読んどいて損はないかんじ。

|

« RubyでTwitter (メモ) | トップページ | 悲しいお知らせw + Mac OS X で gem install mysql がエラーで通らない。 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: MVC(Model-View-Controller)とDocument-View:

« RubyでTwitter (メモ) | トップページ | 悲しいお知らせw + Mac OS X で gem install mysql がエラーで通らない。 »