Microsoft patterns & practices
近年マイクロソフトが力を入れているらしいパターン関連の頁は、今後益々要チェックのようだ。
日本語の書籍も今月頭に発売になっている。
最近 ASP.NET の社内研修をやっているのだが、見ていると、或る程度 ASP.NET が判ってきて実用的なプログラムを書こうとしたときに、よく戸惑うのが、次のような点らしい。度々質問を受けた。
- 「ページのクラスとデータに関連の強い部分のクラスが入り乱れてしまうのだけど、それぞれどのように作っていったらいいの?」
- 「ページが沢山になったときに共通の処理をどこかに纏めたいのだけど、どうするのが普通?」
- 「ページ遷移が複雑になったときに、ソースが汚くなるのだけれど、何か良い方法はないかしら?」
ASP.NET でアプリケーションを書き進めていくと、上のようなことが解決できず、直ぐにソースがぐちゃぐちゃになってしまう、と言うのだ。
そういう人には、先の Microsoft patterns & practices から、先ず以下を試してみるように言ってみる。
かなり手取り足取り説明してあるので、パターンに不案内な人にも分かりやすい。
また、テストのしやすさについても言及されているのが良いと思う (*1)。
後は追加で「『3 層分散』周辺は読んどいてね」とか、Singleton パターンくらいなら知っているという人には「『C# でのシングルトンの実装』が面白いよ」とか。
とにかく、効果が実感しやすそうなところから紹介していく。
この辺に少しずつ慣れていって、それから少しずつ、ドメイン モデルを作るべきかどうかや、ユーザー インタフェイスのテスト方法などについても考えていったら良いと思う。
そして、色々とパターンを試していく中で、プログラムの複雑さをどこにどんな風に吸収させていけば良いのか、そのコツを帰納的に体得していくのが良い。
パターンは教育ツールとしても強力なのだ。
(*1) これからは、デザイン パターンやアーキテクチャ パターンの記述のテンプレートに「テストのしやすさ」という項も追加するのが良いのではないだろうか。
パターンを適用することでどう設計が良くなるのかを言うのに、「テストがやりやすくなる」というのは判りやすい指標になると思う。
ディスカッション
コメント一覧
MSのサイトでNUnitのテストコードの説明がされてるのって、なんかちょっぴり嬉しくなってしまいます。
BasePageを使ったページコントローラは有効に使えるとかなり効率が上がりますね。
P&Pは研究し甲斐がありますよ、ほんと(^^)
中西さん、ichikawa さん、こんにちは。
少し前のマイクロソフトのサイトは、オブジェクト指向とかアジャイルとかには興味がないのかと思う程、そういう記事が少なかったような気がします。
ビジネスの話と実装技術の話が中心で、その間を繋ぐ話が少なかったような気が…
最近は、そういう記事が増えてきて、マイクロソフトの技術を中心に仕事をしている身としては、なんだか楽しいです。