MVVMパターンについて

WPFについて会社の若い技術者と話をしたところおもしろい考え方だなぁと感じたので少しメモします。

MVVMパターンは、Modelの内容をViewに公開するためどうしてもViewModelでModelの持つプロパティを公開したり、ViewとViewModel間の通知を行うコマンドの実装を考慮したりと何かと下準備が必要になります。

若い技術者は、MVVMで実装したことはないのですが概要は知っているようで、その下準備が面倒だからフレームワークが出てこないと使いにくいと言うことを言います。

確かにその通りでフレームワークができて、まぁ実際にフレームワークが存在するわけですが、そのフレームワークを使用すれば下準備は必要なくなるでしょう。けれども、MVVMとはなんぞや?ということは理解できないのではないだろうかと思うのです。

フレームワークを使用することは開発の工数を減らす、標準化を図る、技術者の水準を平準化するなどいろいろメリットがあり積極的に使用すべきだと思います。けれども、フレームワークがどのように作られているのかを理解しないでフレームワークを使用することは危険だなと感じるわけです。利便性を追求するあまり、その本質を見逃すことになるよと思うのです。

MVVMでもMVCでも何でもよいのですが、道具を使うのであれば道具の性質や仕組みを理解するべきでしょう。どこまで理解するかはともかく、理解できることは積極的に理解するべきだと思います。概念をミニマムコードで再現できる程度に理解した上で道具を使用するべきであって自分が概念を何となく理解した程度で便利な道具を使いたいと思うのは間違っているなぁと。

技術者なので概念をきちっとコードに落とし込んでからフレームワークなどを検討するべきだと強く感じたお話でした。