restrant.js 20130720

20
サーバとクライアントの繋ぎを簡単にする(つもりの) Restrant.jsの話 サークルアラウンド株式会社 佐藤正志 13720日土曜日

Upload: masashi-sato

Post on 15-Aug-2015

1.143 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Restrant.js 20130720

サーバとクライアントの繋ぎを簡単にする(つもりの)

Restrant.jsの話サークルアラウンド株式会社 佐藤正志

13年7月20日土曜日

Page 2: Restrant.js 20130720

• PGHouse豪徳寺 最年長(プログラミングを学び合うシェアハウス)

• 「仕事と生活がもっと近づいたら楽しい毎日が過ごせるか」検証中

• いつか島を買って仲間と楽しく仕事します

自己紹介•代表取締役CEO兼CTO

•契約社員・フリーランス等で技術者として活動し、2012年5月起業佐藤正志

13年7月20日土曜日

Page 3: Restrant.js 20130720

こんなことありません?

$.ajaxする時にホントにその通信が動くのかチェックする作業が嫌。POSTとか得に。

分業してシステムを作った時に「疎通」の部分でよくバグが起きてる

ユニットテストでチェックする?そこまで作り込むのか?

13年7月20日土曜日

Page 4: Restrant.js 20130720

こんなのが欲しい

Remote Procedure Call(あったらしい)

SOAP(あったねーそんなの)

WEBサービス作る時にオブジェクトをネットワークに公開して呼べる。呼び出すStubは自動生成で作る。

13年7月20日土曜日

Page 5: Restrant.js 20130720

こうすればやれるよね

ブラウザサーバー

Controller

Stub

こいつを自動で作ろう

Stub.js

Controllerに合致するStubクラス

13年7月20日土曜日

Page 6: Restrant.js 20130720

そこまでの道のり

13年7月20日土曜日

Page 7: Restrant.js 20130720

URLはどんな?

RoRのRoutesってクールだよね!

あそこを見るだけでどんなURLがあるか一発で解る。

将来RESTっぽい実装作りやすいライブラリになったら良いよね!Restrantとかつけるか

13年7月20日土曜日

Page 8: Restrant.js 20130720

もっと厳格なパターン

URLだけではなくて、リクエストパラメータもパターンに加えたい。

/xxx/yyy vs /xxx/yyy?type=:type

POSTパラメータもパターンに加えたい

/xxx/yyy?username=:name(?以降がPOSTパラメータ)

13年7月20日土曜日

Page 9: Restrant.js 20130720

もっと厳格な型チェック

Routeのパターンに型も含めてしまえば?(Integer、Floatのみ実装)

/xxx/yyy/:ttt:Integer

13年7月20日土曜日

Page 10: Restrant.js 20130720

スタブでもチェック

動かない原因の殆どは引数間違えてるとか、指定忘れているから。

通信する前にチェック

少なくとも引数undefinedくらいはチェック

ホントはもっとやりたいけど...

13年7月20日土曜日

Page 11: Restrant.js 20130720

JSのソース?

ここは頑張って書いた。

他が出来上がっていれば下記をまとめるだけ

$.ajaxするソース

コントローラと同名のクラス

入力チェック系

13年7月20日土曜日

Page 12: Restrant.js 20130720

node.js用

Expressと一緒に使っています

多分middlewareに詳しくなればもっと融合させられるはず(詳しい人教えて下さい)

13年7月20日土曜日

Page 13: Restrant.js 20130720

デモ

デモしまーす。下記を見て欲しいです。

今の動き

Routeのソース

コントローラーのソース

JSのファイル

13年7月20日土曜日

Page 14: Restrant.js 20130720

今やってること(1)

Backbone.jsに簡単に繋げるようにしてみている。

RESTの内容をModel.syncのデフォルトの仕様に合わせてあげるだけ。

意外に簡単だった(多分できた)。

13年7月20日土曜日

Page 15: Restrant.js 20130720

今やってること(2)

MongoDB(Mongoose)のモデルからスパーッとRESTFulできるようなやつ作りたい

現実やろうとするとそんなに綺麗にゆかない。セッションから値取ってきたり…

やはりコントローラまでを相手するのが良いかも。

13年7月20日土曜日

Page 16: Restrant.js 20130720

デモ(2)

今やってるとこのデモ

13年7月20日土曜日

Page 17: Restrant.js 20130720

細かいけどやりたいこと

/xxx/yyy/aaa[a-Z0-9]+

とか書けたらいいなー(とは思っているのですが切羽詰まっていないのと費用対効果がそんなに良くないので後ろのタスクです)。

13年7月20日土曜日

Page 18: Restrant.js 20130720

最初の実装はJava

restrant-j(https://code.google.com/p/restrant-j)

最初はJSのスタブは無かった。今はある。

GAEなんかで動かしていた

2010/6/21が初コミットらしい。

13年7月20日土曜日

Page 19: Restrant.js 20130720

一応宣伝こんな仕組み作って自社アプリ作ってます。

ライブラリ・フレームワークでもっと生産性上げてけると嬉しーなーと思ってます。

お気軽に声かけて下され。技術的には以下のような。

Node.js

HTML5&CSS3

13年7月20日土曜日

Page 20: Restrant.js 20130720

以上です

ありがとうございました。

13年7月20日土曜日