编码规范
后端编码规范
依赖注入
构造函数注入使用元组解构赋值模式:
csharp
public UserService(ISqlSugarRepository<UserAggregateRoot, Guid> repository,
UserManager userManager, ICurrentUser currentUser) : base(repository) =>
(_userManager, _currentUser, _repository) =
(userManager, currentUser, repository);对象映射
使用 Mapster(非 AutoMapper):
csharp
userRoleMenu.User = user.Adapt<UserDto>();
role.Adapt<RoleDto>();查询模式
使用 SqlSugar 的 WhereIF 进行条件过滤:
csharp
var outPut = await _repository._DbQueryable
.WhereIF(!string.IsNullOrEmpty(input.UserName), x => x.UserName.Contains(input.UserName!))
.WhereIF(input.State is not null, x => x.State == input.State)
.ToPageListAsync(input.SkipCount, input.MaxResultCount, total);分页字段沿用 ABP 命名,但项目内按 SqlSugar 页码语义使用:
SkipCount:当前页码,从 1 开始。MaxResultCount:每页大小。- 禁止把
SkipCount写成 offset,例如(currentPage - 1) * pageSize。
前端编码规范
TypeScript
- 使用 TypeScript 5.8
- 严格类型检查
- 避免使用
any
代码风格
- 遵循 ESLint 规则
- 使用 Prettier 格式化
- 统一的命名规范
分页参数
VXE 表格列表请求统一传当前页码:
typescript
SkipCount: page.currentPage,
MaxResultCount: page.pageSize,不要传 offset:
typescript
SkipCount: (page.currentPage - 1) * page.pageSize,