Skip to main content More Related Content
PDF
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka] PDF
PDF
PDF
PDF
sql_require_primary_keyを使って主キーを必須にさせる PDF
React系(別言語含む)の サーバーサイドレンダリング について考えよう PDF
Scotty を利用した "ゆるふわ" Web サービス作成 PDF
What's hot
PDF
MySQLユーザ視点での小さく始めるElasticsearch PDF
PPTX
PDF
PDF
20140930 anything as_code PPTX
PDF
PDF
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch" PDF
PDF
RESTful APIとしてのRailsとクライアントとしてのJavaScript PDF
Elasticsearch at CrowdWorks PPTX
第51回NDS PostgreSQLのデータ型 #nds51 PDF
PPTX
CouchDB+OpenSocial - OSC 2009/Fall Tokyo PPTX
PPTX
PDF
PDF
PDF
MySQLのリアルタイムモニタリングツールを作った話 PDF
Viewers also liked
PPS
PPT
Perkusiozko Musika Instrumentuak PPSX
PPT
DOC
PDF
PDF
PDF
PPS
PPS
DOC
PPTX
Kleiwegkwartier Presentation PDF
Kakapo slideshow by Dharia & Michenna PDF
PPT
PPS
PPS
PPS
Txorro Morro Piko Tailo Ke PDF
Kakapo slideshow by Izak and Ezra PPT
Similar to Couch Db勉強会0623 by yssk22
PDF
PDF
PDF
PDF
PPT
PDF
PDF
カウチなやつら CouchDB in the room KEY
PDF
Osc2008 Opensuse Moonlinx PDF
Fluentd Casual Talks LT #fluentd #fluentdcasual PPTX
PDF
PDF
PDF
PDF
PDF
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発 PDF
PDF
Cloudian nosql casestudy_20120318 KEY
PDF
The Essence of Using Ruby on Rails in Corporations More from Yohei Sasaki
KEY
20120317 CloudFoundry #pyfes KEY
KEY
KEY
PDF
PDF
PPTX
KEY
PPTX
RelaxCafe@CouchDB break.4 PPTX
PPTX
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En) PPTX
PPTX
Finding Your Data with Views PPTX
PDF
Couch Db勉強会0623 by yssk22
- 1.
2009/06/23
webjourney.org
Yohei Sasaki / yssk22
CouchDB or Erlangを使って
やってみたいアプリケーション
- 2.
自己紹介
Yohei Sasaki
http://www.yssk22.info/
仕事の時は ysasaki2
developerWorks にCouchDBの記事を書いてます。
5回連載 3ヶ月で終わる予定が、1年で4回 orz
趣味の時は yssk22 (← 今日はこっち)
http://d.hatena.ne.jp/yssk22
- 3.
- 4.
- 5.
- 6.
OpenSocial + CouchDB
=Open Web Application
OpenSocial
自由にアプリケーションを持ち運べる
CouchDB
自由にデータを持ち運べる
データとアプリケーションに
明確な境界など要らない?
- 7.
2009/06/23
webjourney.org
Yohei Sasaki / yssk22
CouchDB で始める
ActiveRecord からの脱却
- 8.
- 9.
- 10.
- 11.
ActiveRecord による実装
pages
pages - 各ページのデータ
gadget_instances
- ページに貼り付けられた
gadgetのデータ
gadgets
gadget_instance
- サイトにインストールされた
s
gadget のマスターデータ
gadgets 意外と簡単そう???
- 12.
ActiveRecord による実装
class GadgetInstance
pages
< ActiveRecord::Base
validates_length_of :title, ...
validates ...
serialize :parameters
gadget_instance
end
gadget
結局KeyValueにシリアライズ!
- 13.
- 14.
抱える問題 = クエリ
GadgetデータをRDBに入れるのは簡単
ADO.NET の場合:: XML列にMapping (SQL Server)
Rails の場合:: YAMLで放り込む
Object → XML/YAML は比較的楽
しかし、クエリで取り出せない罠
XQuery 勉強する暇あったらORMなんか使いませんよ!
玉石混交のユーザーデータをフィルタできないなん
て!!
例えば、Feed Gadgetなら設定されたURLのランキングを
とりたい、とか。
- 15.
- 16.
- 17.
Active Record =>CouchDB
移植開始
中のロジックを変えるのが面倒だったの
で、ActiveRecord とインターフェースをそ
ろえた CouchDB Mapper 作る
3ヶ月ぐらいで、いい加減実装完了
CouchResource
http://github.com/yssk22/couch_resource/tree/mast
er
- 18.
結果
classGadgetInstance < CouchResource::Base
string :title, :validates => [:length_of => ..]
object :parameters
end
GadgetInstance.find(...) でCouchDBのビューが呼ばれるので、
クエリもサポート!
Gadget 開発者が自由にデータを使える(クエリも含めて!
ActiveRecord のノリで開発できる!
ほとんど記法は同じ。
migration 部分はクラスに直接かく
他のCouchDB Mapper でも property :title, :as => :string とか。
- 19.
CouchResource
○
バリデーション: validates_xxx サポート
コールバック: before|after_xxx サポート
JSONデータ型 : string :title などのようにマッ
ピング時の型変換ルールをかける
クエリ : find メソッド使える
△
関連 : habtm, has_many, belongs_to などはいら
ないので作らなかった
CouchRest のようにストリーミングしない。
- 20.
- 21.
とりあえず結論
serializeとか STI(Single Table Inheritance / 同じテーブルを複数
クラスで使い回す)とか使いたくなってくるところには
CouchDBみたいなもの
入れる(INSERT/UPDATE)だけなら、そこまで無理なくていい
(item_name, value) なんていうテーブルがあったら、
CouchDBを検討してみるといい!
Form の項目をDBに保存しているときとか。
がんばればActiveRecordっぽく、CouchDBを使える!
Merb::DataMapper のCouchDB Adapterももあるらしい。
CouchDB は、(alpha stageっていってるけど)わりと素直に動
きます。
compaction さえ忘れなければ。
- 22.
- 23.
- 24.
結果
jQuery から直接 CouchDB たたけばいい
CouchDB にビジネスロジック書いておけば
OK
奥の手External Process
CouchDB と任意のコマンドラインプロセスをPipeで
つなぐことができる
script/runner でもOK
さようならRails, こんにちはCouchDB
CouchAppもヨロシク。
- 25.
- 26.
Ruby off Rails
Rails で RDB 使わないのは敷居が高すぎる
問い合わせ;
MySQLで動かないようなんだけどSQLiteじゃな
いとだめ?どのDB使えばいいの?
回答:
いや、RDBじゃだめw CouchDBインストールして。
結果:
連絡が途絶えた
- 27.
CouchResource
×
終了のお知らせ。
ActiveRecord 思想にこだわった時点で終了のお
知らせだったか。
trac にかいといたドキュメントがlost
CouchRest がいい。
がんばって作ってみたけど、だめでした。
- 28.
- 29.