本が届きました

とはいっても届いたのは3日前くらいなんだけど、ふらふらと読み始め。

RailsによるアジャイルWebアプリケーション開発

RailsによるアジャイルWebアプリケーション開発

最初は Rails で作るサンプルアプリケーションの解説になっていて、まぁそれはそうだよな、と。で、ActiveRecord の id の話で先走って 「14.1 主キーとID」を斜め読みすると、、、(... は勝手な中略)

id みたいな人為的な主キーを使う...理由は、主に実用面の都合からです。...独自に用意した内部値を主キーを使うと、...実質的には行と、その行のデータの外部表現との結びつきを切り離したことになります。

はぁ〜、 ActiveRecord の実装上の都合なんかではないのですね。主キーは「唯一」かつ「不変」でなければならないんだけど、「不変」のほうは人為的な値でないと難しいよね〜、ってなことか。そうか、こんなんでいうと Hibernate さんが、やっぱり自動で主キーを振りたがるのも同じだなぁ、と思いつつ、なんで Hibernate さんのドキュメントには、この思想が載っていなかったのだろうと不思議に思う今日この頃。いや、ぼくが読みこぼしていただけかもしれんのだが、、、

で、この話は、こないだデブサミ2006 で羽生章洋さんがしていた話と同じだなと思ったのであります。
(このへん http://pcweb.mycom.co.jp/articles/2006/02/14/ds2/ に内容まとめがある)
そっちでは、内部的な id の説明の中で、納得した理由として

Java とかでいうと、VMが勝手に管理してくれている、インスタンスの ID なわけですよ

ってなことだった(はず)。そうだよね、ウラで勝手に参照を解決してくれるのだから、それに任せて、プログラマーは楽しいところ(本質的なロジックに頭をひねるとか)を享受できるのだ、きっと。
最初は、実装の上で楽だからやってるんだろうと思っていた id 、深い話だ。合掌。

なんにしても、こんな本を邦訳して出版された、前田氏とオーム社に感謝。