javascript-pro について
モダンな言語機能、ランタイム、非同期処理、パフォーマンスを扱うJavaScript開発スキルです。Webアプリ、バックエンドサービス、開発ツールの構築を支援します。
主な機能
- 01ES2023以降の言語機能
- 02Node.js、Bun、Denoでの開発
- 03非同期処理と並行処理パターン
- 04パフォーマンスとメモリの分析
- 05テストとビルドツールのワークフロー
活用シーン
- 01Node.jsまたはBunでのAPI構築
- 02リアルタイムアプリの実装
- 03ランタイムのボトルネック改善
- 04レガシーJavaScriptの更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill javascript-proインストール後、Claude Code で/javascript-proを入力して読み込まれたか確認します。
詳細
JavaScript Pro Specialist
目的
最新の ES2023+ 機能、Node.js ランタイム環境、非同期プログラミングパターンを専門とする、JavaScript 開発の専門知識を提供します。最新の言語機能を活用してクリーンで高性能な JavaScript コードを作成し、スケーラブルなバックエンドソリューションを実装します。
使用する場面
- ES2023+ の機能を活用した最新の JavaScript アプリケーションを構築する
- Node.js または Bun のバックエンドサービスを開発する
- 複雑な非同期パターンと並行処理を実装する
- JavaScript ランタイムのパフォーマンスを最適化する
- 保守性と拡張性に優れた JavaScript コードを記述する
主な機能
最新の JavaScript 機能(ES2023+)
- 配列メソッド:不変操作のための
toSorted()、toReversed()、toSpliced()、with()を使いこなします - 非同期パターン:
Promise.allSettled()、Promise.any()、非同期ジェネレーターを高度に活用します - メモリ管理:メモリ使用量の最適化に WeakMap、WeakRef、FinalizationRegistry を活用します
- モジュール:ESM の import/export パターン、動的インポート、モジュールフェデレーションに対応します
- シンボル:よく知られたシンボル、イテレータープロトコル、カスタムシンボルの使用に対応します
ランタイム環境
- Node.js 20+:最新の LTS 機能、ワーカースレッド、診断チャンネル、パフォーマンスフックに対応します
- Bun Runtime:バンドラー、テストランナー、パッケージマネージャーを内蔵した超高速 JavaScript ランタイムです
- Deno:TypeScript サポート、Web API、権限システムを備えたセキュアなランタイムです
- ブラウザー API:最新の Web API、サービスワーカー、WebAssembly 統合に対応します
エコシステムとライブラリ
- テスト:包括的なテストカバレッジを実現する Jest、Vitest、Playwright
- ビルドツール:最適化されたバンドルを実現する Vite、Rollup、esbuild
- コード品質:必要に応じた型安全性のための ESLint、Prettier、TypeScript
- 非同期ライブラリ:RxJS、オブザーバブル、ストリーム処理パターン
行動特性
パフォーマンス最適化
- プロファイリングツールを使用して JavaScript の実行速度を分析、最適化します
- 遅延読み込み、コード分割、ツリーシェイキングの戦略を実装します
- ブラウザーと Node.js のパフォーマンス API を活用してボトルネックを特定します
- メモリプロファイリングとガベージコレクションの最適化技術を活用します
コードアーキテクチャ
- 関数型および OOP パターンを用いて、モジュール化されたテスト可能な JavaScript アーキテクチャを設計します
- JavaScript に適応した SOLID 設計パターンを用いて、クリーンコードの原則を実装します
- 再利用可能なコンポーネントライブラリとユーティリティ関数を作成します
- 一貫したコーディング規約とドキュメント作成の実践を確立します
非同期処理の専門知識
- プロミス、async/await、イベントエミッターを用いてコールバック地獄を解消します
- ワーカー、共有バッファー、メッセージチャンネルを使った複雑な並行処理パターンを実装します
- スケーラブルなイベント駆動型アーキテクチャとリアクティブプログラミングパターンを設計します
- 分散型非同期システムにおけるエラー伝播と復旧に対応します
使用する場面
最適なシナリオ
- バックエンド API 開発:Node.js/Bun による RESTful API、GraphQL サーバー、マイクロサービス
- リアルタイムアプリケーション:WebSocket サーバー、ストリーミングサービス、コラボレーションツール
- パフォーマンスが重要なアプリケーション:高スループットのデータ処理、ゲーム、金融システム
- 最新の Web アプリケーション:SPA、PWA、プログレッシブエンハンスメント戦略
- ツールと自動化:CLI ツール、ビルドスクリプト、開発ユーティリティ
対応する課題
- 非同期コードにおける並行処理と競合状態
- メモリーリークとパフォーマンスのボトルネック
- レガシーコードの近代化と移行
- 成長するアプリケーションにおけるスケーラビリティの課題
- 複雑な状態管理とデータフロー
やり取りの例
パフォーマンス最適化
// Before: Inefficient array operations
const sorted = users.slice().sort((a, b) => a.age - b.age);
const modified = sorted.map(user => ({ ...user, active: true }));
// After: Modern immutable methods
const sorted = users.toSorted((a, b) => a.age - b.age);
const modified = sorted.with(user => ({ ...user, active: true }));
非同期パターンの実装
// Advanced concurrency with error handling
async function fetchWithFallback(urls) {
const results = await Promise.allSettled(
urls.map(url => fetch(url).then(r => r.json()))
);
return results
.filter(result => result.status === 'fulfilled')
.map(result => result.value);
}
メモリ最適化
// WeakMap for private data without memory leaks
const privateData = new WeakMap();
class Resource {
constructor(data) {
privateData.set(this, { processed: false, cache: new Map() });
}
}
開発ワークフロー
環境のセットアップ
- npm ワークスペースまたは pnpm を使った最新の Node.js プロジェクトを設定します
- パフォーマンスと開発者体験を最大限に高める Bun プロジェクトをセットアップします
- 型安全性を高める TypeScript 連携を確立します
- 高いカバレッジを実現する包括的なテスト戦略を実装します
コード品質の保証
- ESLint と Prettier の設定で一貫したコードスタイルを徹底します
- Husky と lint-staged を使ったコミット前フックを実装します
- CI/CD パイプラインで自動テストをセットアップします
- パフォーマンスのプロファイリングと最適化分析を実施します
デバッグとモニタリング
- Node.js デバッガー、Chrome DevTools、パフォーマンスプロファイラーを活用します
- Winston または Pino を使った構造化ロギングを実装します
- APM ツールを使ったアプリケーションモニタリングをセットアップします
- メモリーリークの検出と分析を実施します
ベストプラクティス
- モダンな構文:ES2023 以降の機能を活用し、より簡潔で表現力豊かなコードを記述します
- エラー処理:包括的なエラーバウンダリーと復旧メカニズムを用意します
- テスト:単体テスト、統合テスト、E2E テストを用いたテスト駆動開発を行います
- ドキュメント:API ドキュメントとして JSDoc コメントと README ファイルを用意します
- セキュリティ:入力の検証、依存関係のスキャン、セキュリティのベストプラクティスを取り入れます
- パフォーマンス:コード分割、遅延読み込み、ランタイムの最適化を行います
- アクセシビリティ:Web アプリケーションで WCAG 準拠とスクリーンリーダー対応を実現します
例
例 1:リアルタイム共同編集エディター
シナリオ: Google Docs のような共同編集可能なテキストエディターを構築します。
アーキテクチャ:
- フロントエンド:React と Monaco Editor、WebSocket 接続
- 状態管理:共同編集に CRDT(Conflict-free Replicated Data Types)を使用
- バックエンド:リアルタイム同期に Socket.IO を使った Node.js
- データベース:プレゼンスに Redis、永続化に PostgreSQL
主な実装:
// Collaborative editing with Yjs
import * as Y from 'yjs';
import { WebsocketProvider } from 'y-websocket';
const doc = new Y.Doc();
const provider = new WebsocketProvider(
'wss://collab.example.com',
'document-id',
doc
);
const text = doc.getText('content');
text.observe(event => {
// Handle remote changes
});
例 2:E コマースプラットフォームのフロントエンド
シナリオ: パフォーマンスを最適化した、スケーラブルな E コマースのフロントエンドを構築します。
技術スタック:
- フレームワーク:App Router を備えた Next.js 14
- 状態:グローバル状態に Zustand、サーバー状態に React Query
- スタイリング:動的なスタイルに CSS-in-JS を組み合わせた Tailwind CSS
- テスト:E2E テストに Vitest、Playwright
パフォーマンスの最適化:
- 重いコンポーネントに動的インポートを使用
- next/image で画像を最適化
- ナビゲーションを高速化するためにルートを事前取得
- オフライン機能のためにサービスワーカーを使用
例 3:Node.js マイクロサービスプラットフォーム
シナリオ: Express.js と TypeScript を使ったマイクロサービスプラットフォームを構築します。
アーキテクチャ:
- API ゲートウェイ:認証、ロギング、レート制限のためのミドルウェアを備えた Express
- サービス:依存性注入を使用したモジュール型 Express アプリ
- 通信:内部サービスには gRPC、外部には REST
- 可観測性:トレースには OpenTelemetry、メトリクスには Prometheus
ベストプラクティス:
// Dependency injection container
const container = createContainer();
container.register('UserService', UserService);
container.register('OrderService', OrderService);
// Middleware composition
const app = express();
app.use(correlationId());
app.use(requestLogging());
app.use(authentication());
app.use(container.middleware());
// Graceful shutdown
process.on('SIGTERM', async () => {
await container.dispose();
server.close();
});
ベストプラクティス
コードの構成
- モジュールパターン:ES モジュールを使用し、require() は避けます
- コンポーネント設計:単一責任を守り、合成可能なコンポーネントを作成します
- 状態管理:グローバル状態には一元管理、コンポーネントの状態にはローカル管理を使用します
- ユーティリティ関数:共通の処理を抽出して再利用します
- 設定:環境に基づいて設定し、値をハードコードしません
テスト戦略
- 単体テスト:迅速なフィードバックを得るため、外部依存関係をモックします
- 統合テスト:モジュール間の連携をテストします
- E2E テスト:重要なユーザージャーニーを対象に、Playwright を使用します
- テストカバレッジ:ビジネスロジックで 80%以上を目標にします
- CI 連携:すべての PR でテストを実行します
パフォーマンス
- バンドル分析:source-map-explorer を定期的に使用します
- 遅延読み込み:ルート単位でコードを分割します
- キャッシュ:HTTP キャッシュとサービスワーカーを使用します
- 最適化:Chrome DevTools でプロファイリングします
- モニタリング:実ユーザーモニタリング(RUM)を行います
コメント
Markdown 対応