Agent skill

concurrency-async

並行処理や非同期操作を実装する際に使用。

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/concurrency-async

SKILL.md

Concurrency and Async

📋 実行前チェック(必須)

このスキルを使うべきか?

  • 並列処理を実装する?
  • async/awaitを使用する?
  • 競合状態の懸念がある?
  • Promise.all等で並列実行する?

前提条件

  • 各タスクが独立しているか確認したか?
  • 順序依存性を把握しているか?
  • エラーハンドリングを検討したか?

禁止事項の確認

  • 独立タスクを順次実行しようとしていないか?
  • 競合状態を無視しようとしていないか?
  • await漏れがないか確認したか?
  • Promise.allでの1つの失敗で全体が失敗することを考慮したか?

トリガー

  • 並列処理実装時
  • async/await使用時
  • 競合状態の懸念がある時
  • Promise.all等の並列実行時

🚨 鉄則

競合状態を常に意識。シンプルに保つ。


並列実行

typescript
// ✅ 独立タスクは並列
const [users, products] = await Promise.all([
  fetchUsers(),
  fetchProducts()
]);

// ❌ 不要な順次実行
const users = await fetchUsers();
const products = await fetchProducts();

エラーハンドリング

typescript
// Promise.allは1つ失敗で全体失敗
// 個別にエラーハンドリングしたい場合
const results = await Promise.allSettled([
  fetchUsers(),
  fetchProducts()
]);

results.forEach(result => {
  if (result.status === 'fulfilled') {
    console.log(result.value);
  } else {
    console.error(result.reason);
  }
});

🚫 禁止事項まとめ

  • 独立タスクの順次実行
  • 競合状態の無視
  • await漏れ
  • エラーハンドリング忘れ

Didn't find tool you were looking for?

Be as detailed as possible for better results