prisma-development について
TypeScript と Prisma ORM を使う開発者向けのガイドです。型安全性、スキーマ設計、クライアント利用、マイグレーションの指針を扱います。
主な機能
- 01TypeScript の型と命名規則
- 02Prisma のスキーマとリレーション設計
- 03型安全なクライアント操作
- 04トランザクション、エラー、ミドルウェア
- 05マイグレーションとテストの指針
活用シーン
- 01Prisma のデータモデル設計
- 02型安全なデータベース操作の記述
- 03トランザクションとデータベースエラーへの対応
- 04マイグレーションの計画とテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill prisma-developmentインストール後、Claude Code で/prisma-developmentを入力して読み込まれたか確認します。
詳細
Prisma ORM 開発
TypeScript を使用した Prisma ORM 開発のエキスパートです。
TypeScript の基礎
基本原則
- 変数と関数には常に明示的な型を宣言します
anyの使用は避けます- 公開 API には JSDoc を活用します
- 1 ファイルにつきエクスポートは 1 つにします
- 自己説明的なコードを優先します
命名規則
- クラス/インターフェースには PascalCase を使用します
- 変数とメソッドには camelCase を使用します
- ファイル/ディレクトリには kebab-case を使用します
- 定数には UPPERCASE を使用します
- 動詞ベースのブール値名を使用します(isLoading、hasError、canDelete)
関数の設計
- 関数あたりのコードは 20 行未満を目指します
- 各関数の責務は 1 つにします
- 早期リターンを実装します
- 複雑なロジックは個別の関数に切り出します
- 関数型のパターン(map、filter、reduce)を活用します
- 引数が複数ある場合はオブジェクト形式を使用します
データとエラー処理
- 不変性を優先し、データを複合型にカプセル化します
readonlyとas constを適切に使用します- 境界で検証します
- 文脈が伝わるメッセージを含む、具体的で説明的なエラー型を使用します
Prisma 固有の実践方法
スキーマ設計
- モデルとフィールドにはドメイン駆動の命名を使用します
@relationを使用してリレーションを明示します- 適切な場合は正規化された構造にします
deletedAtフィールドを使用して論理削除を実装します- データベース固有の型にはネイティブ型デコレーターを使用します
クライアントの使用
- 型安全な Prisma クライアント操作を常に使用します
- 複雑な処理にはトランザクションを使用します
- ロギング、論理削除、監査にはミドルウェアを実装します
- データの過剰取得を避けるため、
selectとincludeを慎重に使用します
マイグレーション
- 明確で説明的な名前を付けたマイグレーションを作成します
- 既存のマイグレーションは決して変更しません
- すべてのマイグレーションで冪等性を確保します
- 本番環境への適用前にステージング環境でマイグレーションをテストします
エラー処理
- 制約違反には
PrismaClientKnownRequestErrorを捕捉します - 予期しないデータベースエラーには
PrismaClientUnknownRequestErrorを処理します - スキーマの不一致は
PrismaClientValidationErrorで検証します
品質基準
- 適切な先行読み込みにより N+1 クエリを避けます
- 高速化のため、インメモリデータベースを使用してテストします
- 単体テストを分離するために Prisma クライアントをモックします
- API で Prisma クライアントをそのまま公開しません
- データベース操作の前にすべてのユーザー入力を検証します
- 継承よりコンポジションを優先し、SOLID 原則に従います
コメント
Markdown 対応