基础要求
May 31, 2026 · View on GitHub
以下是我们这个应用项目必须遵循的规范要求,无论在实现哪一部分,任何功能都要遵循。
样式要求
- 所有页面都需要提供浅色、深色两种主题
- 界面要简洁、美观、现代化
- 所有页面要预留显示大小调节,有“极小“、”小“、“标准“、”大“、”超大“
- 所有文字都需要国际化,先做简体中文和英文
技术要求
- 代码目录结构风格要参考现有的结构风格,如果无法确定结构方案,需要向用户确认
- go 代码中每个函数都要进行备注,说明函数核心作用
- 复杂逻辑、核心代码需要在关键地方加上备注信息
代码结构要求
typescript 前端(frontend)
代码要求
- 所有数据结构需要使用显式类型(number、string等),如无必要,禁止使用 any、interface、underfind等
- 对于项目内的代码相互理解引用,使用
@或@bindings,具体配置查看 frontend/vite.config.ts
golang 后端(backend)
代码要求
文件结构
backend/service
- 目录组织 每个服务一个独立目录,目录名为小写单数名词(如 config/, window/, settings/)。
- 文件划分(3 类核心文件)
| 文件 | 职责 |
|---|---|
<name>.go | 服务结构体定义 + 所有公开方法(Wails 绑定方法) |
<name>_implement.go | Wails 服务生命周期回调 ServiceStartup,用于获取 application.App 实例 |
<name>_internal.go | 服务内部私有辅助方法(小写开头) |
- DTO 子目录
<name>_dto/
- 每个 API 方法一个文件,文件名为方法名的 snake_case 形式
- 每个文件定义 XxxInput / XxxOutput 结构体
- 包名格式:
<name>_dto - 输出字段带 json tag 用于前端绑定
-
方法签名规范
所有公开方法遵循统一的 Wails 绑定签名:
func (s *Service) MethodName(ctx context.Context, input dto.XxxInput) (*dto.XxxOutput, error) -
命名约定
- 结构体名与目录名一致(PascalCase)
- 公开方法:PascalCase
- 私有方法:camelCase
- 文件名:snake_case
- 错误约定
- 所有公开方法(Wails 绑定方法),都需要返回 ierror 类型
- 错误需要明确多语言
- 测试
- 文件命名:
<name>_test.go,与源文件同目录同 package - 使用标准库 testing
- 测试辅助构造函数惯用 newTestXxxService(t *testing.T) 模式
backend/storage
所有数据库操作都要放在这个地方