コンテンツにスキップ

work

workは、Trace Kernelで実際に実行するTypeScriptプログラムです。

ワークスペースには、入力や設定を表すcontextと、処理本体を表すworkを登録します。workはコンテキストではありませんが、ワークスペースに生える実行単位として、contextと並んで管理されます。

workspace
├── context
│ ├── env
│ ├── resource
│ └── dataset
└── work

1つのworkは、1つのプログラムとして扱います。通常のTypeScriptプロジェクトのようなファイル分割、import/export、ビルド設定はありません。複数のworkを作る場合も、それぞれは独立しており、必要に応じて手動で順に実行します。

workのプログラムでは、$で始まるAPIと、ワークスペースに登録したcontextを参照できます。たとえば、$print$printlnはTrace KernelのGUI上の出力パネルへ文字列を出力するAPIです。これは、通常の開発環境でターミナルへ出力するconsole.logとは役割が異なります。

利用できるAPIやcontextは、そのworkの設定とワークスペースの状態によって決まります。

work追加時

項目説明
nameワーク名。識別用の名前で、他のworkから自動参照されるものではありません。
output_method出力方式。PlainまたはChannelを選びます。
api_injections利用できる独自APIの一覧です。
context_injectionsworkから参照できるcontextの一覧です。error状態のcontextは表示されません。

api_injectionscontext_injectionsは、そのworkのプログラムから何を参照できるかを表します。GUIで登録したcontextや、Trace Kernelが提供するAPIは、エディタ上の補完候補にも反映されます。

output_methodは、そのworkでどの出力方式を使うかを決める設定です。

output_method使えるAPI用途
Plain$print / $printlnシンプルなテキスト出力
Channel$channel複数ストリーム、テーブル出力

最初はPlainで十分です。文字列を出力して結果を確認するだけなら、$print$printlnで扱えます。

複数の出力を切り替えたい場合や、表形式で結果を確認したい場合はChannelを使います。Channelを選ぶと、チャンネルごとに出力を分けたり、テーブル形式で結果を表示したりできます。

Channelで使うAPIの詳細は、$channelを参照してください。

実行結果を次の作業につなげる

Section titled “実行結果を次の作業につなげる”

workは、単独で完結する処理として使うだけではありません。実行結果を確認し、その結果を次の入力として登録し直すことで、作業を段階的につなげられます。

work Aを実行する
結果を確認する
必要な結果をresourceとして登録する
work Bでそのresourceを参照して処理する
さらに結果を確認する

たとえば、大量のログから必要な行だけを抽出し、その結果をresourceとして登録して、別のworkで集計や整形を行うことができます。

作業をフェーズごとに分ける場合は、次のように複数のworkを使います。

work 1: データを収集し、出力結果を中間データとしてresourceに登録する
work 2: 中間データを解析・整形し、必要な結果を確認する
work 3: 最終的な成果物を作る

この流れを使うと、ひとつの大きな処理を無理に書き切るのではなく、確認しながら小さな処理に分けて進められます。Trace Kernelにおけるworkは、単なるスクリプト置き場ではなく、入力、確認、次の入力定義を循環させるための作業単位です。

画像メモ: work Aの出力をコピーし、resourceとして再登録し、work Bの補完候補に出てくるところまでを見せるGIFがあるとよい。Trace Kernelでは「結果確認」と「次の入力定義」を循環させられることを伝える。

workにプログラムを書く操作は、プログラムを書くで扱います。workから参照できる入力や設定は、Context概要から確認してください。