デブサミ2008 LINQに一目惚れ

昨日(d:id:ZOETROPE:20080213)に引き続き、デブサミに参加してきました。

昨日は開発プロセスを中心にセッションを回りましたが、今日は.NET関連技術が中心。

出張!!北欧勉強会

  • 昨日、たまたまhttp://d.hatena.ne.jp/thata/20080213#1202913585を見て、ちょっと面白そうだったので参加することにしました。
  • オブジェクトデザイン (Object Oriented SELECTION)は、8章の途中まで読んだまま放置してたものを引っ張りだしてきました。
  • みんなで立ち上がって「ロール、責務、コラボレーション!」と唱和。なんだこれw
  • 黙々と読書するという、他のセッションでは見られない不思議な雰囲気。
  • 読んでる箇所で疑問などがあれば、口頭で質問をするという仕組み。
  • すごくアットホームな雰囲気だったのに、僕はまったく質問できませんでした。人見知りしすぎ・・・orz
  • だけど、自分1人で読んでいただけではスルーしていたようなことに、気づきが持てるというのは面白い。
  • 僕も社内で勉強会を企画しているので、読書会を取り入れてみるのもいいかもしれない。
  • 最後の感想を求められたとき「時間が短かい」とか、ネガティブなコメントしてしまいスミマセン。楽しかったです。

LINQ and Visual Studio 2008 / LINQ(デブサミライブ)

  • Microsoftの波村さんのセッションと、.Netユーザーエクスペリエンス研究所/わんくま同盟のライブ。
  • LINQには、前々から興味はあったものの、ろくに調べもせずデータベース関連の技術だと思っていたので、手を出していませんでした。
  • しかし、今日のセッションを聞いてみると、LINQ to Objects や LINQ to DataSets , LINQ to XML などがあり、様々なデータに対して同一のクエリ記述を可能とする技術であるということが分かりました。
  • グルーピングやソートの処理が簡単に記述できるし、データの種別に依存しない。素敵です。
  • C#3.0の哲学としては可読性を重視している。HowではなくWhatでプログラムを記述する。
  • C#3.0の新機能、型推論var、オブジェクトのイニシャライザ、自動実装プロパティなどの紹介。面白い!Lightweight Languageの仕組みを取り入れたりしてるんですね。
  • Visual Studio 2008のインテリセンス、どんだけ賢いんだ!開発にはかなり苦労したとのこと。
  • LINQ to SQLでは、内部でSQLのクエリに自動変換している。この機能をテストするための工夫について波村さんが語りたがっていた。
  • ただし、LINQはIEnumerableに対するものなので、内部ではforeachが回っている。パフォーマンスには注意する必要があり。(2008/02/15追記:はてブでコメントしていただきましたが、これはLINQ to SQLの問題ではなくて、LINQ to Objectsの集計操作(Count,Min,Max,Sumなど)は、全件ループで回すのと同じだよ、ということだそうです。ご指摘ありがとうございました。)

デベロッパーテスティング・ライブ−自身を持ってコードを書くための心・技・体−

  • タワーズ・クエストの和田卓人さんのセッション。
  • 肩書は、プログラマ兼取締役社長。プログラマであることに誇りを持っているとのこと。カッコいい!
  • TDD講座の動画(http://gihyo.jp/dev/serial/01/tdd/)は、第1回だけ見て、そのまま放置してました。残りも後で見よう。
  • もっともタメになる初心者用言語はxUnit。なるほどw
  • 不安をテストにする。
  • 仮実装と三角測量法の組み合わせ or 明白な実装。どちらを選択するかは不安の度合いによる。
  • Developer Testingは、品質を担保するためのテストではない。開発者が自信を持ち、不安を克服するためのもの。
  • TDDは、才能ではなくスキルである。量は質に転化する。まずは写経から。
  • TDDはいつもやってみようと思うんですが、なかなかできないんですよね。しかし、こうやって目の前で実際にやってもらえると、雰囲気(リズムやつぶやき)が分かっていいですね。