平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

デブサミ1日目ちょっとだけ行ってきた

仕事抜けて顔出してセッション聞いてまた仕事に戻ったのだった。

【12-D-5】M + MVC 〜最新マイクロソフトWeb 開発動向 Ruby on Rails に追いつけ!追い越せ!〜

アークウェイ森屋さんのLive Coding。ちょっと遅れたので途中からになってしまったのだが、最初はRoRの開発例を見せて、「これと同じようなことをMSテクノロジーでやります」ということだったらしい。
で、選んだ技術はオモロー!!


オモローのナベアツ [DVD]

ではなく“Oslo”。
Osloの概要はInfoQのOslo記事を読めばいい。
あれですよ、“M言語”とかいうのを発表して、MUMPSのM言語とバッティングしてしまったという。

開発のイメージは青木さんのエントリが分かりやすい。

森屋さんは、これとASP.NET MVCを使って25分程度でECサイトのプロトタイプを作るというのをやってた。
M言語でModelを作ってSQL Serverに登録、ADO.NET Entity FrameworkでデータアクセスするコードをControllerに書き、表示用のViewをセットで作成。これを淡々と繰り返していた。
実際には2人組で、森屋さんが作業手順や内容を説明している間にもう1人がひたすらコードを書く、という分担になっていた。(入力ミスが多かったのはご愛嬌)。
しかし、ほんとに時間内でECサイトの形になっていたのがすごい。本を選んでカートに入れ、会員登録とログインを挟んで注文完了までやりきっていた。

【12-A-6】オブジェクト指向エクササイズのススメ


ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

ThoughtWorksアンソロジーより、オブジェクト指向エクササイズ。

  1. 1つのメソッドにつきインデントは1段階までにすること
  2. else句を使用しないこと
  3. 全てのプリミティブ型と文字列型をラップすること
  4. 1行につきドットは1つまでにすること
  5. 名前を省略しないこと
  6. 全てのエンティティを小さくすること
  7. 1つのクラスにつきインスタンス変数は2つまでにすること
  8. ファーストクラスコレクションを使用すること
  9. Getter,Setter,プロパティを使用しないこと

これに沿って設計を変更するサンプル。Amazonの書籍情報を取得してコンソールに表示するアプリケーション。
書くものを持ってなかったので、記憶を頼りに再構成。なんか怪しいところがいっぱいあるけど、まあいい。オブジェクトの広場でいずれ資料が公開されると思う。(追記:公開された。)

Before
http://blog.inomata.lolipop.jp/images/devsumi_model1.png
After
http://blog.inomata.lolipop.jp/images/devsumi_model2.png

アンソロジー本は読んでないけど考えたことを書く。

上記の9つのルール。これはエクササイズであって、プロダクトコードのための規約ではない。たぶんメンターみたいな人が指導する時に、練習として書かせてみるのがいい。そして、その時に学ぶことは、実戦でも有効だ。イメージは「ワックスかける!ワックスふきとる!」

ルール1と2は、つまるところ「リファクタリング」だ。メソッド抽出とかガード節とか。
ルール3と8は何を言っているか。Javaのプリミティブ型はオブジェクトじゃないとか、そんなことじゃない。型システムによる抽象化を練習しろってことだ。オブジェクト指向に限った話じゃない。データモデリングにおける定義域もそう。だから、「組み込みの型をそのまま使わない」というのがより本質的なルールとなる。Haskellやってる人なんかは特にこのあたりの重要性を分かっているのではないか。
ルール9はドメインモデル貧血症の予防エクササイズだ。あンたのモデルにはドメインロジックが足りているかい?

こういう練習を積み重ねることで、OOPSLA学派――アジャイルオブジェクト指向&パターン&TDD&DDDの混ぜ合わせ――のやり方を身につけていくことになる。身についてしまえばこっちのもので、実戦においては状況に応じて最適なやり方を選べばいい。守破離の段階を踏めということ。「形を持つ人が形を破るのが型破り。形がないのに破れば、形無し。」という言葉もある。

……なーんて。えらそうなこと書いたけど俺ぜんぜん実践できてねぇし!(以前書いてみたNTTドコモの料金計算モデルの粗が見えてきたので書き直したい。)

安井さん角谷さんにサインもらった

アジャイルな見積りと計画づくり』をゲット。未読だった『インターフェイス指向設計』も探したんだけど見つからなかった。でもサインもらう準備はできた。
その後、休憩時間中に各ブースをきょろきょろ。あ、角谷さん安井さん発見!
http://blog.inomata.lolipop.jp/images/agilebook.jpg
角谷さんに名前覚えててもらってた。光栄です。握手もしてもらったぜ。イェイ。角谷さんセッションにはぜんぜん間に合わなかったんだけども。

Springでバッチ処理

まだやってるかなー、と覗いてみたら、なぜかスピーカーじゃないはずの山口くんがしゃべってた。

【12-D-7】コミュニティから選出のLT大会

印象に残ったトークを抜粋。

勉強会勉強会
たぶんよしおかさんは、ちゃんとドラを鳴らすようにしゃべってたんだろうと思われる。
Linuxコンソーシアム
LTを漫才スタイルでやった人を初めて見たよ。(ツッコミ担当は典型的スタイルではなかったなあ。)リッチクライアント。Welrich。
オブジェクト倶楽部
というより懸田さんが沢マンについて熱く語るトーク。KentBeckとアレグザンダーとの関連について知ってるとなお楽しめる。よしおかさんは食いつきが悪かったなあ。
要求開発アライアンス
キン肉マンスーパーフェニックス言いたいだけちゃうんかと。;-)
日本Rubyの会
開始後すぐに高橋メソッドに移行。「先人の教え=半年ROMれ」ww
わんくま勉強会
IIJIMASさん。すっごい緊張していたが、それが逆によかったのか、ふしぎなおもしろみを生んでいた。ドラ娘大笑い。
grails code reading
山田正樹さん。大物来たー。ちょっと挑発しながらお下品な ;-) Grailsの紹介。