MVVMって、マカロニではなく設計パターンの話でして...
昨日、マルコム・グローブスがデベロッパーキャンプで講演するセッションの内容について紹介したが、どうやら大きな誤解があったようなので訂正する。
Delphiのようなビジュアル開発ツールは、マウス操作で簡単にアプリケーションを作成できてしまうため、便利である反面、メンテナンスに苦労する場合がある。もちろん、生産性が高いツールなので、半日ぐらいで使い捨てのアプリケーションを作ってしまうこともあろう。しかし、多くの場合は何年も使い続けたり、さまざまな機能要求に応えながら、少しずつ改良していったり、新しい環境に適合させていく必要がある。
Webアプリケーションの場合、MVCモデルのような設計パターンを取り入れることで、たとえ、画面を一新したいという要求が上がってきても、ロジックが影響を受けないように、それぞれ独立性を高める努力をしている。
だが、Delphiの場合、画面にペタペタとコンポーネントを貼り付けるスタイルで、このMVCにはなじみが薄い。そもそもUIにイベントハンドラを定義していくやり方は、C(=Control)の部分を画面依存にしないか?
そんな疑問の中、提唱されているのがMVVM。Model View View-Control。決してマカロニではない。
今回このセッションが大きな意味を持つのは、こうしたパターンが、単なる設計論だけで終わるのではなく、具体的なRAD機能と結び付いていることだ。ビジュアルRADで、設計パターンを導入しようとすると、どうしてもコンポーネントのモデルと合致せず、手作業でのコーディングになってしまうことが多かった。
将来のメンテナンス性のために、現在の生産性を犠牲にする、というあれだ。
しかし、Visual LiveBindingsという便利な機能を活用することで、ビジュアル操作の中に、設計パターンを持ちこむことに成功している。
詳細は、4月23日のデベロッパーキャンプ、
【C5】 Delphi/C++Builderテクニカルセッション
「Delphi/C++Builder MVVMアプローチ ~ VCL / FireMonkeyでもどんと来い!」
にて。残念ながらダイエットはテーマではない。