汎用ソフトウェア開発⭐ リポ 378品質スコア 85/100
kotlin-coroutines
Kotlinの構造化並行処理、Flow、Channelパターンに対応しています。
description の原文を見る
Kotlin structured concurrency, Flow, and Channel patterns.
SKILL.md 本文
Kotlin コルーチン パターン
Kotlin コルーチン開発の統括スキル: 構造化並行処理、キャンセレーション、Flow、StateFlow/SharedFlow、Channel、例外処理、およびディスパッチャーをカバーしています。タスクに応じて適切なリファレンスへ導きます。
リファレンス読み込みテーブル
| シグナル | 読み込むファイル | 理由 |
|---|---|---|
| Concurrency | concurrency-patterns.md | スコープ、キャンセレーション、ディスパッチャー、例外処理 |
| Flow | flow-patterns.md | Flow ビルダー、StateFlow、SharedFlow、オペレータ |
| Channels | channel-patterns.md | プロデューサー・コンシューマー、ファンイン・ファンアウト パターン |
| 失敗モード | preferred-patterns.md | GlobalScope、非構造化 launch、CancellationException |
手順
ステップ 1: ドメインを特定する
タスクを 1 つ以上のドメインに分類し、対応するリファレンス ファイルを読み込みます。 必要なものだけを読み込んでください -- すべてのタスクに対してすべてのリファレンスを読み込まないでください。
| ドメイン | リファレンスを読み込む | タイミング |
|---|---|---|
| Concurrency | references/concurrency-patterns.md | スコープ、キャンセレーション、ディスパッチャー、例外処理 |
| Flow | references/flow-patterns.md | Flow ビルダー、StateFlow、SharedFlow、オペレータ |
| Channels | references/channel-patterns.md | プロデューサー・コンシューマー、ファンイン・ファンアウト パターン |
| 失敗モード | references/preferred-patterns.md | GlobalScope、非構造化 launch、CancellationException |
複数のドメインが当てはまる場合もあります。例えば、Flow と Channel の両方を使用するコードをレビューする場合は、flow-patterns.md と channel-patterns.md の両方を読み込む必要があります。
ステップ 2: リファレンスを読み込んで従う
${CLAUDE_SKILL_DIR}/references/<name>.md を使用して、選択したリファレンス ファイルを読みます。
各リファレンスには、そのドメインの完全なパターン、コード例、および決定マトリックスが含まれています。リファレンスの指示に従います。これはこのスキルの指示そのものです。
ステップ 3: 実行する
読み込んだリファレンス パターンをタスクに適用します。コード例を実装ガイダンスのテンプレートとして使用します。
重要な原則
- 構造化並行処理は必須です -- すべてのコルーチンは、そのライフタイムを定義する親スコープを持つ必要があります。
- ディスパッチャーをインジェクトします -- 呼び出し元(とテスト)がスレッド制御できるように、
CoroutineDispatcherをパラメータとして受け入れます。 - 常に CancellationException を再スローします -- 即座に再スローするか、
Exceptionをキャッチする代わりに特定の例外型を使用します。 - Channel より Flow を優先します -- Flow はコールド、合成可能、バックプレッシャーに対応しています。Channel はより低レベルです。Flow では表現できないパターンの場合のみ使用してください。
- 部分的な失敗耐性には supervisorScope を使用します -- 独立したタスクが相互にキャンセルしてはいけない場合は、supervisorScope でラップします。
- GlobalScope の代わりにスコープ付きコルーチンを使用します -- GlobalScope はライフサイクル、キャンセレーション、構造化並行処理がありません。アプリケーション フレームワークからスコープを渡してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- notque
- リポジトリ
- notque/vexjoy-agent
- ライセンス
- MIT
- 最終更新
- 2026/5/12
Source: https://github.com/notque/vexjoy-agent / ライセンス: MIT