Skip to content

工作区约定

为什么不是一个 monorepo

根目录的职责只有三件事:提供 VS Code 多根入口、保存通用编辑器默认值、链接到开发文档。每个 C++ 项目拥有自己的 README.md、构建文件和依赖边界。

这允许一个项目继续留在工作区里做实验,另一个项目直接独立发布,不需要先拆除一套共享构建系统。

分类不是依赖关系

00_scratch10_learning20_libraries30_projects 是生命周期分类,不是 CMake 子目录。项目之间不要通过 ../../ 引用源码;需要复用时复制、vendor 或建立明确的外部依赖。

什么时候移动项目

信号动作
只是验证一个 API放在 00_scratch
有清晰学习目标和结论放在 10_learning
已被两个项目复用提炼到 20_libraries
有长期维护、发布或独立 CI 需求放在 30_projects 并考虑独立 Git

构建产物

每个项目把构建结果放到自身的 build/out/。根 .gitignore 只负责忽略这些产物,不负责决定项目如何构建。

Keep the code clear. Keep the boundary small.