Doctor JSはJavaScriptコードを解析して返却値の型を特定するソフトウェア。

Doctor JSはJavaScript/node.js製のオープンソース・ソフトウェア。勘違いもあるかも知れないが、一般的にコンパイル系言語では変数の型をきちんと定義した上で利用する。対してスクリプト系言語では変数の型をいちいち定義したりせずに利用できるものが多い。


トップ画面

JavaScriptでもそれは同様だ。型を定義せずに使える分、柔軟に煩わしさを感じずに使えるというメリットがある一方、想定外の変数が入ってきて処理がおかしくなる場合もある。それを事前にチェックしてコーディングに役立てられるのがDoctor JSだ。

Doctor JSはJavaScriptのソースコードを静的に解析し、関数の返却値の型を表示する。全てのコードを解析できるという訳ではないが、functionが順番に定義されているようなファイルである必要があるようだ。jQueryやPrototype.jsのようなコードは解析に失敗した。


解析結果

通常のfunctionを書く場合はもちろん、それ以外にもPolymorphism/Prototypes/Exceptions/Callbacksなどの書き方に対応している。返り値の型が分かれば、それに合わせて検証したりプログラミングができるようになる。作る側も適切に解析されるような記述ができるように心がければ、よりミスの少ない作りになりそうだ。自分のコードで一度試してみると面白そうだ。

MOONGIFTはこう見る

node.jsを使っているということは、解析にv8エンジンのものを使っているのかもしれない。元々Doctor JSはMozilla Labsからリリースされているものなので、JagerMonkeyが使われているのかと思ったが、そうではなさそうだ。

いずれにしてもスクリプト言語を解析して情報を引き出すというのはとても面白い。関数の上にコメントで説明を書くよりも正確だ。コードには仕様もバグも全て込められている。コードを解析することでもっと色々な情報が得られそうだ。

Doctor JS

mozilla/doctorjs - GitHub