BPStudy #32 CouchDB再入門

Slideshareにアップしたものの、微妙にフォーマットが崩れたりしてしまいました。オリジナルは http://dl.dropbox.com/u/219436/CouchDB/BPStudy32/BPStudy32-CouchDB.pptx にあるので適当にどうぞ。

必要な分を全部盛りで詰め込んだらちょっとハンズオンの時間が少なくなってしまいました。

http://dl.dropbox.com/u/219436/CouchDB/PythonHackathon3/handson/_build/html/index.html

に(作りかけですが)あるので、物足りなかった方はぜひお試しください。

なぜ時間が足りなくなるのか、といえば、ドキュメント指向だとかデータベースがアプリケーションサーバーとして振る舞う、だとか、特徴的な部分は、慎重に説明しないとなぁ、と気負うからで。

それにしても id:yohei さんの「Webを支える技術」のおかげで、Webの基本的なところをスキップできるのはすごく楽だな、と思った。この本の17.4「情報アーキテクチャーからの導出」というメソドロジーは、CouchDBにおけるドキュメント設計に非常に近しいと思っています*1

よく設計された情報アーキテクチャーを持つWebサイトの構造は、ほぼそのままWebサービスに適用できます

とあるのですが、CouchDBの場合は、そのソフトウェア的な制約の結果、必然的に ドキュメントがWeb APIになりつつ、Show/List によってWebサイトに化ける、といったことが自然に行えるようになります。ドキュメント指向ってなんだろう?ってCouchDBを始めたときからずっと悩んでいましたが、ああ、www のことか、と思ったらすごくすっきりしているのです。で、改めてWikipediaWorld Wide Webの項ををみると

ドキュメントに別のドキュメントのURIへの参照を埋め込むことで(これをハイパーリンクと呼ぶ)インターネット上に散在するドキュメント同士を相互に参照可能にするシステムである。

と記述があって、ああーなるほど、CouchDBはKVS/NoSQL DataStore とくくるにはちょっと違うよね、というのが今のところです。

とりあえず twitter のログ をみるとそのあたりは伝わっていたと思いますのでほっとしました。

それZopeで(ry、というのは何となくわかりますww

*1:ただ、情報アーキテクチャーというものは、実は多くの人にとっては単に画面駆動開発のことなのかもしれない、と思っているあたり自分の理解が正しいのかよくわかりませんが