程序员知识栈/开发指南

By pocaster

有时候开发难度不在于编码技术,而在于项目认知。日常被搭环境弄崩溃了,干脆在这里做个备忘录。

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: /
    • 跨平台处理
  • 路径处理
    • 相对路径
    • 绝对路径
    • 路径规范化

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配置
      • 证书管理
      • 加密通信
    • 性能优化
      • 连接池
      • 负载均衡
      • 缓存策略
    • 监控与调试
      • 网络抓包
      • 性能分析
      • 日志记录

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

图表说明

  1. 模块化设计:每个核心知识领域(如Git、CMake)拆解为可快速定位的子问题。
  2. 重点突出
    • 红色节点(如B2a)表示高频使用场景(如CMake单文件模板)。
    • 绿色节点(如E2a)表示易错点(如Git回滚操作)。
  3. 实用导向:直接关联具体工具(vcpkg/Wireshark)和示例(OpenCV/Eigen)。

如何使用?

  1. 作为学习地图:按箭头顺序逐步掌握(如先环境→依赖→Git)。
  2. 作为检查清单:开发时对照节点确认是否遗漏(如SDK初始化是否完成日志配置)。
  3. 扩展维护:后续新增知识模块时,直接添加节点并链接关联区域。
Tags: Tech Public