大規模JSプロジェクトのための、モダンなjavascript/coffee-script の学習用資料まとめ
A社coffee-scriptエヴァンジェリストのmizchiです。今日は昨今の大規模JSの需要の高まりに応えるべく、お前が知ってる資料をまとめろとのお達しが下ったので、社内wiki面倒だしここに載せてますん。
前提
- 大規模JSをモジュール化する為にcoffee-scriptのシンタックスシュガーでOOPのパラダイムを持ち込む
- coffee-scriptの煩雑なコンパイル作業を避けるために、Rails/Nodeではアセットパイプラインを使って動的にコンパイルと圧縮を行う
- JSプロジェクトを部分的にnode化してTDDでサイクルを回す
coffee-scriptに関しては、基本的には本家チュートリアルと The Little Book on CoffeeScript を読めばいい
coffee-script チュートリアル
本家チュートリアル CoffeeScript
little book の翻訳 The Little Book on CoffeeScript
カヤックのチュートリアル 今日から始めるCoffeeScript - KAYAC engineers' blog
逆引き CoffeeScript 入門! 怒濤の 100 サンプル!! | TM Life
http://qiita.com/items/1787
http://www.sixapart.jp/techtalk/2012/01/coffeescript.html
uupaaさんのCoffeeScript利用時の注意点 - Togetter
ベターJavaScript!? CoffeeScriptが注目されるワケ:Rails Hub情報局:エンジニアライフ
書籍
http://www.amazon.co.jp/JavaScript-The-Good-Parts-%E2%80%95%E3%80%8C%E8%89%AF%E3%81%84%E3%83%91%E3%83%BC%E3%83%84%E3%80%8D%E3%81%AB%E3%82%88%E3%82%8B%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9/dp/4873113911/ref=sr_1_1?s=books&ie=UTF8&qid=1338553802&sr=1-1
http://www.amazon.co.jp/Little-Book-Coffeescript-Alex-Maccaw/dp/1449321054
http://www.amazon.co.jp/JavaScript%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3-%E2%80%95%E5%84%AA%E3%82%8C%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E4%BD%9C%E6%B3%95-Stoyan-Stefanov/dp/4873114888/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1338553773&sr=1-1-catcorr
http://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91JavaScript-Stoyan-Stefanov/dp/4048706705/ref=sr_1_1?s=books&ie=UTF8&qid=1338553827&sr=1-1
スタイルガイド
GitHub - polarmobile/coffeescript-style-guide: Best-practices and coding conventions for the CoffeeScript programming language
http://nerdkitchen.org/blog/coffeescript-style-guide/
アセットパイプライン
サーバーと連携して.coffeeを読み込んだ時に自動でコンパイルしてくれる系ライブラリ
Ruby : GitHub - sstephenson/sprockets: Rack-based asset packaging system
Node : GitHub - TrevorBurnham/connect-assets: A Rails-style asset pipeline for Node.js
coffee-scriptで記述するDSL
HTMLを出力するテンプレートエンジン CoffeeKup
node/ExpressのDSL GitHub - mauricemach/zappa: Node development for the lazy.
MVCフレームワーク
Backbone と coffee-script を使った連携 CoffeeScript, Meet Backbone.js: A Tutorial
http://batmanjs.org/
配列/オブジェクトのマニピュレーション強化
http://documentcloud.github.com/underscore/
Sugar - A Javascript utility library for working with native objects.
圧縮/難読化
GitHub - mishoo/UglifyJS: JavaScript parser / mangler / compressor / beautifier library for NodeJS
Closure Compiler | Google Developers
テストライブラリ
GitHub - mochajs/mocha: ☕️ simple, flexible, fun javascript test framework for node.js & the browser
テストフレームワーク mocha - hokaccha memo
Jasmine http://pivotal.github.com/jasmine/
GitHub - mhevery/jasmine-node: Integration of Jasmine Spec framework with Node.js
ブラウザシミュレータGitHub - assaf/zombie: Insanely fast, full-stack, headless browser testing using node.js
モックライブラリ Sinon.JS - Standalone test fakes, spies, stubs and mocks for JavaScript. Works with any unit testing framework.
Rspec風assertion GitHub - tj/should.js: BDD style assertions for node.js -- test framework agnostic
Node環境
coffeeはローカルのインタプリタ必須
Nodeのバージョン切り替え GitHub - hokaccha/nodebrew: Node.js version manager
http://toolbox.no.de/