2005-05-01(Sun) [長年日記] [Edit]
■1 
すみた
義母と妻、そして息子を東京駅まで見送った後、返す刀で突撃。
- 肉玉ぶっかけ(冷)++
- 生醤油(海苔抜き)
生醤油は先達のアドバイスに従って海苔抜きで。っていうか初めて注文したのに「海苔入れる?」と訊かれた。
すみたの後は、7時間におよぶ作戦会議。背水の陣。
2005-05-02(Mon) [長年日記] [Edit]
■1 Quick JUnit 0.0.4 のEclipse 3.0.xでの動作について
基本的には動作するのですが、3.0.x系では:
- 「テスティングペアを開くときにエディタを分割する」をオンにすると動かなくなる
- 複数のテスティングペアが存在する場合の切り替えが、マウスクリックでしか行えない
という既知の問題があります。ご注意を。
「テスティングペアを開くときにエディタを分割する」は、masarlさんが「こんな余計な機能入れるんじゃなかったなあと後悔してるんですけど.」と言っていたこともあってか、0.1.0では無くなる予定です……というかmasarlさんがソースをリポジトリにimportした時点で既に無くなってました。
複数テスティングペア間の切り替えの問題は、0.1.0でFIXされています。
Quick JUnit 0.1.0のリリース時期について
だいたいコードは動作確認できているのですが、ちょっと色いろありまして、リリース可能な状態になるのは連休明け以降になる予定です。
ちなみに、0.1.0というのはmasarlさんの遺したバージョン番号で、Eclipse3.0.x系に対応させる予定だったみたいです。なので、Eclipse3.1系には0.2.xとして対応していこうと思ってます。
■2 オレの考えた開発プロセス
(「参照先」が必要とのことなので、mixiの日記に書いた思い付きを使い回し。)
Magica and Modeling with Ruby。バズワード的には:
MMR。
な、なんだってー(AA略
MMRの工程
- 工程0: Magicaセッション
- IN: 現場の声
- OUT: Magicaの分析結果
- 工程1:ストーリーを書く。
- IN: Magicaの分析結果
- OUT:ストーリーカード
- 工程2:ストーリーに対するテストを書く
- IN: ストーリーカード
- OUT: *-test.rb
- 工程3:テストが通るように"モデリング"する
- IN: *-test.rb
- OUT: *.rb
あとは、工程 3 → 2 → 1 というフィードバックをもとに、次のサイクルを開始。
まとめると:
Magica <-> ストーリーカード <-> テスト <-> モデリング
MMRでプログラミングが不要に
上記からも明らかなように、"プログラミング"工程はそもそも存在しない。プログラミング不要。ひたすらモデリングあるのみ。ただし、モデリングの成果物はRubyによるソースコードである。
大事じゃないほうのUMLなどによるダイアグラムや自然言語による文書は必要に応じて作成するが、それらはあくまでも 「モデリング成果物」の理解を補足するための二次成果物である。
MMRでモデリング議論の空中戦を回避
工程からも明らかなように、MMRではテストを先に定義する。これにより「モデリング」技法についての議論の空中戦を排除する枠組を提供する。テストをチーム内の共通のゴールとすることで「You vs. me」の構図から「Problem vs. us」への転換を促進する。
MMRで「顧客にわかるモデリング」が無用に
顧客とのコミュニケーションはMagica(とその派生成果物。たとえば清書したVisioとか)で行う。忙しい現場の担当者に開発者の論理で箱と矢印の読み方を覚えさせるような押し付けは無用。
MMRとUML
MMRによるモデリング成果物はテキストファイルによるソースコードなので、大事なほうのUMLと親和性が極めて高い。MMRによるモデリング成果物を大事じゃないほうのUMLで可視化することについては、今後、捺印ナビリティ的に重要になっていくだろう(現状は未解決な課題)。
MMRとMDA、あるいはbuzz word haiku
MMRによる成果物である「モデル」は、PIM(Platform Independent Model)である。しかし、PSM(Platform Specific Model)への「変換」は必要ない。というのも、PSMはもちろんDI x AOPであり、これはPSMというよりもむしろPSR(Platform Specific Runtime environment)とでも呼ぶべきものだからだ。そして、PIMたるMMRの「モデル」は言うまでもなくPORO(Plain Old Ruby Object)である。
つまり、MMRの成果物はPOROなPIMでランタイムにPSM(PSE)がinjectするMDAなのだ。これは「ソフトウェアの進展とはすなわち抽象化の進展である」というソフトウェア史的唯物論のテーゼとも合致する。
いまいちど繰り返そう。諸君、ここが約束の地だ。
補足(1)
以前に、似たような妄想で「programmer testを『テスト』と呼ぶと、各方面から要らぬ誤解を受けて面倒くさいからこれからはもう『スペック』って呼ぼうよ」とmixiでボヤいたら、kdさんから「本流が道を譲ってどうする」と叱られた記憶がある——のだけれど、mixi日記は過去に書いたものを手繰る術が面倒で見つけられず(脳内やりとりだったかも?)。
これはMMRについても同様。「プログラミング」に正当な評価を与えるべく活動すべきだ。でもなー、手強いんだもん。
補足(2)
上記はMagicaの提供元であるスターロジックさんとは一切関係ありません。すべて私の妄想ですので、くれぐれも誤解なきよう。
2005-05-03(Tue) [長年日記] [Edit]
■1 3. どうしてコアインターフェースには"Bag"(マルチセットともいう)が無いのでしょうか?
Java Collection Framework 設計FAQ。原文と、翻訳。以下は素振りを兼ねた拙訳:
CollectionインターフェースがBagに相当します。私たちは公式のBag実装を提供していません。というのも、Bagが"その重さに見合う"ほどは頻繁に利用されないだろうと考えたからです。BagのようなCollectionを返したいことはなくもないですが、その場合はAbstractCollectionを直接利用した実装で事足ります(たとえば、Map.valuesメソッドが返すCollectionとか)。
2005-05-09(Mon) [長年日記] [Edit]
■1 アナウンス: 更新頻度が落ちます。
既に更新頻度は落ちているのですが、いわゆるゴールデンウィークが終わってしまいました。よんどころなき事情により、しばらくの間は更に更新頻度が落ちます。
mixiにひとくちゲロるので精一杯かと。
2005-05-10(Tue) アジャパでReflection [長年日記] [Edit]
■1
『Maven: A Developer's Notebook』
キター!! vmassol総研プレゼンツ(tobrienとかも共著みたいだけど)。2005/07/01発売予定。
Developer's Notebook(開発者ノートシリーズ)なので、256p(予定)という分量も嬉しい。
2005-05-12(Thu) [長年日記] [Edit]
■1
PofEAA読書会:第3回参加者募集のお報せ
復活の狼煙。以下に要項を書いていますが、Wikiの記述を1次情報と考えてください。開催場所の詳細は追って連絡予定。
開催概要
- 日時:2005/05/22(日) 13:00〜17:00頃
- 場所:たぶん田町(詳細は少々お待ちください)
- 参加費:無料
内容(予定)
- ポジションペーパー(立場表明書)ベースの自己紹介
- 「PREVIOUSLY ON Reading PofEAA」-- 前回までのおさらい
- 「第3章: Mapping to Relational Databasespter(リレーショナルデータベースへのマッピング)」の概要
- リレーショナルデータベースへのマッピングに関するパターンについて
参加するには
- 後述する参加申込方法にしたがって、メールを送ってください。
- 当日までにポジションペーパー(A4一枚サイズ)を御用意ください。
- プリントアウトして配布してもらいたい方は、5/19(木)までに、shintaro@kakutani.comまで送ってください。
ちなみに、当日に以下の役割を担当していただける方を募集しています
- ファシリテーター -- 熱烈に募集しています
- 書記
担当していただける方は、参加申込の際にその旨を伝えてください。
参加申込方法
shintaro@kakutani.com 宛に「PofEAA読書会第3回参加希望」みたいな感じのメールを送ってください。 本文には、参加者の名前ぐらいは書いていただけると助かります。 メールの宛先は読書会メーリングリストの宛先とは全く異なります。ご注意ください。
また、読書会メーリングリストへの 参加もお待ちしております(強制ではありません)。
申込締切
- 2005/05/18(水) 17:00
注意事項
- たぶん大丈夫だと思いますが、申込多数の場合は、何らかの手段が講じられる可能性があります。
2005-05-13(Fri) Oruvan Oruvan Mudhalali [長年日記] [Edit]
■1
主はただ一人
Sarge対応、『Debian 辞典』。逆引リファレンス期待だー。
■2
『のだめカンタービレ(12)』
なぜかウチにも全巻あるわけだが。
2005-05-17(Tue) [長年日記] [Edit]
■1 Quick JUnit Plugin 0.1.0 リリース
sf.jpからの最初のリリースです。Eclipse3.0対応。ソフトウェア更新が利用できます。 もっと早くここまで持ってくるべきでした。開発は今後も地道に継続していきます。
0.0.4 ユーザの方は「ソフトウェア更新」をする前に、手元の$ECLIPSE_HOME/pluginsにインストールされている、0.0.4を削除してから「ソフトウェア更新」を行なってください。
■2 PofEAA読書会 第3回、参加者募集ちゅう締切
締切は5/18と目前ですが、人数にはまだ余裕があります。現在の参加予定者は今までにない感じ。すごく楽しみ。
締め切りました
PofEAAなパターンを軸に、RubyからSeasar2まで、アジャイルからエンタープライズまで、これまでにありそうで無かった顔合わせになりそう。
2005-05-22(Sun) [長年日記] [Edit]
■1 PofEAA読書会 第3回、終わりました
会議室を提供していただいたオージス総研さん、ありがとうございました。一名、合流し損ねたのはダンドリスト失格だったが、それを除いては(ってクリティカルだけど)、再開第1回としては及第点は取れたかな、と思ってますが真実は出席者の心の中にある。
ポジションペーパーベースの自己紹介にキッチンタイマーを持って行ったのは正解だったと思う。心を鬼にしてタイムボックスを優先——ってあまり出番はなかったけれど。人数が多いので、興味深いところにツッコミを入れられなかったのはトレードオフか……。ここらへんは、参加者の皆さんに、己のポジションを踏まえて本編で絡んでいってもらったり、呑み会での話のキッカケとかにしてもらうことということで。私のポジションペーパー(PDF)もいちおう晒しておきます。
次はkdさんによる「PREVIOUSLY ON READING PofEAA」で第1章と第2章をコンパクトにすっきりまとめていただく。ここは常に面白いところだと思うのだけれど、素通り。ちょっと勿体なかった。
さて第1部。WRさんがサマリを用意してくれたおかげで、読書会の流れができたのはよかった。けど、全部まとめて行っちゃわずに途中で休憩入れるべきだったかも……。ペース配分が難しい。議論の内容自体は面白いんだけど、若干発散気味だったかもしれない。けれどまあ、何でもまとめればいいってもんでもないかな、と都合よく考えてみることにする。
第2部。高橋さんにn度目の「Railsな考え方」を説明していただいた後、ひがさんから「ActiveRecordとS2DAOは同じ方向性である」とのことで、「Railsな考え方」を使ってS2DAOの紹介をするという妙技が炸裂。読書会の旗を振ってよかったな、と思えた。S2DAOはPofEAA的に説明すれば「Table Data Gateway + Data Mapper」とのこと。
本編のクロージングでは、軽く(ほんとうに軽く)Keep/Problem/Tryのリフレクションをやって、終了。私が弱気だったので、次回のサマリ担当者と日程を決められなかったのは心残り。読書会の存続がサマリ担当の方の双肩にかかっているので、ここはassignするのではなくsignupしてもらいたかったのだけれど……。
本編終了後は、天気も悪かったので、近くの和民へ。私は21:00頃に退散しちゃいましたが、お付き合いいただいた皆様、ありがとうございました。わざわざ京都から日帰りで参戦したbabieさんに楽しんでもらえたのかなぁ。
追記:PofEAAのWikiにTrackBackできるようになりました
kdさんありがとうございます。
で、第3回のページにTrackBackできるようになりました。ウェブロ持ちの皆さん、ご活用ください。
反応リンクエントリを見る(なんでPofEAAのWikiにできないのか!とWiki厨っぽく憤りをあらわにしてみる)に、ここで挙げられているリンク先はみんな TrackBackが撃てると思うので、ご協力をお願いします。TrackBackならexcerptも表示されるので、ちょっとの手間でそれなりのモノになるかな、とちょっと期待している。
ウェブロ持ちじゃない方はページを編集して感想とか書いちゃってもらってもOKです(そのためのWikiだよね)。
qwik.jpに投げたメールが流れてこないので(私だけ?)こちらにも書いてみた。
個人的に伝えるのを忘れてたこと
- 高橋さんに「レッシグたんも高橋メソッドでプレゼンしてましたよね」と言いたかった(既出?)。
- yyamanoさんに『Java Testing Patterns』のことを訊きたかった。
- thataさんは言語ヲタということでよろしいか。
2005-05-27(Fri) [長年日記] [Edit]
■1
『Agile Web Development with Rails: A Pragmatic Guide』β版
PragDaveのアナウンスを見てPDF版を即購入!!
……セクション「1.1.Rails is Agile」ドーン!! 肌が粟立つ。
追記: 「1.1. Railsがアジャイル」
- 本書のタイトルは「RailsでアジャイルWeb開発」だが、本文にアジャイルプラクティスの適用に関するセクションは無い。
- と、いうのもアジリティはRailsに織り込まれているからだ。
- Railsとはすなわち、開発者と顧客との対話であり、Railsとは顧客とのコラボレーションを促進するものである。
- Railは、従来の顧客と開発者との対立を、"「こうしたらどうなるかな?」セッション"へと変えていく。
- (が、ドキュメントをうっちゃるものではない。HTMLドキュメントの生成をサポートしている)
- Railsなら変更は簡単だし、ちゃんとしたテストを書いていれば、「壊しちゃうんじゃないか」という不安も減っていく。
- と、いうわけで我われは「Railsにおけるアジリティ」をRails自身に語らせることにした。
- Railsの内部構造を理解すれば、顧客のニーズにより素早く応えられるようになるだろう。
- アジリティとRailsの関係について最後にもうひとつ。アジリティがどうのこうのと気にかけていなくとも、Railsでならコーディングがとっても楽しいものだと思うようになること間違いなし。
2005-05-31(Tue) [長年日記] [Edit]
■1
『スター・ウォーズ クローン大戦 VOLUME ONE』
やっと来た。……いつ観ることができるのだろう。VOLUME TWOのDVDはエピソード3の公開には間に合わないんだよね。タルタコフスキーがんがれ。超がんがれ。
■2 「動的言語と静的言語の交差点──RubyとJava/Seasar2の出会い」
arton特派員による、こないだのPofEAA読書会 第3回でのひがさんによる「S2DAOな考え方」の考え方。日経ITPro上でこの時期にRuby on Railsの文字が躍るのは画期的ではあるまいか。
- インタフェース・マター
- 「プログラム」への回帰、大規模/中小規模での不連続変化
- 「オレはXMLは嫌いじゃないよ」
- 最後にクレジットがッ!!!(わーい)
ちなみに、RoR(AR) X S2DAOのカードを考えたのはオレだ!! と言っ張っとこ。といってももちろん、私がartonさんの記事のような着想を持っていたわけではないけれど。
○ ごうぎ [Quick JUnit導入してみました。3.0.1でちゃんと動きました。Eclipseを本格的先月から使い出した身で..]