2005-10-23(Sun) ハテナオヤ来たる [Edit]
■1 PofEAA読書会:第7回
終了しました
開催直前に私が数日間、沖縄にてIPが届かなくなり一時はどうなることかと思いましたが、無事終了しました。みなさんご協力ありがとうございました。
さて。トラックバックするまでが読書会です。参加された方がたは是非、トラックバックをお願いします。宛先は、http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/index.cgi/tb/ReadingPofEAA007 です。次回は12/4(日)です。私の参加メモは後ほど。
今日は東京国際映画祭にテリー・ギリアムが来てたのか……。
読書会で出た話と自分の気づきと自分の後づけの感想がごっちゃになってます。
Table Data Gateway(TDG)
- 発表者であるわたなべさんに、書籍の.NETなサンプルを解説してもらった。一人でサンプルを見ててもわかった気になるだけだったので参考になった。
- J2EEパターンに出てくる、みんな大好きData Access Object(DAO)パターンは、これ。
- S2DAOはTable Data Gateway(と、第3回のときにid:higayasuoさんが発言していたと記憶している)
- 基本的にはステートレスなSQLのラッパー
- ステートレスといっても改ページ(pagination)の仕様によってはそうも言ってられないよね?
- クエリ発行時のスナップショットでページを繰りたい場合など)
- findメソッドで何を返す? → Map, DTO, RecordSet, DomainModel
- 山野さんの資料(PDF)にDTOのバリエーションのまとめがある。
- 「TableDataGatewayのメリット」について私がoginoさんに何やら語ったらしいのだけれど、一切覚えてない……。何を言ったんだろう。気になるのでフォロー希望。
Row Data Gateway(RDG)
- 和田さんの発表スタイルが素敵。「俺はここがわからん」という疑問に参加者を巻き込んでいくインタラクティブな形式。
- 邦訳では「行データゲートウェイ」
- 1レコードにつき1クラスが基本。型マッピングもRDGで面倒を見る。
- Active Recordからロジックを抜いたもの。TransactionScriptと併用することが多い
- TransactionScript + Row Data Gateway から、Active Recordへの進化もアリ
- ドメインモデル採用時には、Active Record(AR) または Data Mapper(DM)。ARとDMとの分水嶺は複雑度7.42。
Active Record(AR)
- 資料の前半がすさまじくコンパクトにまとまっていて良かった。後半はRuby/Railsに親しみが無い人置いてけぼりっぽい印象も受けたけど、どうだったのかな。個人的にはhabtmやact_as_*の話を聞けたのが収穫。デモはRailsじゃなくてActiveRecord + irbにしたほうが焦点が絞れたかもしれない。
- RailsのActive RecordはもはやPofEAAのActive Recordではない
- RailsのARでは関連・コレクション・継承も扱える
- ファウラーのARの定義は車輪の再実装が前提なので、関連・コレクション・継承は扱わない
- リスト、ツリー構造も表現できる。再帰的な多:多はどうなの?——「できました」と、ゴロウさん。その場で実装。カッコイイ。ビルトインの機能としてサポートされてるかはこの時間では不明。
- 継承はすべてSingle Table Inheritance
- DBのテストにはモックとかケチ臭いことを言うな。MySQLは速い。すべての開発関係者のローカルPCにMySQLを。うーん。そうなのかなあ。Mike ClarkもRails1.0でテスト時のクエリの発行回数が減って速くなった!!とか言ってるし。「ゲームのルール」が違うんだよな。
- (RailsのARの実装は)「実に豪快」
- MySQLの使い方のパターンを誰かまとめないのか。MySQL Session Stateとか。
- MySQLがコネクションプールを持たないのはプロセス単位接続でも十分速いから、だっけ?(うろ覚えだったので読書会では言ってない)
Data Mapper
- id:bakockさん。発表が前回よりも落ち着いてソツなくなっている。場数効果かしらん。まとめ方のフレーズがbliki_jaっぽいのが個人的に好感。「そこでLazy Loadですよ」とか。
- 11章の前振り的なところも多いけど、あの分量をよくまとめたなあ、と感心。
- 後ろが必ずしもテーブルである必要はない(VIEWだったりストアドプロシージャだったりしても良い)というのがこの章の基本姿勢なのだけれど、全然違うデータソース(たとえば、Webサービスとかファイルとか)を透過的にデータマッピングできるようなツールは出てきているのだろうか?
その他
- id:ogijunさん、名札ケースありがとうございました!!
- まだまだ改善が必要なポジションペーパー配布方法
- id:naoyaさんから「はてなブックマーク」ブックマークをお土産にいただいた。
- id:koichikさんのポジションペーパーが印象的だった。YAGNIとKISSもTHINKあってこそ。
- id:secondlifeさんから「BDDというかRSpecどうなんですか?!」と言われて、テキトウに答えてしまった。これについてはTDDとBDDについて、別エントリを書いたつもり*1。
*1 書いてません。念のため。
2007-10-23(Tue) 風邪ひいた [Edit]
■1 「第7回 CodeGearデベロッパーキャンプ」に登壇しました
『JavaからRubyへ』の宣伝をしてきた(まだバグが残っています。すみません……) 。一時はスライドが完成しないかと思って泣きそうになった。資料はslideshareとkakutani.com内にPDFで置いときます。
内容としてはこれまでの一連のトークを踏まえて(再利用ともいう)、さらにDave ThomasのRubyKaigi2007のスライドを使わせてもらった。それから、行き詰まったときにid:snoozer-05のRuby札幌方面のスライド群をうっかり見てしまったのでインスパイアされまくり(向こうもこっちにインスパイアされてるっぽいから、これでいいのだ!ということにしておこう)。Ruby札幌++。
今回の初チャレンジは、irbを使っての簡単なデモ(なのにtypoした……)。質疑応答は無理矢理やらせてもらった。まだまだだなあ。
質疑応答で質問していただいた方々をはじめ、聞いてくださった皆さん、登壇の機会を提供してくださったCodeGearの皆さんありがとうございました。
3rd Railはるびま0021号でプレゼントもありますよ(10/27〆切)。これまでEclipseで開発していて、Rubyに興味はあるけど、だからといってEmacsやVimというのもなあ、という方は試してみるとよいかも。私がちょっとだけ使ってみたうえでのファーストインプレッションは後述。
「{:from => 'Java', :to => 'Ruby'}」
- PDF(kakutani.com)(4.6MB)
- slideshare
■2 3rd Rail ファーストインプレッション
CodeGearさんのご厚意で、ちょっと試させてもらえたので試してみた。テラRCPwwwww。
Eclipseでの開発に慣れている人にはとっつきやすいかもしれないけれど、個人的にはそれが却ってむずかった。というのも、私の脳内コンテキストがRCPとかEclipseっぽい見た目のツールを触っているときはJava脳で、Emacs(ごくたまにvim)で書いているときはRuby脳、というコンテキストになっている。なので、ツールの手触りはJavaなのに、書いてるコードがRubyというのはものすごく疲れた。camlCaseで変数を命名しちゃったり、うっかり行末にセミコロンを入れちゃったり。
メソッド補完やソースコードのナビゲーション、インクリメンタルなOpenType(正式に何と呼ぶんだっけ? Ecipse使いならわかるよね?)は結構頑張っている感じ。(RCPだから同然だけど)プロジェクトの概念があるのはよいな。Rails2.0のコードを追いかけるのに一度使ってみようかなあ。一方、私が試した時点で残念だったことは:
- 自力でTest::Unitを実行させてグリーンバーを出す方法を見つけだせなかった
- 自力で普通のRubyコードのリファクタリングをできなかった(諦めた。Railsならできる?)
テスト実行に関しては昔のRDTでも出来ていたので、これが無いのは悲しい。RSpecを!とは望まないまでも、せめてTest::Unitは実行できて欲しい。ちなみにTextMateではRSpecの実行がオフィシャルにサポートされているっぽい(私は使ったことないけど)。
リファクタリングはクラス名を選択して右クリックしても何も選べず。よくわからんかった。EclipseがJava IDE界でアタマひとつ飛び抜けられたのは、"無料"というのもあるけれど、プロジェクトの概念とテスト実行とリファクタリング機能の統合が大きかったと思っているので今後の機能追加に期待したい。
昨日のAkasaka.rbには体調不良で行けなかったんだけど、JRubyでプラグイン書いて普通の速度で実行できるようになったりすると夢が広がるね。
○ TrackBack [http://www.web-career.com/kawaiblog/2007/10/24/1333.html 川..]