読者です 読者をやめる 読者になる 読者になる

arveltのソフトウェア技術メモ

Arvelt's software technology memo

Node.js、DojoToolKit、MongoDB、Herokuでアプリを作った話

こちらで公開してます。

http://todo-4-you.herokuapp.com/

 

ソースはこちら。

https://github.com/arvelt/hello-nodejs

 

今回使った主なライブラリやサービス

  • Node.js
    • Express(3.X)
    • Passport
    • Mongoose
    • Mocha
    • Supertes
  • Dojo tool kit(1.9.X)
  • MongDB
  • Travis CI
  • waffle.io

 

所感

  • 最初Expressの最新を使おうとしたらPassportがまだ対応していないのかうまく動かないくてハマったので、古い方をつかうことにした。
  • angular.jsじゃなくてDojoを使ってるのは仕事で使用しているので理解を深めるため。DojoはWebページをWidgetと称するビューにして組み立てていく。
  • waffle.ioを使ってgithub issue駆動と最小git flowでやっていく。issueをTODOとして使って、対応するissueのfeatureブランチ切って、masterにPR出すということをしていた。ちょっと試したいというときにはdevlopもreleaceもいらないと思う。
  • APIに対するテストコードを書いてみる。ちょっと微妙な感じもあるが、テスト時はテスト環境のDBを初期化するようなコードをアプリ自体に持っている。NODE_ENVがtestの場合はDB状態をまっさらでテストできるようにしている。
  • Sinonを使ってクライアントテスト書こう!と意気込んでいたが、労力に成果が見合わなくなるのでSuperTestでREST API対するassertを書くことにした。RESTのつもりだけど、違うぜっていうのがあったら教えて下さい。doc.mdに仕様書いてある。というかAPI仕様を書くための標準表記法ってあったっけ。
  • Travis CIを使ったことなかったので使ってみた。むしろそのためにテストでっちあげた感じがある。ちゃんとログも見えるしなかなかおもしろい。
  • Herokuへのデプロイは手動でひと通り確認したあと、Travisからの自動アップロードへと変更した。全てのプッシュごとにデプロイされてもつらいので、masterへのpushでHerokuへデプロイするようにした。travis.ymlをちょっと変えるだけでそれだけのことができるようになり、かがくのちからってすげーという感がある。
  • TravisCLI がよくできていて、travis setup heroku とかコマンド叩くとHerokuのAPIkeyを暗号化してtravis.ymlに載せてくれるのでほとんど何も気にしないでいけた。魔法かよ。

 

困ったところと解決案とか

 

Dojo tool kitの使い方とか