uupaaさんのCoffeeScript利用時の注意点
- repeatedly
- 8205
- 0
- 59
- 2
CoffeeScriptやる人に一言。jsはシングルスレッドだけど匿名関数でラップすると関数の出口でスレッドコンテキストする可能性あるから、並列処理にスレッドもってかれないように気をつけて。最近某アレで「朝までにページ表示が不安定なのを直して」と泣き付かれた奴はまさにそれだったよ
2011-05-06 01:12:53CoffeeScriptはうっかり匿名関数でラップするから、「タイミングに依存する作りで、状態遷移をしっかりせず、手抜きしてると先にxhrが終わってしまい、そこで処理もってかれて、準備できてないのにページ表示処理が走って、全体が不安定になる」って奴だった
2011-05-06 01:15:23ステートマシン書けない人が、CoffeeScript使うと、スレッドコンテキストではまると思われるので注意ね
2011-05-06 01:17:03jsのスレッド周り理解できている人が、CoffeeScriptをわざわざ使う人ケースは少ないと思うから、そこが不安ポイント。匿名関数でラップするとクロージャ/GC入るのでゲーム書く場合もCoffeeScriptはマイナスポイントだね。
2011-05-06 01:20:18匿名関数の問題は、名前解決,スレッドコンテキスト,GCなどのコストの問題もあるけど、追っかけたときにスタックトレースが謎くなるので(追えなくなる)、デバッグ大変だし、他人にデバッグを頼む時も大変に。関数や変数に適切な名前がついてないと、デバッグでは良い事一つもないんね
2011-05-06 01:40:441万行こえるような中~大規模jsだった、ライブラリとして他人に提供するコードを匿名関数でラップしまくると、トラップになるので極力さけるべきかと。
2011-05-06 01:42:12他人にbugfixを絶対にお願いしなくても良い状況なら、コード書く人が気持ちよく早く書けるツールを選択するのが正義だけど、そうじゃない場合はデバッグする人に配慮したコードにしとかないと、全員不幸になる
2011-05-06 01:50:28(ε・﹏・)з 中の人は「CoffeeScriptをdisったわけではないので間違っちゃだめだよ。CoffeeScriptに限らず無駄に匿名関数でラップすると罠る事あるから気をつけて」っていってるよ
2011-05-06 01:59:57