CoffeeScript
JavaScript(ECMAScript)のシンタックスシュガーの一種。Pythonのようにインデント重視で記述する。
本家
インストール方法
# npm install -g coffee-script
ドキュメンテーションの書き方
###* @class Hoge Hogeクラスの説明 ### class Hoge ###* @method constructor コンストラクタ ### constructor: -> hoge return ###* @method ふー ### foo: => bar return
みたいに書いて、coffee→jsに変換した後にjsduckを使うのがよい。
関数定義のススメ
thisを呼び出し時に受け取ったまま使う -> と、 定義時点でのthisをバインドして呼び出し時のthisを無視する => とがある。 多くの例ではthisのバインドを必須するときを除いて -> を用いているが、 むしろthisを敢えて無視したいとき以外は => を使うという運用のほうが望ましい。
なぜならば、最初は -> で実装していたが、後の変更でクラスメンバへのアクセスが増えてthisを 扱い始めた時、=> に変えるのを忘れると、解析の難しい不具合を引き起こしやすい。 デバッグに時間がかかるので、this置換の必要な所だけを -> で実装する方がトータルコストは良いと判断。
注意点:それでも->を使うべき場所
- クラス関数の定義用コロンの後 (hoge: ->)
- @property(“xxx”, get: -> @hoge) 上のコロンの後と同じ
- その他thisを呼び出し時にバインドしたいとき