Stp2Glb/.serena/memories/development_guidelines.md
sladro 8218502ee8 chore: import existing STP2GLB project
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-10-22 14:36:07 +08:00

1.8 KiB

开发指南和最佳实践

开发原则

  1. 渐进迭代: 小步快跑,每次提交保持稳定
  2. 稳定优先: 不破坏现有功能
  3. 学习复用: 研究现有代码模式,保持一致性
  4. 架构先行: 设计后实现,确保可维护性

技术栈理解

  • Core: C++20, CMake, Pixi包管理
  • CAD处理: OpenCASCADE (OCCT) 7.8.1
  • 几何算法: CGAL 5.6.1
  • 文件格式: STEP输入, GLB输出
  • 并行处理: TBB库
  • JSON: nlohmann_json
  • CLI: CLI11库

开发工作流

  1. 环境准备: pixi install && pixi shell
  2. 理解需求: 分析要实现的功能
  3. 研究现有代码: 查看相似功能的实现
  4. 小步实现: 增量开发,频繁测试
  5. 质量验证: 编译、测试、手动验证
  6. 文档更新: 必要时更新README和注释

架构约束

  • 不修改现有接口: 除非绝对必要
  • 向后兼容: 新功能不能破坏现有功能
  • 模块化: 保持清晰的模块边界
  • 错误处理: 使用C++异常机制

性能考虑

  • 大文件处理: 注意内存使用
  • 并行处理: 合理使用TBB
  • 几何计算: 优化OCCT和CGAL的使用
  • I/O操作: 高效的文件读写

调试技巧

  • 使用调试模式: --debug 参数获取详细信息
  • 分步测试: 从小文件开始测试
  • 性能分析: 使用计时器测量关键操作
  • 内存检查: 注意OpenCASCADE对象的生命周期

常见陷阱

  • 路径处理: Windows路径分隔符问题
  • 字符编码: 文件名和路径的编码处理
  • 内存管理: OCCT对象的智能指针使用
  • 线程安全: 并行处理时的数据竞争

代码审查要点

  • 是否遵循现有命名约定
  • 错误处理是否完整
  • 是否有潜在的内存泄漏
  • 性能是否符合预期
  • 测试覆盖是否充分