C++ 大型项目构建与工程管理实战

📚 共计 30 章节
01
项目初始化
CMakeLists.txt 从零编写 · 构建系统选型 (Make vs Ninja) · 项目目录结构设计 (src, include, lib, test, third_party)
CMake目录结构
02
代码规范与风格
Google C++ Style Guide 核心要点 · Clang-Format 与 Clang-Tidy 配置 · 命名规范与注释规范
Clang-Format代码风格
03
版本控制进阶
Git Flow 工作流 · Git Hooks 自动化检查 · 大型仓库管理策略 (Submodule, LFS)
Git FlowLFS
04
依赖管理
Conan 包管理器入门 · vcpkg 集成 · 第三方库的引入与版本锁定
Conanvcpkg
05
单元测试框架
Google Test 入门 · 测试夹具 (Test Fixture) 与参数化测试 · Mocking 与依赖注入
Google TestMock
06
持续集成
GitHub Actions / GitLab CI 配置 · 自动化构建与测试流水线 · 构建矩阵与并行任务
CI/CDGitHub Actions
07
代码质量与静态分析
SonarQube 集成 · Coverity / PVS-Studio 静态扫描 · 代码覆盖率 (gcov/lcov) 生成
SonarQubeCoverity
08
文档生成
Doxygen 注释规范 · 自动生成 API 文档 · ReadTheDocs 与 Sphinx 集成
DoxygenSphinx
09
日志系统
spdlog 库实战 · 日志级别与格式化 · 异步日志与性能优化
spdlog异步日志
10
配置管理
JSON/YAML/TOML 解析库选型 (nlohmann/json, yaml-cpp) · 配置文件热加载
nlohmann/jsonyaml-cpp
11
命令行参数解析
CLI11 库实战 · 子命令与参数校验 · 自动生成帮助信息
CLI11参数校验
12
内存管理
智能指针 (unique_ptr, shared_ptr, weak_ptr) 实战 · RAII 原则 · 内存泄漏检测 (Valgrind, ASan)
智能指针Valgrind
13
多线程编程
std::thread 与 std::async · 线程安全队列 · 锁与条件变量 · 死锁预防
多线程死锁预防
14
并发模式
Actor 模型实现 · 线程池设计 · 无锁编程基础 (std::atomic)
Actor线程池
15
网络编程
Boost.Asio 入门 · TCP/UDP 服务器框架 · 异步 I/O 与协程 (C++20 Coroutines)
Boost.AsioC++20 协程
16
序列化与反序列化
Protocol Buffers 实战 · FlatBuffers 对比 · 自定义二进制协议设计
ProtobufFlatBuffers
17
数据库集成
SQLite 与 SOCI 库 · 连接池设计 · ORM 框架 (ODB) 简介
SQLiteSOCI
18
性能分析
Perf / FlameGraph 火焰图生成 · Google Benchmark 微基准测试 · VTune / perf 热点分析
FlameGraphGoogle Benchmark
19
编译优化
LTO (链接时优化) · PGO (配置文件引导优化) · 预编译头文件 (PCH) 加速
LTOPGO
20
模块化设计
C++20 Modules 实战 · 模块化与头文件对比 · 构建速度提升
C++20 Modules构建加速
21
插件系统
动态库加载 (dlopen/dlsym) · 插件接口设计 · 插件热更新
dlopen热更新
22
错误处理
异常安全保证 · std::expected / std::optional 实战 · 错误码与错误链
std::expected错误链
23
设计模式实战
工厂模式、策略模式、观察者模式在大型项目中的应用
工厂模式策略模式
24
跨平台构建
Windows (MSVC)、Linux (GCC/Clang)、macOS (Xcode) 的 CMake 适配 · 条件编译与平台宏
CMake跨平台
25
包管理发布
CPack 打包 (DEB/RPM/NSIS) · Conan 包上传与版本管理 · 语义化版本控制
CPackConan
26
安全编码
常见漏洞 (缓冲区溢出、注入) · 静态分析规则 · 安全编译选项 (-fstack-protector, -D_FORTIFY_SOURCE)
安全编译静态分析
27
重构技巧
大型类拆分 · 接口提取 · 依赖反转 · 代码异味检测
重构依赖反转
28
代码审查
Review 流程设计 · Checklist 制定 · 自动化审查工具 (Reviewable, Gerrit)
Code ReviewGerrit
29
发布管理
Changelog 生成 · Release Notes 编写 · 灰度发布与回滚策略
Changelog灰度发布
30
项目复盘
技术债务管理 · 架构演进案例 · 团队协作经验总结
技术债务架构演进