VIP9
本课程属于:045-JavaScript与TypeScript工程 后端、数据与云原生工程 · 共 9 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

C工程化落地全攻略

📚 共计 30 章节
01
C语言工程化概述
什么是工程化、为什么需要工程化、工程化的核心要素(模块化、可维护性、可移植性、健壮性)
概念思想
02
开发环境标准化
IDE选择(VS Code/CLion/Eclipse)、编译器配置(GCC/Clang/MSVC)、构建工具链(Make/CMake)标准化搭建
工具配置
03
代码风格与规范
命名规范(变量、函数、宏、文件)、缩进与排版、注释规范(Doxygen风格)、代码审查清单
风格规范
04
模块化设计原则
高内聚低耦合、模块划分策略、接口设计原则(头文件设计)、模块间的依赖管理
架构设计
05
头文件设计艺术
#ifndef/#pragma once的选择、头文件包含顺序、前向声明、内联函数与宏的放置、API文档化
头文件API
06
内存管理实战
堆栈区别、malloc/free的正确用法、内存泄漏检测(Valgrind)、内存池设计、RAII思想在C中的实现
内存性能
07
指针与数组深度解析
指针的本质、数组与指针的关系、函数指针、回调函数、复杂指针声明解读、指针安全
指针进阶
08
字符串处理安全
strcpy/strcat的陷阱、安全版本(strncpy/strncat/snprintf)、自定义字符串库设计、编码问题
安全字符串
09
结构体与联合体高级用法
结构体对齐与填充、位域、柔性数组、结构体序列化、联合体的妙用(类型双关)
结构体联合体
10
错误处理机制
返回值约定、errno的使用、setjmp/longjmp异常处理、断言(assert)的最佳实践、错误码枚举设计
错误健壮性
11
日志系统设计与实现
日志级别、日志格式、异步日志、日志轮转、日志性能优化、一个轻量级日志库的实现
日志调试
12
配置文件解析
INI/JSON/XML解析库的选择、自定义配置解析器设计、配置热加载、配置校验
配置解析
13
单元测试框架
CUnit/Unity/CMock的使用、测试用例编写、Mock对象、覆盖率分析(gcov/lcov)、TDD实践
测试质量
14
构建系统进阶
CMake语法详解、多目录管理、条件编译、交叉编译配置、安装与打包(CPack)
构建CMake
15
版本控制与协作
Git工作流(GitFlow/Trunk-Based)、.gitignore配置、Code Review流程、持续集成(CI)入门
Git协作
16
静态代码分析
PC-Lint/Cppcheck/Clang-Tidy的使用、常见警告解读、误报处理、在CI中集成静态分析
静态分析质量
17
动态内存分析
Valgrind Memcheck、AddressSanitizer、LeakSanitizer的使用、内存错误定位技巧
内存调试
18
代码复用技术
静态库与动态库的创建与使用、库版本管理、ABI兼容性、符号可见性控制
库复用
19
多文件项目管理
文件组织原则、include路径管理、依赖图构建、增量编译优化、预编译头文件
项目结构
20
并发编程基础
线程创建与管理、互斥锁/条件变量/读写锁、原子操作、线程安全队列实现
并发线程
21
网络编程框架
Socket API封装、Reactor模式、非阻塞I/O、select/poll/epoll对比、一个简单的HTTP服务器
网络服务器
22
数据结构与算法工程化
通用链表/哈希表/红黑树的实现、算法复杂度分析、容器库设计
数据结构算法
23
嵌入式C开发要点
交叉编译、资源受限优化、寄存器操作封装、中断安全、Bootloader设计
嵌入式优化
24
安全编码规范
缓冲区溢出防护、整数溢出检查、格式化字符串漏洞、安全函数替换、CERT C编码标准
安全规范
25
性能优化实战
Profiling工具(gprof/perf)、热点函数优化、缓存友好设计、编译器优化选项、SIMD入门
性能优化
26
跨平台开发技巧
条件编译宏、平台抽象层、字节序处理、路径处理、跨平台构建配置
跨平台移植
27
文档生成与维护
Doxygen配置与使用、API文档编写规范、设计文档(ADR)、README编写指南
文档维护
28
发布与部署
版本号规范(SemVer)、ChangeLog编写、发布流程、包管理(Conan/vcpkg)、安装程序制作
发布部署
29
遗留代码重构
识别坏味道、重构策略(微重构)、测试保护、逐步替换、技术债务管理
重构维护
30
大型项目架构案例
一个完整的嵌入式/服务器项目架构解析、模块划分、数据流设计、架构演进经验谈
架构案例