关于 prisma-development
面向使用 TypeScript 和 Prisma ORM 的开发者,提供类型安全、模式设计、客户端使用及迁移方面的实践建议。
主要功能
- 01TypeScript 类型与命名规范
- 02Prisma 模式和关系设计
- 03类型安全的客户端操作
- 04事务、错误处理与中间件
- 05迁移和测试建议
适用场景
- 01设计 Prisma 数据模型
- 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
- 每个文件仅导出一个对象
- 优先编写自我说明的代码
命名约定
- 类和接口使用 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