Skip to content

Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP

Repository files navigation

Tutorial_AwesomeModernCPP

English | 中文

C++ License Stars Issues Build Docs

一套系统化的现代 C++ 教程 -- 从基础语法到嵌入式实战,从标准库深入到并发编程,每个概念配有可编译的代码示例


特色亮点

  • 系统化学习路径 -- 8 卷从入门到高级,每卷有明确前置知识,循序渐进
  • 实战驱动 -- 每个概念配合可编译的 CMake 项目,而非孤立代码片段
  • 多平台覆盖 -- STM32 / ESP32 / RP2040 嵌入式实战,不止于桌面端
  • 标签导航 -- 按主题、C++ 标准、难度、平台等维度检索文章
  • 在线阅读 -- MkDocs 文档站,支持搜索与导航

内容架构

graph LR
    V1["卷一 基础"] --> V2["卷二 现代特性"]
    V2 --> V3["卷三 标准库"] & V4["卷四 高级"] & V5["卷五 并发"] & V6["卷六 性能"] & V7["卷七 工程"]
    V2 --> V8["卷八 领域应用"]
    V8 --> E["嵌入式"] & N["网络"] & G["GUI"] & D["数据"] & A["算法"]
Loading

教程结构

主题 文章数 难度 状态
C++ 基础入门 -- 类型、控制流、函数、指针、类、模板初步 49 beginner 已完成
现代 C++ 特性 -- 移动语义、智能指针、constexpr、Lambda 44 intermediate 已完成
标准库深入 -- 容器、迭代器、算法、字符串、分配器 40-50 intermediate 规划中
高级主题 -- Concepts、Ranges、协程、模块、模板元编程 50-60 advanced 规划中
并发编程 -- 线程原语、原子操作、无锁编程、异步 I/O 25-30 advanced 规划中
性能优化 -- CPU 缓存、SIMD、汇编阅读、基准测试 18-22 advanced 规划中
软件工程实践 -- CMake、测试、静态分析、DevOps 30-35 intermediate 规划中
领域应用 -- 嵌入式 / 网络 / GUI / 数据存储 / 算法 80-100 intermediate 编写中
- 编译与链接深入 -- 预处理、汇编、链接、调试符号 10+ intermediate 已完成
- 贯穿式实战项目 -- 手写 STL、迷你 HTTP 服务器、嵌入式 OS - advanced 规划中

学习路径

flowchart TD
    subgraph PathA["Path A -- 有 C 和嵌入式经验"]
        A1["卷二:现代 C++ 特性"] --> A2["卷八:嵌入式开发"]
    end
    subgraph PathB["Path B -- 有 C++ 经验"]
        B1["卷八:基础回顾"] --> B2["平台教程"] --> B3["RTOS 实战"]
    end
    subgraph PathC["Path C -- 两者都会"]
        C1["直接跳到感兴趣的主题"]
    end
    subgraph PathD["Path D -- 零基础新手"]
        D1["卷一:C++ 基础入门(含 C 语言速通)"] --> D2["卷二:现代 C++ 特性"]
    end
    Start(["你的起点?"]) -->|"C + 嵌入式"| PathA
    Start -->|"C++ 经验"| PathB
    Start -->|"两者都会"| PathC
    Start -->|"零基础"| PathD

    style PathA fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
    style PathB fill:#dcfce7,stroke:#22c55e,color:#14532d
    style PathC fill:#fff7ed,stroke:#f97316,color:#7c2d12
    style PathD fill:#f3e8ff,stroke:#a855f7,color:#581c87
Loading

快速开始

git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git
cd Tutorial_AwesomeModernCPP
./scripts/mkdocs_dev.sh install   # 创建虚拟环境并安装依赖
./scripts/mkdocs_dev.sh serve     # 构建并启动本地预览
# 访问 http://127.0.0.1:8000
更多开发工具
脚本 功能
mkdocs_dev.sh install 创建虚拟环境并安装 MkDocs 依赖
mkdocs_dev.sh serve 构建并启动本地预览服务器
mkdocs_dev.sh build 生产模式构建静态站点
mkdocs_dev.sh clean 清理构建产物
mkdocs_dev.sh reset 重建虚拟环境
setup_precommit.sh 安装 pre-commit hooks
validate_frontmatter.py 验证文章 frontmatter
check_links.py 检查内部链接有效性
check_nav_reachability.py 检查章节导航完整性
analyze_frontmatter.py 分析教程统计信息
build_examples.py 编译所有 CMake 示例项目
check_quality.py 内容质量检查

分支说明

分支 用途 状态
main 主开发分支 Active
archive/legacy_20260415 重构前存档 Read-only
gh-pages 自动部署的文档站 Auto-generated

项目目录结构
Tutorial_AwesomeModernCPP/
├── documents/                  # 教程 Markdown 文件
│   ├── vol1-fundamentals/      # 卷一:C++ 基础入门(ch00-ch12 + C 语言速通)
│   ├── vol2-modern-features/   # 卷二:现代 C++ 特性
│   ├── vol3-standard-library/  # 卷三:标准库深入
│   ├── vol4-advanced/          # 卷四:高级主题
│   ├── vol5-concurrency/       # 卷五:并发编程
│   ├── vol6-performance/       # 卷六:性能优化
│   ├── vol7-engineering/       # 卷七:软件工程实践
│   ├── vol8-domains/           # 卷八:领域应用
│   │   ├── embedded/           #   嵌入式开发
│   │   ├── networking/         #   网络编程
│   │   ├── gui-graphics/       #   GUI 与图形
│   │   ├── data-storage/       #   数据存储
│   │   └── algorithms/         #   算法与数据结构
│   ├── compilation/            # 编译与链接深入
│   ├── projects/               # 贯穿式实战项目
│   └── index.md                # 教程首页
├── code/                       # 示例代码
│   ├── volumn_codes/vol1/      #   卷一代码与练习
│   └── examples/               #   历史代码示例
├── scripts/                    # 开发工具脚本
├── todo/                       # 内容规划与进度追踪
└── mkdocs.yml                  # MkDocs 站点配置

贡献

我们欢迎任何形式的贡献!请阅读 CONTRIBUTING.md 了解详情。

快速流程:Fork --> 特性分支 --> 提交 --> Push --> Pull Request

如有问题,欢迎在 GitHub Issues 中提交。


致谢

本项目参考了以下优秀资源:


许可证与联系方式


系统化学习现代 C++,从基础到实战