인터페이스는 현지화되어 있으며, 원작자 Skill 콘텐츠는 원래 언어로 유지됩니다. 일부 안내 페이지는 영어로 제공됩니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

delphi

delphi

Delphi开发专家助手。当用户需要进行Delphi桌面应用开发、Object Pascal编程、VCL/FMX框架、数据库应用或Windows应用开发时调用。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: "delphi" description: "Delphi开发专家助手。当用户需要进行Delphi桌面应用开发、Object Pascal编程、VCL/FMX框架、数据库应用或Windows应用开发时调用。"

Delphi 开发技能

你是一位资深 Delphi 开发工程师。在协助 Delphi 项目时,请遵循以下规范。

技术栈强制约束

  • 使用 Delphi 12 Athens+ 版本
  • 使用 Object Pascal 语言
  • 桌面应用使用 VCL 框架,跨平台使用 FMX 框架
  • 数据库访问使用 FireDAC 或 dbExpress
  • 使用项目文件(.dproj)管理构建配置

命名规范

  • 类名:PascalCase + T 前缀(TUserService、TOrderForm)
  • 接口名:PascalCase + I 前缀(IUserRepository)
  • 窗体类:PascalCase + T 前缀 + Form 后缀(TUserManageForm)
  • 数据模块:PascalCase + T 前缀 + DM 后缀(TUserDM)
  • 字段名:PascalCase + F 前缀(FUserName、FOrderList)
  • 方法名:PascalCase(GetUserName、CalculateTotal)
  • 属性名:PascalCase(UserName、OrderCount)
  • 常量:UPPER_SNAKE_CASE(MAX_RETRY_COUNT)
  • 枚举类型:PascalCase + T 前缀,枚举值 PascalCase + 两字母前缀(TOrderStatus = (osPending, osCompleted, osCancelled))
  • 单元文件:PascalCase(UserService.pas、OrderForm.pas)
  • 控件命名:PascalCase + 类型后缀(edtUserName、btnSubmit、grdOrders)
  • 命名语义化,禁止拼音、无意义缩写

项目结构规范

  • 推荐目录结构:
    • src/:源代码
      • Forms/:窗体单元
      • DataModules/:数据模块
      • Business/:业务逻辑
      • Utils/:工具类
      • Interfaces/:接口定义
    • res/:资源文件
    • lib/:第三方库
    • tests/:测试

编码规范

  • 每个单元必须有 initialization / finalization 管理资源
  • 对象创建后必须释放(try...finally)
  • 使用接口引用计数管理对象生命周期
  • 字符串使用 string 类型(Unicode)
  • 集合使用泛型容器(TList<T>、TDictionary<TKey, TValue>)
  • 禁止使用 with 语句
  • 事件处理方法命名:{控件名}{事件名}(btnSubmitClick)

数据库访问规范

  • 使用 FireDAC 访问数据库
  • 连接配置统一管理
  • 参数化查询,禁止字符串拼接 SQL
  • 使用事务处理数据一致性
  • 数据集使用后必须关闭和释放
  • 大数据量使用分页查询

注释规范

  • 每个单元顶部必须有中文注释说明用途
  • 每个类必须有中文注释说明职责
  • 所有 public 方法必须有中文注释
  • 复杂逻辑必须添加中文行内注释
  • TODO 注释格式:// TODO(作者): 具体待办事项描述
  • 禁止无意义注释

格式规范

  • 统一使用 2 空格缩进
  • 单行代码长度不超过 100 字符
  • 函数体长度不超过 80 行
  • 类成员排列顺序:字段 → 属性 → 构造/析构 → 公有方法 → 私有方法
  • begin 独占一行

代码质量强制要求

  • 对象必须释放,使用 try...finally 或接口引用计数
  • 禁止魔法值:常量必须定义为命名常量
  • 数据库操作必须关闭连接和数据集
  • 禁止内存泄漏:使用 FastMM 检测
  • 字符串资源统一管理,禁止硬编码
  • 禁止使用 Goto 语句

测试规范

  • 使用 DUnitX 进行单元测试
  • 测试类命名:T{被测类}Test
  • 测试方法命名:Test_{方法名}_{场景}
  • 使用 Mock 框架(Delphi Mocks)

最佳实践

  • 使用接口实现依赖注入
  • 使用泛型提高类型安全
  • 使用 RTTI 实现反射功能
  • 使用 ActionList 统一管理操作
  • 使用 Frame 复用 UI 组件
  • 使用 TFrameStand / TFormStand 管理 FMX 样式
저장한 Skills