团队项目·冰球模拟器——文件结构设计

注:本文涉及到的设计是很早就完成了,由于个人原因,到现在才发表。

1. 需求

出于文档结构化的思路考虑,有以下要求:

  1. 相关联的模块应放在一起,关联程度较弱的模块应相互隔离。
  2. 在命名方式上应当尽量遵寻约定俗成的方式,如doc代表 documents 即说明文档、src代表 source code files 即源代码文件等等。

出于编程和源代码管理的角度考虑,有以下要求:

  1. 本项目采用 cmake 来进行编译命令预处理,即生成相应的 Makefile 文件。
  2. Git 系统只能对纯文本文件进行有效的版本管理,不应当将二进制文件等文件加入到 git 的版本管理中。

2. 项目文件层级设计

2.1 根目录

根目录下有以下多个文件(夹):

  • doc
    • 该文件夹是用于存放开发文档、说明文档等文本文件,使用 Github Flavored Markdown 格式编写。
  • modules
    • 该文件夹用于存放第三方库以及供 cmake 使用的第三方库寻找文件Findxxxx.cmake
  • res
    • 该文件夹用于存放一些固定的资源文件,如图片、命令示例等。
  • src
    • 该文件夹用于存放源代码文件,下文将详细解析。
  • .gitignore
    • 该文件是 Git 系统的设置文件,用于忽略不提交的内容。
  • CMakeLists.txt
    • cmake 描述文件,所有编译工作均应在根目录下进行,生成文件将在工作目录下的build文件夹。

2.2 源代码文件夹 <ROOT>/src

  • src/interpolation 存放插值算法相关文件
  • src/physics_engine 存放物理引擎相关文件
  • src/tasks 存放 Xenomai 任务的具体实现的文件
  • src/test 存放单元测试类文件
  • src/CMakeLists.txt cmake 描述文件
  • src/common.cppsrc/common.h 存放项目内的全局变量、函数、宏
  • src/main.cpp 主程序入口,包括有 Xenomai 线程初始化等内容。
  • src/unit_test.cpp 单元测试入口,不包含具体测试内容。

3. 未解决的问题

由于本项目中预计可能会出现有静态资源文件,需要复制至运行目录中,但是似乎未找到相应的 cmake API,只能手动复制,有一定的麻烦。

4. 具体项目

Github 仓库

原文地址:https://www.cnblogs.com/passerby233/p/RTCSD_proj_files_structure_design.html