CanJSはJavaScript製のオープンソース・ソフトウェア(MIT License)です。

大型のWebアプリケーションを構築しようと思ったら、まずはJavaScriptフレームワークを探しましょう。幾つもの候補が見つかると思いますが、今回はその一つCanJSを紹介します。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.21_thumb.1374494063.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.21.1374494063.png)
CanJSはMVCフレームワークになっており、Backbone.jsに似ています。こちらはモデル。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.32_thumb.1374494066.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.32.1374494066.png)
コントローラ。イベントを指定して、それを処理してビューに返す処理を行っています。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.41_thumb.1374494069.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.41.1374494069.png)
ルーティング。URLによってアクションを指定しています。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.49_thumb.1374494072.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-22 9.38.49.1374494072.png)
こちらはビュー。Mustacheが使われています。

CanJSの雰囲気としては、コントローラとビューがBackbone.jsよりも密に結合しているように感じます。特徴として、jQuery/Dojo/Mootools/YUI/Zeptoといった既存のライブラリと共存できること、テンプレートエンジンについても自分で選択できる点があります。

MOONGIFTはこう見る

JavaScriptのMVCフレームワークが数多く登場してきました。Railsのようにフルスタックで実装されるものもあれば、薄い層だけで構築されてテンプレートエンジンなどは自分で選択できるものもあります。

サーバサイドのエンジニアにとっても無関係ではありません。殆どのフレームワークではモデルの扱いをRESTfulにしています。その際にやり取りされるのはJSON/JSONPになります。サーバ側の開発においてRESTfulはスルーできない存在になっていると言えそうです。

CanJS

bitovi/canjs.com