mixiのCAMEL ON THE ROADコミュニティより、Camelの映像。すごいな。
ほかにも「Camel Latimer」で検索するといろいろ出てくるよ!
|
おもしろく生きたいね
|
|
2006年9月の記事一覧おととい以来の体調不良が続き、結局今日も何も食べずに夜を迎えた。ほぼ丸二日の間、固形物を何も食べていない。フルーツジュース数杯と、黒糖飴二粒しか口にしていない。なのに、空腹を感じない。 腹が痛いことはないが、何か黒いものが居座っているような感覚だけがある。いまだに出る物があるので、胃や腸の中に何か悪いものが居るんだろう。うー。 「O/R マッピングの是非」に触発を受ける。PerlではClass:DBIやDBIx::Class, RubyではActiveRecordなど、今やO/Rマッパー全盛時代だ。確かに、開発効率や生産性について言えば、O/Rマッパーを使うとだいぶ楽な気がする。getter/setterを書かなくていいことに始まり、templateやvalidatorと強力に連携してあっという間にレコードのCRUDインターフェースを実現してしまう。 一方で、チューニングの余地がほとんどない、安易なテーブル設計に流れがち、トラブル時のデバッグが面倒、などの点がデメリットとして挙げられる。 DB設計の肝は、ディスクアクセスをいかに減らすかにある。シーク効率のために固定長レコードを指向し、テーブルを正規化して分離し、個々のテーブルサイズは抑え、必要なものだけjoinする。これが従来からの常識だ。 ところが、さまざまなプレッシャーから実行効率よりも開発効率が追い求められ続けた結果、いわゆる「量の革命」の追い風もあって、こうしたパラダイムはないがしろにされつつある。 冷静に考えれば、DBの帯域やCPUパワーなどの量的な力は、相対的にはさほど飛躍していない。サーバの単価あたり性能が数倍になっても、その間に利用者人口は10倍、100倍に膨れあがっている。企画から2,3ヶ月でサービス開始に漕ぎ着けるスピードは欠かせないが、運用や改修で泣きを見る例に事欠かないのもまた事実だ。 後からリファクタリングしようにも、モデル層はカプセル化・ブラックボックス化されてしまっている。フレームワークの奥深くに手を入れてスパゲッティ化させるリスクを冒すのもためらわれる。ロジック層で打てる手は少なく、局所的なキャッシュや動的生成の静的化でしのぐのが精一杯。機能追加や改修においては常にパフォーマンスがネックとなるが、パフォーマンス予測を立てること自体も困難になっている。…といった具合。 設計アプローチを考ると、そもそも、リレーショナルデータモデルにおいては整合性や効率に重きが置かれ、オブジェクトモデルにおいては可読性や再利用性に重きが置かれるものだ。こうしたギャップ(インピーダンスミスマッチ)を埋めるためにO/Rマッパーがあるのだ、という位置づけはしっかり理解しておかなければならない。O/Rマッパーを使う場合でも、ユースケースをきちんと分析してモデルを設計するということをしなければ、MVCの歯車をつつがなく回し続けることはできない。 一般に、テーブル設計をクラス設計に擦り寄せれば、リレーションを駆使する必要は減る。この罠にはまると、オブジェクトクラスにそのまま対応させたテーブルを作ってしまい、コードの見かけはきれいでもデータはぐだぐだな代物ができがちだ。O/Rマッパーは可読性と開発効率をもたらすが、再利用性にはほとんど寄与せず、実行効率に至っては大きく犠牲にしている。このトレードオフのために、データの整合性を自ら捨てる手はない。 パフォーマンスを考慮するならば、まずテーブル設計ありきの方針を徹底するべきだろう。O/Rマッパーは基本的にO/T(able)マッパーとして使い、R(elationship)については極力自分で面倒を見る。プログラム側で複雑なDB処理がある場合は、積極的にストアドプロシジャの利用を考える。 短納期で設計フェーズもほとんどない開発の現場で、よいパラダイムを互いに啓蒙しあって共有し、いかに保守運用まで含めて品質の高いものを作るかというのは大きな問題だ。結局は知識とセンスだよな、と言うのは簡単だけれども。 阿佐ヶ谷に戻り、こないだ「すもり」に行ったときに気になった向かい店、「めしや一膳」に行ってみた。 つまみも酒もいろいろ気になったけど、あまり調子がよくないので焼魚定食だけ注文した。秋刀魚か鰺か鯖、とのことなので鯖にした。 濃いめの味付けのカボチャの煮付けが、久しぶりでおいしかった。鯖は、初めは慎重にほぐして食べていたが、途中で骨が全部抜いてあることに気づき、めんどうになって丸かじり。ごはんの固さもほどよいし、ここは定番のひとつにできるかも。 次は刺身で一杯飲みたいね。 紅茶で涼んで落ち着いたら南口に出て、本当に久しぶりにSmall Musicへ。氷川神社の手前のマンションの3Fだよ。 相変わらず幅広いジャンルのCDがそろっている。前は足元にちょろっとあるだけだったプログレコーナーが、まともな高さに移動して、ちょっと扱いがよくなった感。MagmaとかSoft Machineとか、メジャーなのが揃ってるし。さっそく釣られクマー。 今回はちょっとブラジルの音楽もいいかなと思って、Caetano Velosoの作品を二枚ほど借りてみた。日曜なので”Domingo” (Gal Costaとの共作)、そして弾き語りアルバムの”Caetano Veloso“。 また生活に彩りを取り戻さなきゃ。 店内は明るく、かつ落ち着いた雰囲気。女性客が多いがボリューム感のあるワッフルを目当てにしてか、男性客もぽつりぽつりと来ていた。 さっそく、ダージリン・フグリ農園1stフラッシュとピンクグレープフルーツとライチのプリザーヴ・アイスクリーム添えを注文。(すごい名前だなんて言っちゃだめだ) 暑い中を来たので、鼻や目より先に体で飲んでしまい、あとで後悔した。注文前は、紅茶のほのかなコーン香はアイスによく合うだろうなあ、とか考えていたのだが、届くや否やひんやりアイスをぱくぱく食べてしまい、いきなり上あごと舌が冷たさから麻痺してしまう。 それでも後半はなるだけゆっくり味わい、紅茶三杯それぞれの味わいを堪能できた。青い清涼感と、ほろ苦い甘みは、夏の最後にふさわしい。 でも、アイスと紅茶はあまりいい取り合わせではないかも。まずアイスをすっかり食べ、食後に紅茶とクッキーをかじればよかった。 21時までやっているそうなので、早く上がったときは寄って帰りたいかも。 朝早く目が覚めたが、疲れが残っているせいか体が動かないので、寝たり起きたりを繰り返す。 将棋は行方が勝ったみたいだ。角交換振り飛車は流行っていて自分も指すけど、序中盤にうさんくさい手で強引に打開する将棋が多いのが気になる。指していても強くなる気がしないが、現代将棋で避けては通れない戦型なので仕方ない。まあ、趣向の一つといったところか。 24で指しながらそんなことを考えていたらまた眠ってしまい、起きたら夕方だ。わー!俺の休日が! 一念発起して部屋を片づけ、シャワーを浴びて着替えて外に出る。いつものクリーニング屋にシャツなどを出し、自転車屋へ。こないだ鍵を失くしたのでロックを付け替えてもらった。ふつうのドライバー一本で取り外しできちゃうのにびっくりしたが、リング錠なのでロックが掛かっている間はネジを外してもロックは外れないわけか。 それにしても、外はめちゃくちゃ暑い。高円寺に着いたころには、首筋はすっかり汗だくになっていた。庚申通りを北に歩き、お目当てのGclef高円寺ティールームに入る。涼しい。汗をハンカチで拭うが、世間のハンカチ王子ブームのせいで何だか気恥ずかしい。面倒な世の中だ。いや、面倒なのは自意識かもしれない。汗をかいたら普通ハンカチやハンドタオルで拭くだろ、と世間に言い訳している自分がいる。 |
|