2012-03-27
■ [javascript] Source MapはBiwaSchemeで使えるかと思ったがそうでもなかった
- 圧縮後のJavaScriptやコンパイル後のCoffeeScriptでも、ブラウザ上で元のソースを参照できる新技術「Source Maps」登場 − Publickey
- Introduction to JavaScript Source Maps - HTML5 Rocks
- Source Map Revision 3 Proposal - Google ドキュメント
最近はJavaScriptを書く代わりにCoffeeScriptを書いて生成させたり、そうでなくても複数のJSファイルを結合して圧縮するなんてことはよく行われている。 このとき問題になるのが、「エラーが起きたときに元ファイルのどこなのか分からなくてデバッグが大変」ということだ。
Source Mapはこの問題を解決するために検討されている案だ。元ファイルと生成ファイルをもとに「Source Map」と呼ばれるJSONデータを用意することで、 実行時エラーが発生した際に、発生箇所である生成ファイルのn行目が元のどのファイルの何行目なのかを表示できるようにするらしい。
この対応づけは結構大きくなりそうだが、データ形式を工夫することで元ファイルの2.5倍程度に抑えられるとのこと。
で、BiwaSchemeで使えるかなと思ってたんだけど、CoffeeScriptのように行単位でJSと対応づけられるものならともかく、 BiwaSchemeのようにJS上で完全に別の言語を実装するようなものにはあまり役に立たなさそうだということが分かった。
■ [ruby] rrのany_instance_ofとnew_instance_of
- rrはRubyでモックやスタブなどのTest Doubleを扱うためのライブラリである
- new_instance_of(C)はこれから作られるCのインスタンスを扱う。any_instance_of(C)は既に作られているCのインスタンスも含む
- が、最新版でnew_instance_ofを呼ぶとエラーになる
- とIssuesでも報告されているのが一年前
- READMEには「any_instance_ofとmockの組み合わせはうまく動かない」と書いてある
- AnyInstanceOfのソースにdeprecatedとか書いてある
- ソース全体が激しく断片化しててよく分からない
- 7ヶ月間コミットがない…
とりあえず「これから作られるCのインスタンスに限れば、any_instance_of(C)を使っても問題ないに違いない」と言い聞かせながらテストを書いている状況。
Ruby Toolboxでは(Rspec付属のを除けば)Mochaが人気のようだ。
rrの記法はとてもステキなんですけど、どうもイマイチな感じになってきてしまってますね…。どっぷり使っちゃってるんですけど…。