fastify-best-practices について
バックエンド開発者向けの Fastify スキルです。プラグイン、ルート、スキーマ、テスト、本番運用の実践方法を扱います。
主な機能
- 01プラグインとルートの設計
- 02スキーマ検証とシリアライズ
- 03エラー処理とリクエストフック
- 04認証とセキュリティのパターン
- 05inject() によるテスト
- 06パフォーマンスとデプロイの指針
活用シーン
- 01Fastify バックエンドの構成
- 02スキーマベースのリクエスト検証の追加
- 03inject() を使ったルートのテスト
- 04本番環境に向けた Fastify サービスの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mcollina/ skills --skill fastify-best-practicesインストール後、Claude Code で/fastify-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonrules/authentication.mdconfiguration.mdcontent-type.mdcors-security.mddatabase.mddecorators.mddeployment.mderror-handling.mdhooks.mdhttp-proxy.mdlogging.mdperformance.mdplugins.mdroutes.mdschemas.mdserialization.mdtesting.mdtypescript.mdwebsockets.md詳細
使用するタイミング
次のような場合に、このスキルを使用してください。
- Fastify を使用してバックエンドアプリケーションを開発する
- Fastify プラグインとルートハンドラーを実装する
- Fastify のアーキテクチャとパターンについてガイダンスを得る
- Fastify で TypeScript を使用する(型を取り除く)
- Fastify の inject メソッドを使ってテストを実装する
- バリデーション、シリアライゼーション、エラー処理を設定する
クイックスタート
すぐに始められる、最小限の実行可能な Fastify サーバーです。
import Fastify from 'fastify'
const app = Fastify({ logger: true })
app.get('/health', async (request, reply) => {
return { status: 'ok' }
})
const start = async () => {
await app.listen({ port: 3000, host: '0.0.0.0' })
}
start()
よくあるシナリオ別の推奨読書順
- Fastify を初めて使いますか?
plugins.md→routes.md→schemas.mdの順に読み始めてください - 認証を追加する場合:
plugins.md→hooks.md→authentication.md - パフォーマンスを向上させる場合:
schemas.md→serialization.md→performance.md - テストを設定する場合:
routes.md→testing.md - 本番環境へ移行する場合:
logging.md→configuration.md→deployment.md
使い方
詳しい説明とコード例については、各ルールファイルをお読みください。
- rules/plugins.md - プラグインの開発とカプセル化
- rules/routes.md - ルートの構成とハンドラー
- rules/schemas.md - JSON Schema のバリデーション
- rules/error-handling.md - エラー処理のパターン
- rules/hooks.md - フックとリクエストのライフサイクル
- rules/authentication.md - 認証と認可
- rules/testing.md - inject() を使ったテスト
- rules/performance.md - パフォーマンスの最適化
- rules/logging.md - Pino によるロギング
- rules/typescript.md - TypeScript の統合
- rules/decorators.md - デコレーターと拡張機能
- rules/content-type.md - Content-Type の解析
- rules/serialization.md - レスポンスのシリアライゼーション
- rules/cors-security.md - CORS とセキュリティヘッダー
- rules/websockets.md - WebSocket のサポート
- rules/database.md - データベース統合のパターン
- rules/configuration.md - アプリケーションの設定
- rules/deployment.md - 本番環境へのデプロイ
- rules/http-proxy.md - HTTP プロキシと reply.from()
基本原則
- カプセル化: Fastify のプラグインシステムは、自動的にカプセル化を行います
- スキーマ優先: バリデーションとシリアライゼーションのためにスキーマを定義します
- パフォーマンス: Fastify は速度に最適化されています。その機能を正しく使用してください
- Async/await: すべてのハンドラーとフックで非同期関数を使用できます
- 依存関係を最小限に: Fastify の組み込み機能と公式プラグインを優先してください
コメント
Markdown 対応