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. 01设计 Prisma 数据模型
  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
  • 每个文件仅导出一个对象
  • 优先编写自我说明的代码
命名约定
  • 类和接口使用 PascalCase
  • 变量和方法使用 camelCase
  • 文件和目录使用 kebab-case
  • 常量使用 UPPERCASE
  • 布尔值名称使用动词形式(isLoading、hasError、canDelete)

函数设计

  • 尽量将每个函数控制在 20 行代码以内
  • 每个函数只承担一项职责
  • 尽早返回
  • 将复杂逻辑提取到单独的函数中
  • 运用函数式模式(map、filter、reduce)
  • 参数较多时使用对象参数

数据与错误处理

  • 使用复合类型封装数据,并优先考虑不可变性
  • 适当使用 readonly 和 as const
  • 在边界处进行验证
  • 使用具体、描述性强且包含上下文信息的错误类型

Prisma 专属实践

架构设计
  • 模型和字段采用领域驱动的命名方式
  • 使用 @relation 明确声明关系
  • 在适当情况下采用规范化结构
  • 通过 deletedAt 字段实现软删除
  • 使用原生类型修饰符指定数据库专属类型
客户端用法
  • 始终使用类型安全的 Prisma 客户端操作
  • 复杂流程使用事务
  • 使用中间件实现日志记录、软删除和审计
  • 审慎使用 select 和 include,避免过度获取数据
迁移
  • 创建命名清晰、描述明确的迁移
  • 切勿修改现有迁移
  • 确保所有迁移都具有幂等性
  • 在生产环境部署前,先在预发布环境测试迁移
错误处理
  • 对约束冲突捕获 PrismaClientKnownRequestError
  • 对意外的数据库错误处理 PrismaClientUnknownRequestError
  • 使用 PrismaClientValidationError 验证架构不匹配的问题

质量标准

  • 通过恰当的预加载避免 N+1 查询
  • 使用内存数据库进行快速测试
  • 在单元测试中模拟 Prisma 客户端,以实现测试隔离
  • 切勿在 API 中暴露原始 Prisma 客户端
  • 在数据库操作前验证所有用户输入
  • 遵循 SOLID 原则,优先使用组合而非继承

评论

支持 Markdown