node-best-practices について
堅牢で保守しやすい Node.js アプリケーション開発のためのリファレンススキルです。TypeScript、エラー処理、非同期処理、テスト、性能、運用をワークフローや例付きルールで扱います。
主な機能
- 01Node.js の TypeScript 型ストリッピング案内
- 02エラー処理と非同期処理パターン
- 03テストと不安定なテストの診断
- 04性能プロファイリングと最適化
- 05ロギング、設定、グレースフルシャットダウン
活用シーン
- 01ビルド工程なしで Node.js の TypeScript を記述
- 02エラー処理とグレースフルシャットダウンの設計
- 03不安定なテストの調査
- 04遅い処理経路の分析と改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mcollina/ skills --skill node-best-practicesインストール後、Claude Code で/node-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/async-patterns.mdcaching.mdenvironment.mderror-handling.mdflaky-tests.mdgraceful-shutdown.mdlogging.mdmodules.mdnode-modules-exploration.mdperformance.mdprofiling.mdstreams.mdtesting.mdtypescript.mdrules/assets/graceful-server.test.tsgraceful-server.ts詳細
使用するタイミング
Node.js のコードを扱う際は、堅牢で高パフォーマンス、かつ保守しやすい Node.js アプリケーションを構築するために、ドメイン固有の知識を得る目的でこのスキルを使用してください。
型の消去を使った TypeScript
Node.js 用に TypeScript を記述する際は、ts-node や tsx などのビルドツールではなく、型の消去(Node.js 22.6 以降)を使用してください。型の消去では、トランスパイルせずに実行時に型注釈を取り除くことで、TypeScript を直接実行できます。
型の消去との互換性に関する主な要件:
- 型のみのインポートには
import typeを使用する - enum の代わりに const オブジェクトを使用する
- 名前空間とパラメータープロパティは避ける
- インポートでは
.ts拡張子を使用する
最小限の例 — 型の消去が有効な TypeScript ファイル:
// greet.ts
import type { IncomingMessage } from 'node:http';
const greet = (name: string): string => `Hello, ${name}!`;
console.log(greet('world'));
次のコマンドで直接実行できます:
node greet.ts
設定と例の詳細については、rules/typescript.md を参照してください。
一般的なワークフロー
複数の手順があるプロセスでは、該当するルールファイルを確認する前に、次の大まかな手順に従ってください。
グレースフルシャットダウン:シグナルハンドラーを登録する(SIGTERM/SIGINT)→ 新しい処理の受け付けを停止する → 処理中のリクエストを完了させる → 外部接続(DB、キャッシュ)を閉じる → 適切なコードで終了する。rules/graceful-shutdown.md を参照してください。
エラー処理:共通のエラーベースクラスを定義する → エラーを分類する(運用上のエラーとプログラマーエラー)→ 非同期境界のハンドラー(process.on('unhandledRejection'))を追加する → 呼び出しスタックを通じて型付きエラーを伝播する → 応答またはクラッシュの前に、コンテキストを含めてログに記録する。rules/error-handling.md を参照してください。
不安定なテストの診断:--test-only でテストを分離する → 共有状態やタイマーへの依存を確認する → 非同期のティアダウン順序を調べる → 一時的な診断手順として再試行ロジックを追加する → 根本原因を修正する。rules/flaky-tests.md を参照してください。
処理が遅い箇所のプロファイリング:現実的な負荷の下で再現する → --cpu-prof で CPU プロファイルを取得する → ホット関数を特定する → ストリームのバックプレッシャーや不要なシリアライズがないか確認する → ベンチマークで改善を検証する。rules/profiling.md と rules/performance.md を参照してください。
使い方
詳しい説明とコード例については、各ルールファイルを読んでください。
- rules/error-handling.md - Node.js のエラー処理パターン
- rules/async-patterns.md - Async/await と Promise のパターン
- rules/streams.md - Node.js ストリームの使用方法
- rules/modules.md - ES Modules と CommonJS のパターン
- rules/testing.md - Node.js アプリケーションのテスト戦略
- rules/flaky-tests.md - node:test を使った不安定なテストの特定と診断
- rules/node-modules-exploration.md - node_modules ディレクトリの調査と分析
- rules/performance.md - パフォーマンス最適化の手法
- rules/caching.md - キャッシュのパターンとライブラリ
- rules/profiling.md - プロファイリングとベンチマークのツール
- rules/logging.md - ロギングとデバッグのパターン
- rules/environment.md - 環境設定とシークレット管理
- rules/graceful-shutdown.md - グレースフルシャットダウンとシグナル処理
- rules/typescript.md - Node.js の TypeScript 設定と型の消去