オルタナティブ・ブログ > An Agile Way >

アジャイルに行こう!

C#2.0&3.0勉強会

»

福井情報技術者協会[FITEA]が主催するイベント C#2.0&3.0勉強会に参加してきました。

講師は、福井コンピュータの小島さん。以前からオブジェクト倶楽部等で親しくしていただいています。目的は、C#の仕様を理解して、JUDEのC#対応に活かすことです。

小島さんのお話は面白く、あっというまの4時間でした。ラムダ式、yeild return、拡張メソッド、匿名メソッド、型推論(var)など、C#3.0の新機能が、LINQ という宣言的なコレクション操作を行うため、という風に物語が作られていて、IEnumerable<T> の重要性と共にすんなり納得できました。

しかも、小島さんは Data Binding の説明のときに、UIのDataSourceプロパティ を IEnumerable インターフェイスを持つデータにアサインし、EventをDelegateによって通知することで、Viewとモデルの独立性を保つクラス設計になっていることを、JUDEのモデルで示してくれました。ぼくが「これはJUDEですね」というと、「あ、関係者の方ですか?」ととぼけて頂いて、いい感じでした。

しかし、、、、C#にLINQが入ると、コードをリバースするのが激ムズになりますね。。。。小島さんは、予約語を増やしたのではない、とおっしゃっていましたが。。。

ぼくはC#のさまざまな拡張は、JavaのEoDを超えているように思えます。よりすんなり、言語(シンタクス)で表現する部分がライブラリ実装と補完しあっています。単純にUMLとは合わなくなっていますが、そこは、「分かりやすいグラフィックな設計表現」という風に考えて、JUDEのC#対応をしていきたいと思いました。

あと、C#のジェネリクスは、バイトコードレベルで対応があるのですね。Javaだと、バイトコードでは型引数 T はすべてObjectになってしまう。。それに、プリミティブ型はTに出来ませんし、ジェネリクス内で、new T ができません。ちょっとC#に嫉妬しました。

でも、IEnumerable は、重要度の割りには名前がイケてませんね。。。
遅延取得できるコレクション、というようないい名前があるとよいのですが。。。

Comment(0)