2004-02-26(Thu) [Edit]
■1 『Batman: Intimidation』
ケン・ワタナビ当確のようで。今度のバットマンはガン=カタがナイジェル・パワーズとジェダイなラスト・サムライでドリームキャッチャーをメメントかー。すごいな。
■2 「@IT:サービス指向アーキテクチャの未来を考察する」(前編, 後編)
読み通した。これで完全に理解できたとは思えないが、以前よりは自分のなかでの見通しが良くなった気がする。
さしあたって理解したことは、SOAとEAが委員会とスーツたちの用語だということだ。オブジェクト指向やアスペクト指向と語感が似ているからといって同じ土俵に上げてはいけないっぽい。まずはここまで。
しかし、いつまでもここで思考停止していてはいけない。理解までの道程は遠い……。
■3 KataOneをRubyでプロトタイピング
takaiさんはなんでいつもこうカッコイイのだろう。
以前どこかで見かけた(ruby-talkだったかな?)問答を思い出す:
Q. テキストファイルに吐き出せる気の利いたモデリングツールって無いのかな?
A. あるよ。Rubyって言うんだけどね。
あとは『アナリシスパターン』(だったっけ?)に出てきた、概念モデリングのツールにSmalltalkを使うモデラが居る、というエピソードとか。
2006-02-26(Sun) 2005年12月88日 [Edit]
■1 PofEAA読書会:第10回
テーブルインヘリタンス3兄弟(Single, Class, Concrete) + Inheritance Mapper。Inheritance Mapperは頓知の利いた設計だと思ったが、このサンプルがC#なのはズルいな、と思った。JavaでもTigerだったら実装できるのかなあ。
予定よりも時間がちょっと余ったので急遽、Embedded Valueパターンをその場で読んだ。音読。第1回とか第2回の経験から、大人数の前で洋書をその場で読むのはキケン、と思っていたので邦訳を声に出して読んでみた——のだが、声に出して読んでも一向にアタマに入ってこない。ちょっと頑張ったけど以下の箇所で沈没。特に最後の一文でノックアウト:
「既存のスキーマにマッピングする場合、メモリ上の複数オブジェクトに分割するデータが、テーブルに含まれているのであれば、組込バリューを使って行う。このような状況が発生する原因は、オブジェクトモデルの振る舞いを抜き出すために、分離したオブジェクトが必要なのだが、データベースでメモリ上にある複数のオブジェクトすべてを1つのエンティティとして扱ってしまう場合である。この場合、Dependentの変更が、Ownerを不確定なオブジェクトとして扱っている(Owner内で置き換えられるバリューオブジェクトにとっては問題ではない)。」(p.289)
ここ、原文では:
「If you're mapping to an existing schema, you can use Embedded Value when a table contains data that you split into more than one object in memory. This may occur because you want a separate object to factor out some behaviour in the object model, but it's all still one entity in the database. In this case you have to be careful that any change to the dependent marks the owner as dirty——which isn't an issue with Value Object that are replaced in the owner.」(p.269)
となっている。もうちょっと声に出して読めるように訳すならば:
「既存のスキーマに対してマッピングするのであれば、テーブルのデータをメモリ上では複数のオブジェクトへと分割したい場合に埋め込みバリューを適用できるだろう。こうした状況が起りうるのは、オブジェクトモデル上では振る舞いを分割されたオブジェクトへと括り出したいのだが、データベース上では単一エンティティのままであるような場合だ。このとき注意しなければならないことは、依存オブジェクトに関するどのような変更も、オーナーオブジェクトをダーティ(変更された状態)にしてしまうということだ。ただし、バリューオブジェクトを使用しており、インスタンスがオーナー側で置き換えられるのであれば、これは問題とはならない。」(拙訳)
みたいな感じでは? 私の訳がこなれているとは言い難いが、これなら声に出しても読めるんじゃないかと思うのだがいかがか。現場では以後、洋書を黙読&その場でサマリ。うむ、わかりやすい。Embedded Valueは、RailsのAWDwRではActive Recordのaggregation/compositionとして紹介されている機能。compose_of。Hibernateだと……componentってやつ?
今回はドタキャン続出でかなーり落ち込んでいたのだけれど、懇親会でid:yyamanoさんに慰めてもらったので次回以降も淡々と開催するよ。次回は3/26(日)の予定です。次でO/Rマッピングのパートが完了する(はず)。
翻訳ネタを出したついでに、シングルテーブル継承の訳
今回の読書会で(も)騒然となった箇所について。シングルテーブル継承(Single Table Inheritance)の以下の箇所:
階層構造全体に、継承マッピングの1つの形式を使う必要はないことを忘れないでほしい。大量の特定のデータを持つクラスに対して、具象テーブル継承を使う場合は、1つのテーブル内にある類似した6つのクラスを完全にマッピングできる。(p.300)
という訳文があるわけだけれども。これに対応する原文は:
Remenber that you don't need to use one form of inheritance mapping for your whole hierarchy. It's perfectly fine to map half a dozen similer classes in a single table, as long as you use Concrete Table Iheritance for any classes that have a lot of specific data.(pp.279-280)
となっている。ううむ。わかりづらいけど:
「忘れないでほしいのだが、継承階層全体につき1種類の継承マッピングしか必要ないというわけではない。固有のデータが多いクラスには具象テーブル継承を利用しておいて、残りの似たようなクラスを単一テーブルへとマッピングするというのでも全く問題ない。」(拙訳)
ってことじゃないのかなあ。訳の巧拙というか日本語として成立してるかどうかの問題のような。いちいち指摘しないが、第12章は会場騒然となる翻訳が多かったように思う。レビュー重要。ヒトフリ・ワガフリ。
2011-02-26(Sat) [Edit]
■1 名古屋Ruby会議02に行った、ような
前日に名古屋入りするために新幹線に乗ったときから、なんか頭がボーlっとしてて『機動戦士ガンダム THE ORIGIN』(22)を読みすすめるのも必死、みたいな感じだったのだけれど、名古屋Ruby会議02の当日は完全にダメな感じ。座ってるがせいいっぱい。なので具体的な感想とかははてブのnagoyarubykaigi02タグだのみ。
個人的は名古屋Ruby会議01が、ちょっと枠組み先行な感じに見えたので心配していたのだけれど、今回参加したら、地元の人たちが、地域を縁にした周囲とのつながりを活かした Kaigi になっていたのでとても、とても良かった。名古屋の(わりと近所の)Hamamatsu.rbというのもできていたようで、これからの東海地方の活動が楽しみにな感じ。運営チームと当日スタッフのみなさん、お疲れさまでした&ありがとうございました。
しかしまあ「名古屋のRubyコミュニティが心配だから!」とかいってとちぎRuby会議03じゃなくてこっちに来たのに、逆にみんなから「大丈夫ですか?」と心配されてなんというかトホホ。
懇親会も参加予定だったんだけど、間の時間にちょっとホテルに戻って休憩しようと思ったら、そのまま気絶してて起きたら23:30だったという……。そのままもう一度寝たら翌朝はずいぶんと良くなったので、スーパーヒーロータイムを観て、山本屋で味噌煮込みうどんを食べて、名古屋駅でうなぎパイなどのお土産を買って帰京(これは名古屋駅なのにお土産屋でうなぎパイを売るほうが悪い)。
○ yojik [慣用句を計算してしまうなんて、邦訳版は頓知がききすぎ。 そんな中、何気なく half a dozen をググったら ..]
○ bakock [うわっ、すみません>ドタキャン 次回はちゃんと行きます]
○ かくたに [Nevermind!]
○ おおもり [当日はフォローありがとうございました。ググってみたら「half a dozen similar」のひとかたまりで「似..]