かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

DRY原則とMVVMで思う事

個人的に感じてる違和感なんですが、MVVMのVMのコードってDRY原則に反してるというか、同じようなパターンのコードがたくさんあるような気がするんですよねぇ。

コードスニペットも個人的な感覚だと、便利なコピペだと思ったりしてるので、使いどころが難しぃ。コードスニペットでサクサクと大量にコードを作っていくと、あとでメンテナンスするときに大量のコードが相手になる。そんな大変なことになったりしないかな〜?と思ったりはします。

でも、現時点でMVVMパターンのCommandとかRaisePropertyChangedつきのプロパティとかはコードスニペットあたりが妥当なのかなぁと思ってるのも事実です。次点でT4 Templateかな。ここらへんツールサポートが充実してほしいな〜と思います。

同じようなコードが幾つもある状況は、無駄であり、メンテナンスコストも高くなります。いわゆる「コピペ」コードを量産すると、ライン数は稼げますが品質は下がるのは誰もが経験しているのではないでしょうか?

まぁコマンドやプロパティのコードが無駄であり、品質を下げる要因になるのかどうかは、はっきりとわからないですが、特別なロジックが入ったりするわけではないので、個人的に気持ち悪いと思ってるだけで害は無いような気がします。でも!でも、何か嫌な感じがあるんです。

ということで、ここらへんをどうにかできないかということをモンモンと考えてるという事をBlogに吐き出しておく今日この頃でした。

最後の引用は、自分への自戒の意味を込めて。

しかし、どんな時にもDRY原則を守る・・・DRY原理主義者にはならないようにしましょう。見た目には同じコードかもしれませんが、それは論理的に別の意味を持つコードかもしれません。