团队项目·冰球模拟器——文件结构设计
注:本文涉及到的设计是很早就完成了,由于个人原因,到现在才发表。
1. 需求
出于文档结构化的思路考虑,有以下要求:
- 相关联的模块应放在一起,关联程度较弱的模块应相互隔离。
- 在命名方式上应当尽量遵寻约定俗成的方式,如
doc
代表 documents 即说明文档、src
代表 source code files 即源代码文件等等。
出于编程和源代码管理的角度考虑,有以下要求:
- 本项目采用 cmake 来进行编译命令预处理,即生成相应的 Makefile 文件。
- Git 系统只能对纯文本文件进行有效的版本管理,不应当将二进制文件等文件加入到 git 的版本管理中。
2. 项目文件层级设计
2.1 根目录
根目录下有以下多个文件(夹):
doc
- 该文件夹是用于存放开发文档、说明文档等文本文件,使用 Github Flavored Markdown 格式编写。
modules
- 该文件夹用于存放第三方库以及供 cmake 使用的第三方库寻找文件
Findxxxx.cmake
。
- 该文件夹用于存放第三方库以及供 cmake 使用的第三方库寻找文件
res
- 该文件夹用于存放一些固定的资源文件,如图片、命令示例等。
src
- 该文件夹用于存放源代码文件,下文将详细解析。
.gitignore
- 该文件是 Git 系统的设置文件,用于忽略不提交的内容。
CMakeLists.txt
- cmake 描述文件,所有编译工作均应在根目录下进行,生成文件将在工作目录下的
build
文件夹。
- cmake 描述文件,所有编译工作均应在根目录下进行,生成文件将在工作目录下的
2.2 源代码文件夹 <ROOT>/src
src/interpolation
存放插值算法相关文件src/physics_engine
存放物理引擎相关文件src/tasks
存放 Xenomai 任务的具体实现的文件src/test
存放单元测试类文件src/CMakeLists.txt
cmake 描述文件src/common.cpp
和src/common.h
存放项目内的全局变量、函数、宏src/main.cpp
主程序入口,包括有 Xenomai 线程初始化等内容。src/unit_test.cpp
单元测试入口,不包含具体测试内容。
3. 未解决的问题
由于本项目中预计可能会出现有静态资源文件,需要复制至运行目录中,但是似乎未找到相应的 cmake API,只能手动复制,有一定的麻烦。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具