基础要求

May 31, 2026 · View on GitHub

以下是我们这个应用项目必须遵循的规范要求,无论在实现哪一部分,任何功能都要遵循。

样式要求

  1. 所有页面都需要提供浅色、深色两种主题
  2. 界面要简洁、美观、现代化
  3. 所有页面要预留显示大小调节,有“极小“、”小“、“标准“、”大“、”超大“
  4. 所有文字都需要国际化,先做简体中文和英文

技术要求

  1. 代码目录结构风格要参考现有的结构风格,如果无法确定结构方案,需要向用户确认
  2. go 代码中每个函数都要进行备注,说明函数核心作用
  3. 复杂逻辑、核心代码需要在关键地方加上备注信息

代码结构要求

typescript 前端(frontend)

代码要求

  1. 所有数据结构需要使用显式类型(number、string等),如无必要,禁止使用 any、interface、underfind等
  2. 对于项目内的代码相互理解引用,使用 @@bindings ,具体配置查看 frontend/vite.config.ts

golang 后端(backend)

代码要求

文件结构

backend/service

  1. 目录组织 每个服务一个独立目录,目录名为小写单数名词(如 config/, window/, settings/)。
  2. 文件划分(3 类核心文件)
文件职责
<name>.go服务结构体定义 + 所有公开方法(Wails 绑定方法)
<name>_implement.goWails 服务生命周期回调 ServiceStartup,用于获取 application.App 实例
<name>_internal.go服务内部私有辅助方法(小写开头)
  1. DTO 子目录 <name>_dto/
  • 每个 API 方法一个文件,文件名为方法名的 snake_case 形式
  • 每个文件定义 XxxInput / XxxOutput 结构体
  • 包名格式:<name>_dto
  • 输出字段带 json tag 用于前端绑定
  1. 方法签名规范

    所有公开方法遵循统一的 Wails 绑定签名:func (s *Service) MethodName(ctx context.Context, input dto.XxxInput) (*dto.XxxOutput, error)

  2. 命名约定

  • 结构体名与目录名一致(PascalCase)
  • 公开方法:PascalCase
  • 私有方法:camelCase
  • 文件名:snake_case
  1. 错误约定
  • 所有公开方法(Wails 绑定方法),都需要返回 ierror 类型
  • 错误需要明确多语言
  1. 测试
  • 文件命名:<name>_test.go,与源文件同目录同 package
  • 使用标准库 testing
  • 测试辅助构造函数惯用 newTestXxxService(t *testing.T) 模式

backend/storage

所有数据库操作都要放在这个地方