Skip to content

编码规范

后端编码规范

依赖注入

构造函数注入使用元组解构赋值模式:

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,

相关文档

贡献者

The avatar of contributor named as wcg wcg
The avatar of contributor named as dubai dubai

页面历史

基于 MIT 许可发布.