テスターですが何か?

ホビープログラマ略してHPです

「プログラミングASP.NET MVC」読みました

with one comment

4月のWindows Developer Daysで買った「プログラミングASP.NET MVC」をやっと読み終えました。自分自身に対して「今さらかよ」と突っ込みたくなりますが…素晴らしい本でした。

IMG_20120425_002027

本書の対象はASP.NET MVCの開発経験がある、または、サンプルソースを読んだことがあり、このフレームワークを利用してどのようにプログラムを記述するかを理解している人、さらに、包括的に、深くASP.NET MVCについて理解したい人だと思います。

「ASP.NET MVCとは」や「そもそもWebFormとは何が違うの?」についてはほぼ触れられていないため、初心者ではなく中級者がより理解を深めるために読む内容になっています。自分も個人的に簡単なアプリを作成したことがあり、(ちょっとサバを読むと)自称中級者なので、この本の対象としてはぴったりだったかもしれません。

本書の中で一貫して書かれていることは、ASP.NET MVCの柔軟性です。素の機能をだけを使用しても、これまでのASP.NET以上にアプリケーションが作りやすくなっていますが、それに加えてASP.NET MVCはほぼすべての要素が使いやすくカスタマイズすることができます。ビューエンジン、ルーティング、モデルバインダー、HTMLヘルパー、属性といったありとあらゆる要素に対して、カスタムモジュールを追加・標準モジュールを置き換えることができます。「第1部 ASP.NET MVCの基礎」では、標準機能の説明を行ったあとにあるシナリオにもとづいてカスタム機能をどのように実装するかについて触れています。

個人的に読んでいて興味を持ったのは、第2部(7章、8章)のコントローラーの設計の部分についてです。MVCの「C」部分にはどんな処理を書くべきか、その延長上にMVCの「M」とは何か、について記載があります。自分のようなレベルの低いエンジニアの書くプログラムは(しかもサンデープログラマーなので書く前にちゃんと設計しない)コントローラーに処理(ロジック)を記載してしまいます、で、Mの部分はデータアクセスのみ。ネット上に大量にあふれているサンプルコードもこのように書かれているケースが多いですが、サンプルのような超シンプルなシナリオだから破綻しないだけで、通常のシナリオではコードが破綻します。自分の経験上、比較的簡易なシナリオでもコントローラーに処理が満載になってしまって我に返ることがあります。コントローラーはHTTPリクエストの受付と、レスポンスの返却を行います、モデルバインダ経由で受け取ったViewModelをどう扱うかは、Modelに任せます。それがWebアプリケーションのMVCのパターンです。(たぶん)あまり長く書くとボロが出るので、この辺に興味がある方はこの本の7章、8章を読むといいと思います。キーワードとしては「ぜい肉のないコントローラー」「iPODDパターン」「ServiceLocatorモデル」でしょうか。

この本は現実にはありえないような超シンプルなシナリオではなく、より現実に即したシナリオにも適用できるべく記述されているため、読んだ内容が次々に頭に入ってくるというわけではありません。もともと中級者以上向けの内容に加えて、現実にありあり得るパターンに対応しようとすると、自分のCPU(脳みそ)では知恵熱が出てしまいます。わかったような…わからないような…中途半端な気分になります。

そして、ふとこんなつぶやきをしてしまいました。

image

image

すると意外に反応があって、この本の内容、もしくは中級者以上向けのフォローの場って需要があるんだなと感じました。読書会は定期的に複数回開催されるもののようなので難しいですが、自分も中級者以上向けの勉強会というかイベントには参加してみたいです。

ということでこんな内容を聞いてみたいと妄想してみました。他の方のブログやプレゼンテーションを引用させていただいています、問題がある場合はTwitter(@david9142)または、ブログのコメントで連絡ください。

タイトルは

「ぼく/わたしのかんがえたさいきょうのえーえすぴーどっとねっとえむぶいしー」

初心者は完全に置き去り、中級者に対してLevel5の方たちが「オラオラ!! オレのテールに食らいついてこい!!!」と煽る場にしたいですね。そんなドMなLevel2,3なエンジニアが集まる場にしたいです。個人的に聞いてみたい話は以下のブログ・プレゼンテーションの内容です、しかも、上級者向けにカスタマイズされたものを。

MVCの「M」と「C」とは

年末だからこそ ASP.NET MVC のモデルの作り方について考えてみる (@shibayanさん)

ぜい肉のないコントローラ をめざそう! (@miso_soup3さん)

Patterns&Practice

Project Liike: モダン モバイル Web アプリ開発ガイダンス&サンプルコード公開です! (@chack411さん)

モダン ブラウザのためのクライアント サイド Web 開発ガイダンス ~ Project Silk リリース (@chack411さん)

単体テスト

基礎から見直す ASP.NET MVC の単体テスト自動化方法 (@normalian さん)

オープンソース

ASP.NET Open Sourcing Discussion with Scott Hanselman (@shanselman)

 

自分の知り得る情報は限られたものなので、ASP.NET MVC界はもっともっと有名な方がいらっしゃるのかもしれません。自分の言いたかったことは、この本をきっかけに

「わたしの戦闘力は530000です」

という人達(MS社員も含む)の全力のプレゼンテーションを聞いてみたいなぁ、という個人的な好奇心が生まれました。こういう場を設けるためには何をやったらいいんでしょうか?「自分はこんな内容を聞いてみたい」という意見が色々とあると思います。Twitterは苦手なので、ブログで会話しませんか?「ぼく/わたしのかんがえたさいきょうのえーえすぴーどっとねっとえむぶいしー」というタイトルで、このブログエントリー・プレゼンテーションの全力のを聞いてみたい、という内容をブログで書きましょう。で、書いたら #aspnetjp のハッシュタグをつけて、ブログ書きましたとつぶやいてみるのはどうでしょうか。きっと誰かが…こういう場を設けてくれるはず…何とかしてこういう場を設けたいです、はい、本気です。

Written by david9142

2012年7月5日 @ 12:40 AM

コメント / トラックバック1件

Subscribe to comments with RSS.

  1. […] 「プログラミングASP.NET MVC」読みました « テスターですが何か?. 共有:TwitterFacebookいいね:いいね最初の「いいね」をつけてみませんか。 […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。