Submit Search
Upload
ActiveResourceが面白すぎる件
•
6 likes
•
3,002 views
K
Kazuki MATSUMOTO
Follow
published in RubyKansai #34
Read less
Read more
Report
Share
Report
Share
1 of 20
Recommended
Haskell で CLI
Haskell で CLI
Nobutada Matsubara
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
そろそろRStudioの話
そろそろRStudioの話
Kazuya Wada
オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門
Open Source Software Association of Japan
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Garageをもうちょっと触ってみた
Garageをもうちょっと触ってみた
Yoichi Toyota
Array twitter2
Array twitter2
Jun Chiba
HashTable と HashDos
HashTable と HashDos
Yuya Takeyama
Recommended
Haskell で CLI
Haskell で CLI
Nobutada Matsubara
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
そろそろRStudioの話
そろそろRStudioの話
Kazuya Wada
オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門
Open Source Software Association of Japan
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Garageをもうちょっと触ってみた
Garageをもうちょっと触ってみた
Yoichi Toyota
Array twitter2
Array twitter2
Jun Chiba
HashTable と HashDos
HashTable と HashDos
Yuya Takeyama
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
Computation Expressions for Haxe
Computation Expressions for Haxe
terurou
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
CODE BLUE
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
Satoshi Mimura
前期講座09
前期講座09
Takenori Nakagawa
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
Stroustrup11章雑感
Stroustrup11章雑感
31 00
Git
Git
Appresso Engineering Team
シェル入門
シェル入門
ina job
コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
Local php-100828 2
Local php-100828 2
Akio Ishida
20100717tobesetu
20100717tobesetu
akitsukada
Racc でおてがる構文解析
Racc でおてがる構文解析
morphine57
Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
R を起動するその前に
R を起動するその前に
Kosei ABE
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
takezoe
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
More Related Content
What's hot
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
Computation Expressions for Haxe
Computation Expressions for Haxe
terurou
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
CODE BLUE
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
Satoshi Mimura
前期講座09
前期講座09
Takenori Nakagawa
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
Stroustrup11章雑感
Stroustrup11章雑感
31 00
Git
Git
Appresso Engineering Team
シェル入門
シェル入門
ina job
コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
Local php-100828 2
Local php-100828 2
Akio Ishida
20100717tobesetu
20100717tobesetu
akitsukada
Racc でおてがる構文解析
Racc でおてがる構文解析
morphine57
Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
R を起動するその前に
R を起動するその前に
Kosei ABE
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
What's hot
(20)
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Computation Expressions for Haxe
Computation Expressions for Haxe
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
前期講座09
前期講座09
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
Stroustrup11章雑感
Stroustrup11章雑感
Git
Git
シェル入門
シェル入門
コード読経会報告書
コード読経会報告書
Local php-100828 2
Local php-100828 2
20100717tobesetu
20100717tobesetu
Racc でおてがる構文解析
Racc でおてがる構文解析
Web技術勉強会23回目
Web技術勉強会23回目
R を起動するその前に
R を起動するその前に
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Rakuten tech conf
Rakuten tech conf
Similar to ActiveResourceが面白すぎる件
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
takezoe
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
Write good parser in perl
Write good parser in perl
Jiro Nishiguchi
Project lambda
Project lambda
Appresso Engineering Team
JavaのGenericsとは?
JavaのGenericsとは?
Kenji Nakamura
What is Metasepi?
What is Metasepi?
Kiwamu Okabe
from old Java to modern Java
from old Java to modern Java
心 谷本
Cubby 2006-08-23
Cubby 2006-08-23
Agata Toshikata
RとWeb API
RとWeb API
Yohei Sato
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
Swiftおさらい
Swiftおさらい
Hidenori Takeshita
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
Parsing Left Recursive PEG
Parsing Left Recursive PEG
Takayuki Goto
ALPSチュートリアル(3) アプリケーション実習
ALPSチュートリアル(3) アプリケーション実習
Computational Materials Science Initiative
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
Toshio Ehara
AWS SDK for Haskell開発
AWS SDK for Haskell開発
Nomura Yusuke
Kanazawa.js.Next
Kanazawa.js.Next
dynamis
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
Similar to ActiveResourceが面白すぎる件
(20)
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
PHP AST 徹底解説
PHP AST 徹底解説
Write good parser in perl
Write good parser in perl
Project lambda
Project lambda
JavaのGenericsとは?
JavaのGenericsとは?
What is Metasepi?
What is Metasepi?
from old Java to modern Java
from old Java to modern Java
Cubby 2006-08-23
Cubby 2006-08-23
RとWeb API
RとWeb API
Scala on Hadoop
Scala on Hadoop
Swiftおさらい
Swiftおさらい
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Parsing Left Recursive PEG
Parsing Left Recursive PEG
ALPSチュートリアル(3) アプリケーション実習
ALPSチュートリアル(3) アプリケーション実習
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
AWS SDK for Haskell開発
AWS SDK for Haskell開発
Kanazawa.js.Next
Kanazawa.js.Next
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
ActiveResourceが面白すぎる件
1.
ActiveResourceが面白すぎる件 松本 一輝
Lang-8,inc. http://d.hatena.ne.jp/kazuk_i
2.
3.
Ruby、RoR暦
4.
5.
6.
AResはクライアントを担当
7.
ActionController(AC)はサーバを担当※今回はクライアント(ARes)の話に限定
8.
9.
レスポンスはXML又はJSONで表現
10.
レスポンスのステータスはHTTP status codeで表現
11.
12.
変化自由な変態性 AResではARと違い、レスポンスデータが入れ子の場合がある。
=> その場で動的にクラスを作って対応 {“id”:119515, “user_id”:39691 “subject”:”foo” “body”:”bar” “comments”:[ {“user_id”:23311,“body”:”zoo”...}, ...]} #<Journal:0xb7b1a6f4 @prefix_options={}, @attributes={"user_id”=>39691,”subject”=>”foo”,”body”=>”bar”,”comments”=>[#<Journal::Comment:0xb7b18480 @prefix_options={}, @attributes={"user_id"=>23311, ...]}>, … ]}> Singularize + Camelize Journal.find(:last).comments.foo.bar ・・・ などと辿っていくことができる。
13.
14.
Pagination
15.
JSONパーサの切り替え
16.
17.
18.
19.
JSONパーサの切り替え プロファイリング: 100.times
{ Journal.find(119515, :params => {:with_comments => 1}) } (※JournalはActiveResource::Baseの継承クラス) Simple-jsonを使った場合: 0.02 920.39 0.17 100 1.70 168.20 ActiveResource::Connection#request 0.03 915.76 0.27 100 2.70 8259.20 JsonParser#parse 0.01 929.72 0.05 100 0.50 605.40 Journal#instantiate_record json/extを使った場合: 0.10 100.00 0.11 100 1.10 166.70 ActiveResource::Connection#request 0.04 105.45 0.04 100 0.40 6.20 JSON.parse 0.03 106.76 0.03 100 0.30 605.90 Journal#instantiate_record
20.
JSONパーサの切り替え (ms)
21.
22.
Monkeys ActiveResource::Baseにmonkey-patchを当てる。 想定API:
Lang-8 backend API GET /journals (複数結果の場合) #=> {“from”: 0, “totalnum”: 20, “size”: 3, “list”: [ { “id”: “1”, “subject”: “...” }, { } … } GET /journals/1 (単一結果の場合) #=> { “id”: “1”, “subject”: “...” , ... }
23.
24.
25.
26.
27.
それでもAResは結構重い(CPUを食う)
28.