01
项目重构概述
什么是项目重构 · 重构的动机与收益 · 重构 vs 重写 · Qt项目重构的常见场景
重构思维动机
02
工程化基础
工程化的定义与目标 · Qt工程化的核心要素 · 构建系统选择 · 版本控制与分支策略
CMakeGit
03
代码规范与风格
Qt编码规范 · 代码审查流程 · 静态分析工具 · 自动化格式化
Clazyclang-format
04
模块化设计
高内聚低耦合 · Qt模块划分 · 接口设计 · 依赖注入与工厂模式
设计模式解耦
05
项目结构重构
目录结构最佳实践 · 源文件与头文件组织 · 资源文件管理 · 第三方库集成
qrc架构
06
CMake构建系统
CMake基础语法 · Qt6 CMake集成 · 多目标构建 · 自定义命令与生成器
CMakeQt6
07
依赖管理
vcpkg与Conan · Qt模块按需引入 · 动态库 vs 静态库 · 版本冲突解决
vcpkgConan
08
版本控制进阶
Git Flow工作流 · 代码评审与Merge Request · 标签与发布 · Git Hooks自动化
Git FlowCI
09
持续集成/持续部署
CI/CD概念 · GitHub Actions配置Qt · 自动化测试与构建 · 制品管理
GitHub ActionsCD
10
单元测试框架
Qt Test入门 · Google Test集成 · 测试用例规范 · Mock与依赖隔离
Qt TestGTest
11
UI自动化测试
Qt Test GUI测试 · Squish工具 · 截图对比 · 事件模拟与状态验证
SquishGUI
12
代码覆盖率
gcov/lcov工具 · 覆盖率报告 · 门禁策略 · 提高覆盖率技巧
gcovlcov
13
性能分析基础
Qt Creator Profiler · Perf · CPU热点 · 内存泄漏检测
ValgrindProfiler
14
UI性能优化
渲染性能分析 · 减少重绘 · QML优化 · 异步加载与懒加载
QML渲染
15
内存管理
Qt对象树 · 智能指针 · 内存池 · 循环引用检测
QSharedPointer对象树
16
多线程与并发
QThread · QRunnable · 线程安全 · QFuture · QtConcurrent
多线程并发
17
设计模式应用
单例 · 观察者(信号槽) · 策略模式 · 命令模式(QUndoCommand)
设计模式信号槽
18
插件系统设计
QPluginLoader · 插件接口 · 动态加载/卸载 · 版本兼容
插件动态加载
19
国际化与本地化
Qt Linguist · tr() · 动态语言切换 · RTL布局
i18nLinguist
20
日志系统设计
qDebug/qInfo · 日志级别 · 文件轮转 · 远程日志收集
日志qDebug
21
错误处理与异常
Qt异常安全 · 错误码 vs 异常 · QErrorMessage · 崩溃报告
异常错误处理
22
配置管理
QSettings · INI/JSON/XML · 配置热加载 · 多环境配置
QSettings热加载
23
数据持久化
SQLite集成 · QxOrm · 序列化 · 数据库迁移
SQLiteORM
24
网络通信重构
Qt Network · HTTP/REST封装 · WebSocket · 重试与超时
RESTWebSocket
25
信号槽机制深入
连接类型 · 自定义信号槽 · Lambda表达式 · 性能优化
信号槽Lambda
26
QML与C++混合编程
QML引擎 · 注册C++类型 · 信号与槽桥接 · 性能技巧
QMLC++
27
主题与样式
QSS样式表 · 动态主题切换 · 自定义控件 · 高DPI适配
QSS主题
28
打包与分发
Qt Installer Framework · NSIS/WiX · dmg · AppImage/Snap
打包分发
29
文档与API设计
Doxygen · API设计原则 · 版本兼容 · 废弃API管理
DoxygenAPI
30
重构实战案例
真实Qt项目重构全过程 · 前后对比 · 经验总结 · 持续重构文化
实战案例