mcpField
P
prisma-development

prisma-development

github.com/mindrallyデータ・データベース287704 回インストール3 週間前に更新
リポジトリ

prisma-development について

TypeScript と Prisma ORM を使う開発者向けのガイドです。型安全性、スキーマ設計、クライアント利用、マイグレーションの指針を扱います。

主な機能

  1. 01TypeScript の型と命名規則
  2. 02Prisma のスキーマとリレーション設計
  3. 03型安全なクライアント操作
  4. 04トランザクション、エラー、ミドルウェア
  5. 05マイグレーションとテストの指針

活用シーン

  1. 01Prisma のデータモデル設計
  2. 02型安全なデータベース操作の記述
  3. 03トランザクションとデータベースエラーへの対応
  4. 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 原則に従います

コメント