コンテンツにスキップ

用語と全体像

Trace Kernelには、通常の開発環境とは異なる用語があります。

このページでは、最初に押さえておくべき用語と、それぞれの関係を整理します。詳細な仕様は各機能ページとAPIリファレンスで扱います。

Trace Kernel
└── workspace
├── context
│ ├── env
│ ├── resource
│ └── dataset
├── work
└── API
├── $print / $println
├── $channel
├── $state
├── $parser
└── $runtime

画像メモ: 上記のツリーを、アプリ画面のどこに対応するか分かる形の図にしたい。左にワークスペース管理画面、右にエディタ上で参照・補完できる$env$resourceを置く構成がよさそう。

workspaceは、Trace Kernelで扱う作業状態です。

context、work、設定をアプリ上でまとめて保持します。保存は必須ではありません。後で再利用したい作業だけ、.trkファイルとして保存できます。

通常の開発環境におけるプロジェクトに近い位置づけですが、目的はアプリケーション開発ではなく、特定の作業をアプリ上でまとめて扱うことです。

contextは、workから参照できる外部情報のまとまりです。

workのコードは、contextに登録された値や入力を$env$resource$datasetなどの形で参照します。登録内容はエディタ補完にも反映されます。

$env.OUTPUT_DIR
$resource.users
$dataset.sourceFiles

envは、パス、URL、固定値などの環境値を定義する要素です。

たとえば、出力先ディレクトリをOUTPUT_DIRとして登録しておくと、work内で$env.OUTPUT_DIRとして参照できます。

const dest = `${$env.OUTPUT_DIR}\\result.txt`;

resourceは、作業中で再利用する入力データを登録する要素です。

CSV、JSON、ログ、テキストなどを登録し、必要に応じてパースした状態でworkから参照します。

for (const user of $resource.users) {
$println(user.name);
}

datasetは、処理対象にするファイル群を定義する要素です。

ルートディレクトリや条件を指定し、workから対象ファイルを走査します。ファイル内容は必要なタイミングで読み込めます。

for (const file of $dataset.workspace) {
const text = await file.content();
$println(file.relativePath);
}

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

登録済みのcontextと、Trace Kernelが提供する独自APIを使って処理を書きます。

const progress = $state.useProgress({ max: $dataset.workspace.length });
for (const file of $dataset.workspace) {
const text = await file.content();
$println(`${file.relativePath}: ${text.length}`);
progress.increment();
}

APIは、Trace Kernelがworkへ提供する機能群です。

出力、進捗表示、パース、ネットワークアクセス、実行制御などを扱います。

API役割
$print / $printlnテキストを出力する
$channel複数の出力ストリームを扱う
$state進捗やモニター表示を更新する
$parserExcel、XML、HTMLなどをパースする
$runtime実行制御やランタイム情報を扱う