有时候开发难度不在于编码技术,而在于项目认知。日常被搭环境弄崩溃了,干脆在这里做个备忘录。
1.什么是”环境” 2.什么是”工具链” 3.什么是”依赖” 4.第三方库的用法 5.什么是GIT 6.IDE的用法 7.设计模式 8.标准和规范 9.SDK开发和对接 10.不同OS的编码路径 11.计算机原理 12.什么是”敏捷开发” 13.项目管理 14.开发最佳实践 15.开发工具链 16.开发流程 17.开发环境配置
1. 什么是”环境”
开发环境是程序员工作的基础平台,包括:
1.1 操作系统环境
- Windows环境配置
- 环境变量设置(PATH、JAVA_HOME等)
- 系统服务配置(MySQL、Redis等)
- 权限管理(UAC、防火墙)
- Linux环境配置
- 包管理器使用(apt、yum)
- 服务管理(systemd)
- 用户权限(sudo、chmod)
- macOS环境配置
- Homebrew包管理
- 开发工具链配置
- 权限管理
1.2 编程语言环境
- Python环境
- 虚拟环境(venv、conda)
- 包管理(pip、poetry)
- 版本管理(pyenv)
- Java环境
- JDK安装与配置
- Maven/Gradle构建工具
- JVM参数调优
- C/C++环境
- 编译器配置(gcc、clang)
- 构建系统(CMake、Make)
- 调试工具(gdb)
1.3 开发工具环境
- IDE配置
- VS Code插件与配置
- IntelliJ IDEA配置
- Eclipse配置
- 编辑器配置
- Vim/Emacs配置
- 代码格式化工具
- 语法检查工具
- 终端工具
- Shell配置(bash、zsh)
- 终端复用器(tmux)
- SSH配置
1.4 运行环境
- Docker环境
- 镜像构建
- 容器编排
- 网络配置
- 虚拟机环境
- VirtualBox配置
- VMware配置
- 快照管理
- 云环境
- AWS配置
- Azure配置
- GCP配置
2. 什么是”工具链”
工具链是开发过程中使用的各种工具集合:
2.1 构建工具
- CMake
- 基本语法
- 模块化构建
- 依赖管理
- 跨平台配置
- Make
- Makefile编写
- 自动化构建
- 依赖关系
- Gradle
- 构建脚本
- 插件开发
- 多项目构建
2.2 版本控制工具
- Git
- 基本命令
- 分支管理
- 工作流
- 冲突解决
- SVN
- 基本操作
- 分支管理
- 权限控制
2.3 调试工具
- GDB
- 断点设置
- 变量查看
- 堆栈跟踪
- LLDB
- 基本命令
- 内存调试
- 多线程调试
- 浏览器调试工具
- Chrome DevTools
- Firefox Developer Tools
- Safari Web Inspector
2.4 性能分析工具
- Profiler
- CPU分析
- 内存分析
- I/O分析
- Memory Analyzer
- 内存泄漏检测
- 堆分析
- 对象引用分析
- 网络分析工具
- Wireshark
- Fiddler
- Charles
3. 什么是”依赖”
依赖是指项目运行所必需的第三方库和组件:
3.1 系统依赖
- 操作系统库
- 动态链接库(.so、.dll)
- 静态链接库(.a、.lib)
- 系统API
- 运行时环境
- JRE
- Python解释器
- Node.js
3.2 语言依赖
- 标准库
- C++ STL
- Java标准库
- Python标准库
- 框架
- Spring
- Django
- React
3.3 第三方库依赖
- 开源库
- 版本选择
- 许可证检查
- 安全审计
- 商业库
- 授权管理
- 更新策略
- 技术支持
3.4 开发依赖
- 测试框架
- JUnit
- pytest
- Mocha
- 文档工具
- Doxygen
- Sphinx
- JSDoc
- 代码质量工具
- SonarQube
- ESLint
- Pylint
4. 第三方库的用法
使用第三方库的最佳实践:
4.1 版本管理
- 版本锁定
- 精确版本号
- 版本范围
- 版本更新策略
- 依赖冲突解决
- 依赖树分析
- 版本兼容性
- 冲突解决策略
4.2 依赖注入
- 设计模式
- 控制反转
- 依赖注入
- 服务定位器
- 实现方式
- 构造函数注入
- 属性注入
- 方法注入
4.3 错误处理
- 异常处理
- 异常类型
- 异常传播
- 异常恢复
- 错误码处理
- 错误码定义
- 错误信息
- 错误处理策略
4.4 性能优化
- 资源管理
- 内存管理
- 连接池
- 缓存策略
- 并发处理
- 线程安全
- 异步操作
- 并发控制
5. 什么是GIT
Git是现代软件开发的核心工具:
5.1 版本控制
- 基本概念
- 仓库(Repository)
- 提交(Commit)
- 分支(Branch)
- 工作流程
- 暂存区
- 工作区
- 版本库
5.2 分支管理
- 分支策略
- Git Flow
- GitHub Flow
- Trunk Based Development
- 分支操作
- 创建分支
- 合并分支
- 删除分支
5.3 团队协作
- 远程仓库
- 添加远程
- 推送代码
- 拉取代码
- 代码审查
- Pull Request
- Code Review
- 代码合并
5.4 高级特性
- 子模块
- 添加子模块
- 更新子模块
- 删除子模块
- 钩子脚本
- 预提交钩子
- 提交消息钩子
- 推送钩子
6. IDE的用法
集成开发环境的使用技巧:
6.1 代码补全
- 智能提示
- 类型提示
- 参数提示
- 文档提示
- 代码模板
- 自定义模板
- 代码片段
- 快捷键
6.2 调试功能
- 断点调试
- 条件断点
- 日志断点
- 异常断点
- 变量查看
- 变量监视
- 表达式求值
- 内存查看
6.3 重构工具
- 代码重构
- 重命名
- 提取方法
- 内联方法
- 代码分析
- 代码检查
- 复杂度分析
- 依赖分析
6.4 插件扩展
- 插件管理
- 安装插件
- 配置插件
- 更新插件
- 自定义功能
- 自定义命令
- 自定义视图
- 自定义工具
7. 设计模式
常见设计模式的应用:
7.1 创建型模式
- 工厂模式
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
- 饿汉式
- 懒汉式
- 双重检查
7.2 结构型模式
- 适配器模式
- 类适配器
- 对象适配器
- 接口适配器
- 装饰器模式
- 动态装饰
- 静态装饰
- 组合装饰
7.3 行为型模式
- 观察者模式
- 推模式
- 拉模式
- 事件驱动
- 策略模式
- 算法封装
- 策略选择
- 动态切换
7.4 架构模式
- MVC模式
- 模型层
- 视图层
- 控制器层
- MVVM模式
- 数据绑定
- 视图模型
- 命令模式
8. 标准和规范
开发中的标准和规范:
8.1 代码规范
- 命名规范
- 类命名
- 方法命名
- 变量命名
- 格式规范
- 缩进规则
- 空格规则
- 换行规则
8.2 文档规范
- 注释规范
- 类注释
- 方法注释
- 行注释
- API文档
- 接口描述
- 参数说明
- 返回值说明
8.3 安全规范
- 加密规范
- 对称加密
- 非对称加密
- 哈希算法
- 认证规范
- 身份认证
- 授权控制
- 会话管理
8.4 测试规范
- 单元测试
- 测试用例
- 测试覆盖率
- 测试报告
- 集成测试
- 接口测试
- 性能测试
- 压力测试
9. SDK开发和对接
SDK开发的关键点:
9.1 API设计
- 接口定义
- 方法签名
- 参数设计
- 返回值设计
- 错误处理
- 异常定义
- 错误码
- 错误信息
9.2 版本兼容
- 向后兼容
- 接口兼容
- 数据兼容
- 行为兼容
- 版本管理
- 版本号规则
- 版本发布
- 版本回滚
9.3 文档编写
- 使用说明
- 快速开始
- 示例代码
- 常见问题
- API文档
- 接口说明
- 参数说明
- 返回值说明
9.4 测试验证
- 单元测试
- 接口测试
- 边界测试
- 异常测试
- 集成测试
- 功能测试
- 性能测试
- 兼容性测试
10. 不同OS的编码路径
跨平台开发注意事项:
10.1 文件路径
- 路径分隔符
- Windows:
\
- Unix:
/
- 跨平台处理
- Windows:
- 路径处理
- 相对路径
- 绝对路径
- 路径规范化
10.2 字符编码
- 编码标准
- UTF-8
- GBK
- ASCII
- 编码转换
- 文件编码
- 网络传输
- 数据库存储
10.3 系统API
- 平台差异
- 文件操作
- 进程管理
- 网络通信
- 兼容处理
- 条件编译
- 抽象层
- 适配器模式
10.4 编译选项
- 条件编译
- 预处理器
- 宏定义
- 编译选项
- 交叉编译
- 工具链配置
- 目标平台
- 依赖管理
11. 计算机原理
基础计算机知识:
11.1 操作系统原理
- 进程管理
- 进程调度
- 进程通信
- 死锁处理
- 内存管理
- 虚拟内存
- 页面置换
- 内存分配
11.2 网络协议
- TCP/IP协议
- 三次握手
- 四次挥手
- 流量控制
- HTTP协议
- 请求方法
- 状态码
- 头部字段
- 网络编程
- Socket编程
- TCP/UDP通信
- 多线程服务器
- 异步IO模型
- 网络框架
- Netty
- Boost.Asio
- libuv
- 协议设计
- 消息格式
- 序列化/反序列化
- 协议版本控制
- 网络安全
- SSL/TLS配置
- 证书管理
- 加密通信
- 性能优化
- 连接池
- 负载均衡
- 缓存策略
- 监控与调试
- 网络抓包
- 性能分析
- 日志记录
- Socket编程
11.3 数据结构
- 线性结构
- 数组
- 链表
- 栈和队列
- 非线性结构
- 树
- 图
- 哈希表
11.4 算法基础
- 排序算法
- 冒泡排序
- 快速排序
- 归并排序
- 查找算法
- 顺序查找
- 二分查找
- 哈希查找
12. 什么是”敏捷开发”
敏捷开发方法论:
12.1 Scrum框架
- 角色定义
- 产品负责人
- Scrum Master
- 开发团队
- 会议流程
- 每日站会
- 迭代计划
- 回顾会议
12.2 看板方法
- 工作流
- 任务看板
- 状态流转
- 限制在制品
- 可视化
- 任务卡片
- 燃尽图
- 累积流图
12.3 持续集成
- 构建流程
- 代码提交
- 自动构建
- 自动测试
- 质量保证
- 代码检查
- 测试覆盖
- 性能测试
12.4 持续交付
- 部署流程
- 自动化部署
- 环境管理
- 回滚机制
- 监控告警
- 系统监控
- 性能监控
- 错误监控
13. 项目管理
项目管理的核心要素:
13.1 需求管理
- 需求分析
- 用户故事
- 用例分析
- 需求优先级
- 变更管理
- 变更控制
- 影响分析
- 版本控制
13.2 进度控制
- 计划制定
- 任务分解
- 时间估算
- 资源分配
- 进度跟踪
- 里程碑
- 进度报告
- 风险预警
13.3 风险管理
- 风险识别
- 技术风险
- 进度风险
- 资源风险
- 风险应对
- 风险规避
- 风险转移
- 风险缓解
13.4 团队协作
- 沟通管理
- 会议管理
- 文档共享
- 即时通讯
- 知识管理
- 经验总结
- 最佳实践
- 培训计划
14. 开发最佳实践
14.1 代码质量
- 代码审查
- 审查清单
- 自动化工具
- 团队协作
- 代码重构
- 重构时机
- 重构方法
- 测试保障
- 技术债务
- 债务识别
- 偿还策略
- 预防措施
14.2 性能优化
- 代码优化
- 算法优化
- 数据结构优化
- 内存优化
- 系统优化
- 并发优化
- 缓存优化
- 数据库优化
- 监控分析
- 性能指标
- 监控工具
- 分析报告
14.3 安全开发
- 安全编码
- 输入验证
- 输出编码
- 错误处理
- 安全测试
- 渗透测试
- 代码审计
- 漏洞扫描
- 安全运维
- 日志审计
- 访问控制
- 应急响应
14.4 持续学习
- 技术学习
- 学习路线
- 学习资源
- 实践项目
- 知识管理
- 笔记系统
- 知识库
- 经验总结
- 社区参与
- 开源贡献
- 技术分享
- 问题解答
15. 开发工具链
15.1 开发工具
- 编辑器
- VS Code
- Vim/Emacs
- Sublime Text
- IDE
- IntelliJ IDEA
- Eclipse
- Visual Studio
- 终端工具
- iTerm2
- Windows Terminal
- tmux
15.2 构建工具
- 包管理
- npm/yarn
- pip/conda
- Maven/Gradle
- 构建系统
- CMake
- Make
- Bazel
- 容器化
- Docker
- Kubernetes
- Podman
15.3 测试工具
- 单元测试
- JUnit
- pytest
- Mocha
- 集成测试
- Postman
- Selenium
- JMeter
- 性能测试
- Apache Bench
- Gatling
- Locust
15.4 监控工具
- 日志监控
- ELK Stack
- Graylog
- Splunk
- 性能监控
- Prometheus
- Grafana
- New Relic
- 告警系统
- Alertmanager
- PagerDuty
- OpsGenie
16. 开发流程
16.1 需求分析
- 需求收集
- 用户访谈
- 市场调研
- 竞品分析
- 需求分析
- 功能分解
- 优先级排序
- 风险评估
- 需求文档
- 用户故事
- 用例图
- 原型设计
16.2 设计阶段
- 架构设计
- 系统架构
- 模块划分
- 接口设计
- 数据库设计
- 表结构
- 索引设计
- 关系模型
- UI设计
- 交互设计
- 视觉设计
- 响应式设计
16.3 开发阶段
- 编码规范
- 命名规范
- 注释规范
- 格式规范
- 代码审查
- 代码质量
- 性能优化
- 安全审查
- 版本控制
- 分支管理
- 代码合并
- 版本发布
16.4 测试阶段
- 测试计划
- 测试范围
- 测试策略
- 资源分配
- 测试执行
- 单元测试
- 集成测试
- 系统测试
- 测试报告
- 缺陷统计
- 性能指标
- 改进建议
17. 开发环境配置
17.1 本地环境
- 开发工具
- IDE配置
- 编辑器配置
- 终端配置
- 运行环境
- 语言环境
- 数据库环境
- 缓存环境
- 调试环境
- 调试工具
- 日志配置
- 性能分析
17.2 测试环境
- 环境搭建
- 服务器配置
- 网络配置
- 存储配置
- 环境管理
- 环境隔离
- 环境同步
- 环境备份
- 环境监控
- 资源监控
- 性能监控
- 告警配置
17.3 生产环境
- 环境规划
- 服务器规划
- 网络规划
- 存储规划
- 环境部署
- 部署方案
- 回滚方案
- 应急预案
- 环境运维
- 监控告警
- 日志管理
- 性能优化
17.4 环境迁移
- 迁移计划
- 风险评估
- 时间规划
- 资源准备
- 迁移执行
- 数据迁移
- 配置迁移
- 应用迁移
- 迁移验证
- 功能验证
- 性能验证
- 安全验证
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px
A[程序员基础知识库]:::primary
B[环境与工具链]:::secondary
C[依赖管理]:::secondary
D[第三方库使用]:::secondary
E[代码管理-Git]:::secondary
A --> B
A --> C
A --> D
A --> E
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 主框架图 - 开发层
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
A[程序员基础知识库]:::primary
F[设计模式]:::secondary
G[SDK开发]:::secondary
H[项目认知加速]:::secondary
I[性能优化与调试]:::secondary
A --> F
A --> G
A --> H
A --> I
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 主框架图 - 工程层
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
A[程序员基础知识库]:::primary
J[安全开发实践]:::secondary
K[测试与质量保证]:::secondary
L[文档与注释规范]:::secondary
M[跨平台开发]:::secondary
N[CI/CD]:::secondary
O[项目管理]:::secondary
P[敏捷开发]:::secondary
A --> J
A --> K
A --> L
A --> M
A --> N
A --> O
A --> P
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 环境与工具链
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
B[环境与工具链]:::primary
B1[开发环境配置]:::secondary
B2[构建系统 CMake/Makefile]:::secondary
B1a[IDE配置]:::tertiary
B1b[终端/Docker]:::tertiary
B2a[单文件模板]:::tertiary
B2b[多模块项目]:::tertiary
B --> B1
B --> B2
B1 --> B1a
B1 --> B1b
B2 --> B2a
B2 --> B2b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 依赖管理
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
C[依赖管理]:::primary
C1[C/C++: vcpkg/conan]:::secondary
C2[Python: pip/conda]:::secondary
C3[Java/JS: Maven/npm]:::secondary
C1a[OpenCV示例]:::tertiary
C2a[虚拟环境]:::tertiary
C --> C1
C --> C2
C --> C3
C1 --> C1a
C2 --> C2a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 第三方库使用
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
D[第三方库]:::primary
D1[快速上手示例]:::secondary
D2[调试技巧]:::secondary
D1a[Requests/Eigen]:::tertiary
D2a[日志与版本检查]:::tertiary
D --> D1
D --> D2
D1 --> D1a
D2 --> D2a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% Git相关
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
E[Git]:::primary
E1[分支策略]:::secondary
E2[回滚与协作]:::secondary
E2a[reset/revert区别]:::tertiary
E --> E1
E --> E2
E2 --> E2a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 设计模式
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
F[设计模式]:::primary
F1[单例/工厂模式]:::secondary
F2[观察者模式]:::secondary
F1a[反例警示]:::tertiary
F --> F1
F --> F2
F1 --> F1a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% SDK开发
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
G[SDK开发]:::primary
G1[文档阅读技巧]:::secondary
G2[网络调试]:::secondary
G2a[Wireshark抓包]:::tertiary
G --> G1
G --> G2
G2 --> G2a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 项目认知
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
H[项目认知]:::primary
H1[逆向学习法]:::secondary
H2[术语速查表]:::secondary
H1a[CMake逆向分析]:::tertiary
H --> H1
H --> H2
H1 --> H1a
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 性能优化与调试
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
I[性能优化与调试]:::primary
I1[性能分析工具]:::secondary
I2[内存管理]:::secondary
I3[并发编程]:::secondary
I1a[Profiler使用]:::tertiary
I1b[性能指标]:::tertiary
I2a[内存泄漏检测]:::tertiary
I2b[智能指针]:::tertiary
I3a[线程安全]:::tertiary
I3b[异步编程]:::tertiary
I --> I1
I --> I2
I --> I3
I1 --> I1a
I1 --> I1b
I2 --> I2a
I2 --> I2b
I3 --> I3a
I3 --> I3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 安全开发实践
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
J[安全开发实践]:::primary
J1[代码安全]:::secondary
J2[数据安全]:::secondary
J3[网络安全]:::secondary
J1a[常见漏洞]:::tertiary
J1b[安全编码规范]:::tertiary
J2a[加密算法]:::tertiary
J2b[数据脱敏]:::tertiary
J3a[HTTPS配置]:::tertiary
J3b[防火墙规则]:::tertiary
J --> J1
J --> J2
J --> J3
J1 --> J1a
J1 --> J1b
J2 --> J2a
J2 --> J2b
J3 --> J3a
J3 --> J3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 测试与质量保证
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
K[测试与质量保证]:::primary
K1[单元测试]:::secondary
K2[集成测试]:::secondary
K3[自动化测试]:::secondary
K1a[测试框架]:::tertiary
K1b[测试用例设计]:::tertiary
K2a[接口测试]:::tertiary
K2b[性能测试]:::tertiary
K3a[CI集成]:::tertiary
K3b[测试报告]:::tertiary
K --> K1
K --> K2
K --> K3
K1 --> K1a
K1 --> K1b
K2 --> K2a
K2 --> K2b
K3 --> K3a
K3 --> K3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 文档与注释规范
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
L[文档与注释规范]:::primary
L1[代码注释]:::secondary
L2[API文档]:::secondary
L3[项目文档]:::secondary
L1a[注释规范]:::tertiary
L1b[文档生成]:::tertiary
L2a[Swagger/OpenAPI]:::tertiary
L2b[示例代码]:::tertiary
L3a[README规范]:::tertiary
L3b[架构文档]:::tertiary
L --> L1
L --> L2
L --> L3
L1 --> L1a
L1 --> L1b
L2 --> L2a
L2 --> L2b
L3 --> L3a
L3 --> L3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 跨平台开发
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
M[跨平台开发]:::primary
M1[平台差异]:::secondary
M2[编译系统]:::secondary
M3[兼容性测试]:::secondary
M1a[系统API]:::tertiary
M1b[文件路径]:::tertiary
M2a[条件编译]:::tertiary
M2b[交叉编译]:::tertiary
M3a[自动化测试]:::tertiary
M3b[兼容性矩阵]:::tertiary
M --> M1
M --> M2
M --> M3
M1 --> M1a
M1 --> M1b
M2 --> M2a
M2 --> M2b
M3 --> M3a
M3 --> M3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% CI/CD
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
N[CI/CD]:::primary
N1[持续集成]:::secondary
N2[持续部署]:::secondary
N3[自动化流程]:::secondary
N1a[构建流程]:::tertiary
N1b[代码检查]:::tertiary
N2a[部署策略]:::tertiary
N2b[回滚机制]:::tertiary
N3a[流水线配置]:::tertiary
N3b[监控告警]:::tertiary
N --> N1
N --> N2
N --> N3
N1 --> N1a
N1 --> N1b
N2 --> N2a
N2 --> N2b
N3 --> N3a
N3 --> N3b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 项目管理
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
O[项目管理]:::primary
O1[项目规划]:::secondary
O2[进度管理]:::secondary
O3[风险管理]:::secondary
O4[团队协作]:::secondary
O1a[需求分析]:::tertiary
O1b[任务拆分]:::tertiary
O2a[里程碑]:::tertiary
O2b[进度跟踪]:::tertiary
O3a[风险评估]:::tertiary
O3b[应急预案]:::tertiary
O4a[沟通机制]:::tertiary
O4b[知识共享]:::tertiary
O --> O1
O --> O2
O --> O3
O --> O4
O1 --> O1a
O1 --> O1b
O2 --> O2a
O2 --> O2b
O3 --> O3a
O3 --> O3b
O4 --> O4a
O4 --> O4b
%%{init: {"flowchart": {"defaultRenderer": "dagre-d3", "rankSpacing": 100}}}%%
%% 敏捷开发
graph TD
classDef primary fill:#f9f,stroke:#333,stroke-width:2px;
classDef secondary fill:#bbf,stroke:#333,stroke-width:1px;
classDef tertiary fill:#dfd,stroke:#333,stroke-width:1px;
P[敏捷开发]:::primary
P1[Scrum实践]:::secondary
P2[看板方法]:::secondary
P3[持续改进]:::secondary
P1a[每日站会]:::tertiary
P1b[迭代规划]:::tertiary
P2a[任务可视化]:::tertiary
P2b[工作流优化]:::tertiary
P3a[回顾会议]:::tertiary
P3b[改进措施]:::tertiary
P --> P1
P --> P2
P --> P3
P1 --> P1a
P1 --> P1b
P2 --> P2a
P2 --> P2b
P3 --> P3a
P3 --> P3b
图表说明
- 模块化设计:每个核心知识领域(如Git、CMake)拆解为可快速定位的子问题。
- 重点突出:
- 红色节点(如
B2a
)表示高频使用场景(如CMake单文件模板)。 - 绿色节点(如
E2a
)表示易错点(如Git回滚操作)。
- 红色节点(如
- 实用导向:直接关联具体工具(vcpkg/Wireshark)和示例(OpenCV/Eigen)。
如何使用?
- 作为学习地图:按箭头顺序逐步掌握(如先环境→依赖→Git)。
- 作为检查清单:开发时对照节点确认是否遗漏(如SDK初始化是否完成日志配置)。
- 扩展维护:后续新增知识模块时,直接添加节点并链接关联区域。