×

首页 > 企业定制

C高质量编程最佳实践-代码整洁之道

课程介绍:

本课程针对有经验的C程序员。它的主要出发点是让程序员理解高质量编程的特点,并修正平时编码中的一些误区,本课程包含大量低质量代码案例,并给出这些低质量代码的提高方法,以实例促进理解。
它的内容涵盖从机器和编译角度更深入的理解C语言,编码风格中命名、注释、排版等高质量的考量以及质量控制方法,面对规模比较大的软件如何设计好系统架构、如何使用面向对象的设计思想,此外,它也涉及到具体函数的编写、容易犯错的内存和多任务并发故障的原因和排查方法、防御性编程、代码评审和代码重构方法。

培训目标:

课程大纲:

课程内容一 嵌入式C关键特性

热身
l 嵌入式体系架构与C
l C编译流程
l C编译器的编译优化
l 如何评判代码质量
l C语言的不同种类
第一章 C深入理解
l 变量与内存分配机制
l 指针和函数指针
l 关键字restrict
l 关键字static和extern
l 关键字volatile
l 关键字const
l 零长度数组
l 位操作的应用
l 结构体中的位域
l 字节序与位序
l 内存的分配和控制
l C的内存陷阱与表象
l 流水线与分支暗示
l DMA与cache一致性问题
l 强弱符号
第二章C编码风格
l 变量、函数、宏、文件等的命名
l 代码排版与布局
l 怎样编写高质量注释
l 代码与文档
l 代码的提交(commit)与提交时候的审核
第三章C性能优化
l 找出耗时的代码
l 使用宏和inline
l 使用寄存器变量
l 内嵌汇编
l 利用硬件特性(cache, pipeline)
l 循环展开
l 使用查找表
l 编译优化
l 乱序执行与内存屏障
课程内容二 嵌入式C软件结构
第四章C软件模块与模块划分
l 模块划分原则(高质量,低耦合)
l 源代码文件和目录的组织
l 硬件驱动模块
l 软件功能模块
l 提供API
l 头文件
l 全局变量
l 主循环与中断
l 主循环与中断的互斥与通信
l 锁的正确使用、临界区
l 操作系统下多任务(线程)划分原则
l 软件的目录组织
l 驱动的跨CPU实现
l 业务逻辑的跨平台实现
第五章C的面向对象
l 用struct来模拟class
l 封装
l 继承
l 多态
l 软件分层与中间层的设计
l 利用面向对象思想优化软件架构
课程内容三C编码
第六章 C函数
l 一个函数只做一件事,不要编写多种功能集于一身的函数
l 明确地定义函数的参数
l 避免比尔类型参数
l 编写函数使其在给定有效的输入情况下不会失败
l 函数不依赖于另一个函数的内部细节
l 函数要小且容易测试
l 函数内部代码块
l 线程安全与函数的可重入
第七章 防御性编程
l 防御性代码的风格
l 编译警告开关的使用
l 预计所有可能的异常
l 检查所有的返回值
l 审慎处理内存资源
l 变量声明策略
l 审慎地进行强制转换
l 避免运算越界
l 使用lint来查出编译程序漏掉的错误
l 使用断言
第八章C代码重构
l 代码重构的原则
l 重新命名函数
l 提炼函数
l 提炼判断条件
l 简化函数参数
l 解除全局变量的噩梦
l 避免函数传递中的隐形bug
l 调整函数位置
第九章C代码评审
l 代码评审的规范
l 代码评审的组织方式
l 代码评审的内容
l 结合配置管理强制代码评审

PMI, PMP, Project Management Professional, CAPM, PgMP, PfMP, PMI-ACP, PMI-RMP, PMI-SP, PMI-PBA and PMBOK are registered marks of the Project Management Institute, Inc.

ITIL® is a registered trade mark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

PRINCE2® is a registered trade mark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

Copyright © 2006-2019 东方瑞通(北京)咨询服务有限公司版权所有

京ICP备 13009094号 京公网安备 11010802031185号