Sapporo.coffee#2に行ってきました
今日は、えにしテックさんにお邪魔しました。
おいしいコーヒーを頂きながらのCoffeeScript勉強会デス。
※以降は、MacOS Xで実行したメモです
1. homebrewのインストール
https://github.com/mxcl/homebrew
rubyスクリプトが載っているので、それを使ってインストール
2. node.jsのインストール
Xcodeがインストールされていることを前提に、
$ brew install node
(このMacBookAirだと、インストール完了まで約6分)
3. npmをインストール
$ curl http://npmjs.org/install.sh | sh
4. CoffeeScriptのインストール
どこからでもコマンドを使うためには、-gオプションを付ける
$ npm install -g coffee-script
(-gオプションがないと、パスの設定が必要になる)
5. 実行方法
- コマンドライン
- コンパイル(JavaScriptに変換)
- ブラウザ(実行時にJavaScriptに変換)
6. 便利なモジュール?cakeコマンド
まず、Cakefileというファイルがないと、cakeコマンドがエラーになる
7. CoffeeScriptのドキュメント生成
PygmentsのCoffeeScript専用ラッパー
$ easy_install Pygment
$ npm install -g docco
スクリプトとコメントが左右に分離されたHTMLが出力される
8. テスト
CoffeeScriptのテストフレームワーク
https://github.com/pivotal/jasmine
9. 困ったこと
- CoffeeScriptだった時のエラー番号が表示されない
-> 作者も認識している問題 - ECMA Script5で実装されたsetter/getterがCoffeeScriptで表現できない
-> しばらくは対応しないってIssueに書いてある - IE6だと、GCの関係でメモリリークが起きる場合がある
関数の戻り値で参照とか返す場合に起こりえる - 関数の最後に付加されるreturnが頻発して見づらくなる
-> CoffeeScript上でreturnを書くことで回避できる - C言語のforに相当するJavaScriptを生成しようとしても意図しない結果になる
ex.)
# aとbは変数
hoge for number in [a..b] - すべての関数が無名関数なので、デバッグがしずらい
-> JavaScriptをCoffeeScriptに埋め込むくらいしか・・・
ってな感じの内容でした!
個人的な感想
最近、JavaScriptに興味が出て、CoffeeScriptのリアルタイム変換に感動して、
勢いで参加してみた訳ですが、node.jsがインストール出来たし、
とても有意義な時間を過ごすことが出来ました、感謝!!
でも、C言語のforに相当するJavaScriptが生成できないのは気持ち悪いですね。
これが、
list = [ 1, 2, 3, 4, 5 ]
n = list.length
console.log( list[i] ) for i in [0..(n - 1)]
こうなっちゃう。
var i, list, n, _ref; list = [1, 2, 3, 4, 5]; n = list.length; for (i = 0, _ref = n - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { console.log(list[i]); }
次回は、読書らしいので、都合を合わせて参加したい所存です。
関係者のみなさま、今日は大変ありがとうございました!
おしまい。
Leave a Comment