1、会话列表、消息界面展示与后端打通 后端: 1、修复会话和消息服务现存问题 2、会话对象不再返回Message对象,而是使用MessageBaseDto替代 3、修改查询会话列表和会话信息的逻辑 4、新增消息列表查询 文档: 后端代码规范文档新增从数据库同步到模型的命令
2.9 KiB
2.9 KiB
项目规范文档
1. 命名规范
-
全局命名
- 采用 小驼峰命名法(camelCase),例如:
aBbCc。 - 特殊情况除外,例如 .NET 编译器要求方法名使用大驼峰(PascalCase)。
- 采用 小驼峰命名法(camelCase),例如:
-
各层命名规范
- Controllers:自定义命名 +
Controller - Services:自定义命名 +
Service - Dtos:自定义命名 +
Dto
- Controllers:自定义命名 +
2. 文件/文件夹规范
| 文件夹 | 功能描述 | 注意事项 |
|---|---|---|
| Controllers | 存放控制器和 Actions,用于处理请求和响应 | 禁止直接操作数据库。如需数据库操作,应先在 Services 层编写业务逻辑再调用 |
| Services | 存放业务逻辑代码,包括数据库交互 | 应在 Service 层处理所有业务逻辑,保证 Controller 层纯粹用于请求处理 |
| Dtos | 存放不同层之间的数据传输模型(DTO) | 用于数据类型转换,例如返回用户信息时需剔除密码等敏感信息。禁止直接返回数据库模型类 |
| Models | 存放数据库模型类(Entity) | 一般情况下请勿随意修改 |
| appsettings.json | 存放配置文件,如数据库连接字符串、Redis 配置等 | 禁止在业务代码中硬编码配置信息,统一放在此文件中 |
3. Service 编写与使用规范
3.1 编写 Service
- 在
Interface/Services文件夹下创建接口,定义业务方法框架。 - 提交接口代码至 Gitea,合并并通过审核。
- 在
Services文件夹下新建类,实现上述接口。
3.2 注册 Service
- 在
Configs/ServiceCollectionExtensions.cs文件的AddAllService方法中添加:
services.AddTransient<接口类型, 实现类>();
-
根据业务逻辑选择生命周期:
- AddTransient:瞬时
- AddScoped:请求范围
- AddSingleton:单例
3.3 在 Controller 中使用 Service
- 在 Controller 内定义属性:
private readonly IDemo _demo;
- 在构造函数中通过依赖注入接收接口实例:
public WeatherForecastController(IDemo demo)
{
_demo = demo;
}
- 在 Controller 方法中使用
_demo调用业务逻辑方法。
4. 模型类字段使用规范
4.1 类中状态相关字段,例如:Status,返回值为sbyte。若类中有同名字段+后缀Enum,则优先使用后者,StatusEnum。
5.数据库相关
5.1 若数据库表结构更新,请在软件包控制台执行如下命令:
Scaffold-DbContext "Name=ConnectionStrings:DefaultConnection" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Context ImContext -Force -NoOnConfiguring