マーブルダイアグラムは、時間を横軸にとり、値の変化を縦軸に表現します。イベントやデータの流れを視覚的に示すことができます。典型的には、ラインやプロットポイントを使ってデータのフローを表現し、イベントの発生や値の変化を示します。
マーブルダイアグラムは、リアクティブプログラミングライブラリやフレームワークでよく使用されます。例えば、RxJSというJavaScriptのライブラリでは、ストリームやオブザーバブルのフローをマーブルダイアグラムで視覚化することができます。
以下に、マーブルダイアグラムの使用例を示します。
const { fromEvent } = rxjs;
const { map, filter, debounceTime } = rxjs.operators;
// ボタンクリックイベントをストリーム化し、マーブルダイアグラムで表現する
const button = document.querySelector('button');
const clickStream = fromEvent(button, 'click');
clickStream
.pipe(
map(event => event.target.innerText), // クリックしたボタンのテキストを取得
filter(text => text.length > 0), // テキストが空でないかフィルタリング
debounceTime(1000) // 1秒間のクリックを無視する
)
.subscribe(text => {
console.log(`Clicked button with text: ${text}`);
});
上記のコードでは、fromEvent
関数を使用してボタンのクリックイベントをストリーム化し、そのストリームに対してさまざまな演算子を適用しています。map
演算子はクリックしたボタンのテキストを取得し、filter
演算子はテキストが空でないかを確認します。さらに、debounceTime
演算子は1秒間のクリックを無視するように設定されています。最後に、subscribe
メソッドでストリームを購読し、クリックしたボタンのテキストをコンソールに表示します。
このように、マーブルダイアグラムを使用することで、非同期プログラミングのフローとタイミングをより明確に表現することができます。リアクティブプログラミングやRxJSを学ぶ際には、マーブルダイアグラムが便利なツールとなるでしょう。