Node.jsが流行っているので使ってみようと思い使ってみました。
Node.jsにおけるデファクト・スタンダードなフレームワーク、Expressを使いました。
作ってみたのは超シンプルアプリです。
FacebookURL to ID
http://fburl2id.herokuapp.com/
ソースはこれです。
https://github.com/sumyapp/fburl2id.git
データベースもなし、Node.jsが活かされるというイベントベースの通信もなしです。
個人的な結論
- Node.js(Express)のみだと、Expressのインスパイア元であるSinatraと比較してもまったくメリットを感じない。Sinatraよりも高い学習コスト、低生産性。Railsと比較すると圧倒的な低生産性
- Javascriptではあるが、HTML+Javascriptしか触っていないJavascriptエンジニアにはおそらく使用不可能な難易度
- Socket.IOなど、イベントハンドリング系のサービスでは有効かも
といったところです。
疲れたので、流れだけ目次として記載します。
流れ
- Node.jsのインストール
- http://nodejs.org/
- ただ、node.jsのバージョン管理ツールがあるらしいので、そちらがオススメです。ただ、どれがデファクト・スタンダードかは定まってない感じがします。 nvmでnode.jsをインストールする
- Node.jsについて学ぶ
- 完全にエンジニアの方向けの内容ですが Nodeビギナーズブック
- 初心者の方にはこちらのほうが良いかもです。 基礎から学ぶNode.js
- Expressのインストール。記事があったのでリンク貼っときます。
- view頑張る
- jadeという形式が標準のようです。
- viewsフォルダに入ってます
- ロジック頑張る
- routesフォルダにjsファイルが入ってます
- routesっていう名前が私は気に入らないですが。。。
- Herokuで公開する
- 上に書いた記事にHerokuで公開する方法も載ってたのでそちらで。。。
- Gemfileに相当するpackage.jsonを書く以外は特に変わったことは必要ありませんでした。
疲れた。何でもかんでもCallback前提Javascript嫌い。
絶対「JavascriptとHTMLなら書けます」ってエンジニアには使えんだろ、これ。
とはいえ、やはりイベントベースは良いっちゃ良いです。開発生産性は低いですが、パフォーマンスやユーザビリティの良さはありますね。
この記事がよさそうでした。
Node.js + WebSocket + Backbone.jsのすすめ