SimuRosot项目重构规划书

1 重构的目标

  • 增强可读性(自动生成项目的说明文档
  • 增强可扩展性,降低模块的耦合和代码的冗余。面向对象、接口。
  • 增强可修改性,方便代码进行修改和扩展。

2 重构的流程

  • 重读设计模式和架构设计。使用更好的架构和模块设计方案。(给出一个架构设计说明书)。
  • 了解重构工具和重构的方法。熟练掌握C++项目重构过程。
  • cmake/vs 项目重构。使用了解。
  • 熟读源代码,对架构设计说明书进行增删修改。完成最终的架构设计说明书。
  • 使用vs对项目架构进行重构。
  • 添加测试模块用来对策略和函数效果评估。

方案1:主要还是重新设计项目,把项目内的其他代码赋值黏贴出来。让它成为一个新的能够运行的小项目。

方案2:重新设计项目,然后在原有的代码上进行重构。

3 重构的原则

  1. 分层设计。上层对下层依赖。层内部不允许依赖。
  2. 控制反转。使用register机制,将对象注册到core中,计算执行。
  3. 决策树。减少strategy过程中if-else的逻辑。
  4. 高内聚低耦合。减少类之间的依赖,增强类内部的函数依赖。
  5. 文档生成与规范化。
  6. 运行时数据依赖与静态数据依赖,进行分离。比如历史数据应该由单独的模块进行管理。

4 重构的设计

纵向模块

  1. 策略层
    1. Strategy模块
    2. Result模块
  2. 击球动作层
  3. 跑位动作层
  4. 分析层
    1. BallPrediction模块
  5. 数据层
    1. Log模块(数据持久化、
    2. Compute模块(动态数据计算,用来表示当前的状态、
    3. Court模块(静态数据常量,用来保存场地信息、
    4. History模块(历史数据记录,用来表示历史状态、

横向模块

  1. 依赖注入层
  2. 核心层
    1. 接口封装模块
    2. 初始化
    3. 策略执行
    4. 策略控制
    5. 清理