Node.js + WebSocket + Backbone.jsのすすめ
Backbone.js Advent Calendarの16日目です。 新しい技術は興味はあるけど、主流にならない技術も多くて全部覚えるにはお腹いっぱいという皆さん。 私もこれはという技術を身につけて、一生食べて行けれたらと常々思っています。 そしてようやくこれはと思える技術に出会いました。 それが表題のNode.js+WebSocket+Backbone.jsです。 それを使った簡単なサンプルアプリ(backbone-railsのサンプルをrailsではなく Node.jsに置き換え、DBをRedis、データの同期にSocket.ioを使ったもの)のソースは ここにあります。アプリの解説はまた今度します。 今回はなぜこの組み合わせに賭ける気になったのか思ったを述べます。
利点
|
開発効率は現時点ではRailsのほうが圧倒的に速いです。
Node.jsの場合、DBに複数回アクセスする場合などcallbackが入れ子に
なり、ややこしくなります。
Backbone.jsの場合、Rest前提のため、複数のデータを一度に更新したい
場合や確認画面をはさみたい場合などにかなり頭を悩ませます。
テストの書きやすさやRepl機能の充実度もRailsのほうが上です。
Node.jsを勉強したてということもあり、実感としては1.5倍~倍近く
工数がかかっています。
開発工数も考えると、RESTサーバはRails等で開発したり、Single Page
Applicationにする箇所をよく使う機能に限定する等もありかもしれません。
まとめ
今までのプラットフォームは、言語こそ違えどできることはほとんど
変わらない中、Node.jsでは、他のプラットフォームでは真似できない
リアルタイム性やマシン性能を有効に活用できるほぼ唯一のプラットフォーム
だというのは今後も生き残る可能性大だと思います。
開発が難しいと言う点は、これから情報が増え、ツールが充実したり
することで徐々に改善されていくと思います。
そしてプログラマとして希少価値をあげるためには、難しいことも習得する
必要があることを考えたら、丁度いいと思いませんか?
追記
せっかくなので上記のサンプルアプリを公開してみました。
複数ブラウザでアクセスすると、瞬時にお互いの画面が更新されるのが
わかると思います。(WebSocketのおかげ)
ページの遷移もWebサーバにアクセスしないので一瞬です。
それにも関わらず、ブラウザの戻るに対応していたり、どの画面
もお気に入り登録して、その画面に直接飛べます。(Backbone.jsのおかげ)
| 固定リンク
コメント