Java scriptable debugger on JupyterLab
JISDLabは記述したスクリプトに従って動作するJavaデバッグ環境です.Jupyter Notebookにデバッグ手順を文書やJavaコードの形で記述することで,デバッグ作業の再利用が容易になり,デバッグ作業の負担を軽減できます.
JISDLabはJavaデバッグライブラリのJISDを用いています.JISDはJupyterLab上での利用を想定していますが,ご自身の環境でJavaライブラリとして使用することも可能です.
詳しくはJISDLabリポジトリをご覧ください.
スクリプタブルデバッグとは,記述したスクリプトに従って動作するデバッガを用いたデバッグ方法です.開発者はデバッグの工程においてブレークポイントの設置やステップ実行などの個々のデバッグ作業またはそれらを組み合わせた一連の作業を繰り返し行うことが頻繁にあり,このことは開発者にとって大きな負担になっていました.JISDLabではスクリプタブルデバッグという方法でそのようなデバッグ作業に伴う負担を軽減します.一度記述したスクリプトはいつでも実行でき,Notebook形式のためファイルを共有するだけでデバッグ作業を容易に共有,再現することができます.
文芸的デバッグとは,文芸的プログラミングをデバッグ時に適用したデバッグ方法です.文芸的プログラミングは,Donald Knuthが提唱したコンピュータのプログラミングスタイルであり,フォーマットされた自然言語テキスト,実行可能なコードスニペット,計算結果を織り交ぜることでプログラムの理解を支援するものです.近年では,データサイエンス分野では,Jupyter Notebookに代表される対話型の文芸的プログラミングツールが広く利用されています.JISDLabはこの文芸的プログラミングをデバッグ時に実践することによって,デバッグ作業を容易に文書化,共有,再現することが可能です.
JISDLabは収集した観測値を可視化するため,Elasticsearch等のツールに対してデータをエクスポートすることができます.エクスポートされたデータを使って,GrafanaやKibanaといったツールでそのまま可視化することで,反復等によって大量の変数データがある中での異常値の検出や,値の定点観測等に使用できます.JISDLabを使用すればこれらはデバッグ対象のプログラムの外部から観測できるため,本番用のコードから切り離した運用が可能であり,本番時に不要なデバッグコードが残ってしまうようなミスを回避できます.