2012年6月26日火曜日

AngularJSとCompojureによる簡単なサンプル

Googleが開発しているAngularJS(以下angular)のバージョンが1.0になったらしいので、サンプルを作ってみました。最近はClojureに対する愛が高まっているので、サーバーサイドにはCompojureを選びました。angular-Compojure間をAjaxで通信することを目標に、一行掲示板のようなものを作りました。clj-anglr

苦労したこと
angularから送ったJSONをCompojure側で受け取るところ。

Compojureのサンプルを検索してすぐに見つかるのはBadのほうだと思いますが、この書き方ではangularから送ったJSONを受信できません。JSONはリクエストパラメータとしてではなく、リクエストのBODYに格納されるため、Goodのように自分でBodyから取り出す必要がありました。

感じたこと
angularのマッピングは快適です。特に$scopeへ追加したオブジェクトを更新すると、何もしなくても画面に反映されるのがすごいと思いました。業務で作っているシステムは頻繁に画面がちらつく・・・。
もう一つ、サーバーサイドにCompojureというのはアリだと思いました。Clojureのデータ構造はシンプルなのでJavaに比べてなんとなく不安でしたが、JavaScriptと通信する時にJSONに変換するのであれば、大して問題にならない気がしました。むしろ、無駄な情報がないために見通しがいいとも感じました。

業務で使うことはまだないと思いますが、なかなか興味深いライブラリでした。