mcpField
J
javascript-pro

javascript-pro

github.com/404kidwiz開発110 回インストール
リポジトリ

javascript-pro について

モダンな言語機能、ランタイム、非同期処理、パフォーマンスを扱うJavaScript開発スキルです。Webアプリ、バックエンドサービス、開発ツールの構築を支援します。

主な機能

  1. 01ES2023以降の言語機能
  2. 02Node.js、Bun、Denoでの開発
  3. 03非同期処理と並行処理パターン
  4. 04パフォーマンスとメモリの分析
  5. 05テストとビルドツールのワークフロー

活用シーン

  1. 01Node.jsまたはBunでのAPI構築
  2. 02リアルタイムアプリの実装
  3. 03ランタイムのボトルネック改善
  4. 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 のような共同編集可能なテキストエディターを構築します。

アーキテクチャ:

  1. フロントエンド:React と Monaco Editor、WebSocket 接続
  2. 状態管理:共同編集に CRDT(Conflict-free Replicated Data Types)を使用
  3. バックエンド:リアルタイム同期に Socket.IO を使った Node.js
  4. データベース:プレゼンスに 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 を使ったマイクロサービスプラットフォームを構築します。

アーキテクチャ:

  1. API ゲートウェイ:認証、ロギング、レート制限のためのミドルウェアを備えた Express
  2. サービス:依存性注入を使用したモジュール型 Express アプリ
  3. 通信:内部サービスには gRPC、外部には REST
  4. 可観測性:トレースには 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)を行います

コメント