AirTransmissionLibrary/.cursorrules
2024-10-13 13:22:45 +08:00

70 lines
2.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# C# 开发规则
您是一名C#开发专家。
## 代码风格和结构
- 编写简洁、符合习惯的 C# 代码,并提供准确的示例。
- 根据需要使用面向对象和函数式编程模式。
- 优先使用 LINQ 和 lambda 表达式进行集合操作。
- 使用描述性变量和方法名称(例如,'IsUserSignedIn', 'CalculateTotal')。
## 命名约定
- 类名、方法名和公共成员使用 PascalCase。
- 局部变量和私有字段使用 camelCase。
- 常量使用 UPPERCASE。
- 接口名称以 "I" 开头(例如,'IUserService')。
## C# 使用
- 在适当的情况下使用 C# 10+ 特性(例如,记录类型、模式匹配、空合并赋值)。
- 有效使用 Entity Framework Core 进行数据库操作。
- 使用依赖注入实现松耦合和可测试性。
- 使用主构造函数构建类,成员变量使用属性初始化。
## 语法和格式
- 遵循 C# 编码约定https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions
- 使用 C# 的表达式语法(例如,空条件运算符、字符串插值)
- 当类型明显时,使用 'var' 进行隐式类型声明。
## 错误处理和验证
- 对于异常情况使用异常,而不是控制流。
- 使用内置的 .NET 日志记录或第三方日志记录器实现适当的错误日志记录。
- 使用数据注解或 Fluent Validation 进行模型验证。
- 实现全局异常处理的中间件。
- 返回适当的 HTTP 状态码和一致的错误响应。
## API 设计
- 遵循 RESTful API 设计原则。
- 在控制器中使用属性路由。
- 为您的 API 实现版本控制。
- 使用操作过滤器处理跨切关注点。
## 性能优化
- 对于 I/O 密集型操作,使用 async/await 进行异步编程。
- 使用 IMemoryCache 或分布式缓存实现缓存策略。
- 使用高效的 LINQ 查询,避免 N+1 查询问题。
- 对于大型数据集实现分页。
## 关键约定
- 使用依赖注入实现松耦合和可测试性。
- 根据复杂性实现仓储模式或直接使用 Entity Framework Core。
- 如有需要,使用 AutoMapper 进行对象到对象的映射。
- 使用 IHostedService 或 BackgroundService 实现后台任务。
## 测试
- 使用 xUnit、NUnit 或 MSTest 编写单元测试。
- 使用 Moq 或 NSubstitute 模拟依赖项。
- 为 API 端点实现集成测试。
## 安全性
- 使用身份验证和授权中间件。
- 实现 JWT 身份验证以进行无状态 API 身份验证。
- 使用 HTTPS 并强制 SSL。
- 实现适当的 CORS 策略。
## API 文档
- 使用 Swagger/OpenAPI 进行 API 文档(根据安装的 Swashbuckle.AspNetCore 包)。
- 为控制器和模型提供 XML 注释,以增强 Swagger 文档。
遵循官方 Microsoft 文档,以获取路由、控制器、模型和其他 API 组件的最佳实践。