昨日で社会人5年目になった79です^q^
最近仕事ではNode.jsでサーバサイドなプログラミングばかりしているのですが、人に教える機会が凄く多くなってきました。
他の言語やっている人が、1から(人によってはJavaScriptから) Node.jsをやってみたい!という人がちょくちょく僕を訪ねてくれます。
個人的にどういう勉強をして今に至るのかをずらずらっと書いてみます。
JavaScript からやってみた
自信がないから本読もうという段階
去年末のブログに書きましたが、JavaScript自体始めたのが最近です。
途方にくれて買ってきた1冊の本が始まりなわけですが、とりあえず触るにはちょうど良かった本がこちら
ブラウザですぐ動いて楽しい本です。ただちょっと物足りないので、ちゃんとJavaScriptを勉強したくなってこれを買い足しました。
仕事で使い始めてもっと知りたくなる段階
JavaScript Good Parts
jsは凄く書きやすい言語です。良くも悪くもすぐ動きます。
しかし、ある程度ルールをキメた上でコーディングしていかないと、思わぬ挙動をしたりします。そういうのを防ぐための本。
プロになるためのJavaScript入門
jQueryとか使えるけど、JavaScriptでもうちょっとオシャレに実装したい、とか、流行りのクライアントサイドMVなんとか使いたいとか、そういう時に便利。
ちょうど仕事でBackbone.js使い始めてたので、Backbone.jsの話が多めに書いてあったから買った本。
webサイトで入門するなら
時間かけてられなくて、触りだけ知りたいときはwebでやったほうが良い。
code academy
簡単だけどオススメ。
code school
英語だし有料(一部無料)だけど、本買うより良い。実際にコードを打ち込んで正解しないと次に進めない。
他のプログラミングの勉強もできる。(もちろんNode.jsも)
コード見るだけなら意外とできちゃうし、終わった後英語出来た気になれるw
JavaScriptなら、「JavaScript road trip part 1-3」をやれば良い。
日本語じゃないとダメだって人はドットインストールでもいいのだけど、見るだけになっちゃうので、ちゃんと自分で書いて動かすっていうのと、
自分で1からちゃんと作ってみるのとセットじゃないと書けた気になったままで評価しづらい。
いざ Node.js !
正直本はあまり読んでいない。
簡単に触れるwebでの情報が結構色々あるので、Node.jsはそれだけで充分だった。
ので1冊本を読みきったことはないんです。
でも会社に置いてある良さそうだねってなった本は以下。
Node.js入門
web での学習が一番良かった
The Node Beginner Book
JavaScriptができていれば、Node.jsの勉強はそんなに怖くなくなっているはず。
Node.jsの学習に一番良いとされているドキュメントがあります。
Node.jsの特性を知れるし、expressみたいなフレームワークに頼らずに仕組みを知れるので凄く重宝するはず。
code school - realtime web with node.js
これは本当に良い授業だった。Node.jsの基礎からexpressの利用、socket.ioを使ったサンプル、RedisみたいなKVSへのデータ保存まで網羅されてる。
code schoolの良い所はビデオを見た後にその内容をテスト形式で穴埋め復習出来る所。写経よりも習熟度が高くなるので、本当にオススメです。
Github projects
blogに書いたところでどうにもならないけど、社内のソースコードを読むのが一番勉強になった。社内ではGHEを使っていて、僕が勉強してる時期はいろんなNode.jsのフレームワークが喧嘩していた。その時期はそれぞれのFWを比較しながら読んだり出来て、凄く環境に恵まれてるなぁと実感。
(※社内向けに書くと、Pなんとかとか, beezとか, 某ネイティブゲームで使ってるやつとか(気になる人は聞いてね))
身近にそういうのが無ければ、 node.js sample とかで github 検索したリポジトリを漁るのが良いでしょう!ソーシャルコーディングすばらしい^v^
とは言っても何も知らないと難しいと思うので、今パッと思いついたのでvisionmedia氏がやっぱり至高なのでリンク置いておきますね。
これ見ると気づくと思うんですが、Node.jsでよく使われてるモジュールは大体この人が関わっています。ありがたやありがたや。。
詳細だと express の examplesとかを見れば色々あります。
参考までに
社内で主流なのは express をラップしたようなフレームワークばかり。
厳格なMVCフレームワークは死んでいて、OOPなのも1つだけ?
超ざっくり言うと、1つのオブジェクトに色々機能をぶち込んだものを引き回したりする書き方が多い。
モジュールにキレイにまとめていたり、必要な機能だけDIしたり、フレームワークによって様々。
開発するときに初期から使っておくと良いツール達
Node.jsライブラリ
- mocha: 下のexpect.jsと一緒に使う。テスト書いてTDD/BDDするのが世界標準だよと怒られています。javascriptは自律が必要な言語です。是非テストを書きましょう!
- expect.js: 一番具合が良い。
- lodash: underscoreより今はコッチのほうが使われてる。
- jade: ejsのが個人的には好き。handlebarsでも良い気もする。
- async.js: parallelな処理はasync使うのが良いと思う。長い非同期処理書くときにも良い。
- yeoman: Node.jsで開発してたらyeomanがデフォルトで使えるので、使えるようになっておきましょう。
- supervisor: 好み。
コーディング
- jsHint: javascript good parts とか見ると参考になる
- editorconfig: js関係ないけどお気に入り。node.jsのインデントはスペース2が調度良いと思う。
- Git: 言わずもがな。使えるようになると Github 巡りが楽しくなる。
- github-flow: git-flowは死んだ!と思う。なんかグチャグチャしてたりルールを決めるのが大変。偉い人曰く、pull requestが無かった時代の管理手法なんじゃないかとのこと。確かにそんな気がする。
その他
- vagrant: DBとかはlocalに立ててもいいけど、vagrantに入れてすぐぶっ壊せる環境にあったほうが良いので推奨。v1.5から使えるshare機能で、boxの共有が出来るようになったから、具合の良いboxみつけてそれ使うだけでもイイ。
- ansible: chefじゃなくてansible。覚えておくと便利。vagrant内にsshでインストール作業がサクサク出来る。
- CIツール類: jenkinsくらいは使えればおk。jobの中身知らずにビルド回すとかはご法度です。
さいごに
社内外向けに最近のNode.js講座周りのTipsをまとめてみました。
僕が運が良かったのは、これらと合わせて素晴らしいレビュワーが居たということでしょう。
書いたコードを誰かに見せて、問題がないかチームなり上司なりと確認しあうのが大事です。
あとは真似する事が一番の近道です。スーパーエンジニア様達が弊社にはいっぱいいます。身近に居なくても、世界中のコードがgithubで見れたりするので、今はすごく勉強がし易い環境が整っているはずです。良いとされているコードをたくさん真似してみましょう。
0 件のコメント:
コメントを投稿