南昌东湖区编程培训,编程实践代码培训
学习目标
课程介绍
本课程针对有经验的C程序员。它的主要出发点是让程序员理解高质量编程的特点,并修正平时编码中的一些误区,本课程包含大量低质量代码案例,并给出这些低质量代码的提高方法,以实例促进理解。它的内容涵盖从机器和编译角度更深入的理解C语言,编码风格中命名、注释、排版等高质量的考量以及质量控制方法,面对规模比较大的软件如何设计好系统架构、如何使用面向对象的设计思想,此外,它也涉及到具体函数的编写、容易犯错的内存和多任务并发故障的原因和排查方法、防御性编程、代码评审和代码重构方法。
课程大纲
课程内容一 嵌入式C关键特性热身l 嵌入式体系架构与Cl C编译流程l C编译器的编译优化l 如何评判代码质量l C语言的不同种类
第一章 C深入理解l 变量与内存分配机制l 指针和函数指针l 关键字restrictl 关键字static和externl 关键字volatilel 关键字constl 零长度数组l 位操作的应用l 结构体中的位域l 字节序与位序l 内存的分配和控制l C的内存陷阱与表象l 流水线与分支暗示l DMA与cache一致性问题l 强弱符号
第二章C编码风格l 变量、函数、宏、文件等的命名l 代码排版与布局l 怎样编写高质量注释l 代码与文档l 代码的提交(commit)与提交时候的审核
第三章C性能优化l 找出耗时的代码l 使用宏和inlinel 使用寄存器变量l 内嵌汇编l 利用硬件特性(cache pipeline)l 循环展开l 使用查找表l 编译优化l 乱序执行与内存屏障课程内容二 嵌入式C软件结构
第四章C软件模块与模块划分l 模块划分原则(高质量,低耦合)l 源代码文件和目录的组织l 硬件驱动模块l 软件功能模块l 提供APIl 头文件l 全局变量l 主循环与中断l 主循环与中断的互斥与通信l 锁的正确使用、临界区l 操作系统下多任务(线程)划分原则l 软件的目录组织l 驱动的跨CPU实现l 业务逻辑的跨平台实现
第五章C的面向对象l 用struct来模拟classl 封装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 避免函数传递中的隐形bugl 调整函数位置
第九章C代码评审l 代码评审的规范l 代码评审的组织方式l 代码评审的内容l 结合配置管理强制代码评审
查看更多...
学习目标
课程介绍
本课程针对有经验的C程序员。它的主要出发点是让程序员理解高质量编程的特点,并修正平时编码中的一些误区,本课程包含大量低质量代码案例,并给出这些低质量代码的提高方法,以实例促进理解。它的内容涵盖从机器和编译角度更深入的理解C语言,编码风格中命名、注释、排版等高质量的考量以及质量控制方法,面对规模比较大的软件如何设计好系统架构、如何使用面向对象的设计思想,此外,它也涉及到具体函数的编写、容易犯错的内存和多任务并发故障的原因和排查方法、防御性编程、代码评审和代码重构方法。
课程大纲
课程内容一 嵌入式C关键特性热身l 嵌入式体系架构与Cl C编译流程l C编译器的编译优化l 如何评判代码质量l C语言的不同种类
第一章 C深入理解l 变量与内存分配机制l 指针和函数指针l 关键字restrictl 关键字static和externl 关键字volatilel 关键字constl 零长度数组l 位操作的应用l 结构体中的位域l 字节序与位序l 内存的分配和控制l C的内存陷阱与表象l 流水线与分支暗示l DMA与cache一致性问题l 强弱符号
第二章C编码风格l 变量、函数、宏、文件等的命名l 代码排版与布局l 怎样编写高质量注释l 代码与文档l 代码的提交(commit)与提交时候的审核
第三章C性能优化l 找出耗时的代码l 使用宏和inlinel 使用寄存器变量l 内嵌汇编l 利用硬件特性(cache pipeline)l 循环展开l 使用查找表l 编译优化l 乱序执行与内存屏障课程内容二 嵌入式C软件结构
第四章C软件模块与模块划分l 模块划分原则(高质量,低耦合)l 源代码文件和目录的组织l 硬件驱动模块l 软件功能模块l 提供APIl 头文件l 全局变量l 主循环与中断l 主循环与中断的互斥与通信l 锁的正确使用、临界区l 操作系统下多任务(线程)划分原则l 软件的目录组织l 驱动的跨CPU实现l 业务逻辑的跨平台实现
第五章C的面向对象l 用struct来模拟classl 封装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 避免函数传递中的隐形bugl 调整函数位置
第九章C代码评审l 代码评审的规范l 代码评审的组织方式l 代码评审的内容l 结合配置管理强制代码评审


编程培训
学习目标
掌握前沿技术,增加就业
课程内容
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
机器语言:在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。
汇编语言:文件系统驱动编程流程,为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到使用助记符号来代替不容易记忆的机器指令。
适用对象

零基础及以上学员均可
课程亮点
1.涉猎行业广、就业方向多
2.就业指导,打造真实教学成果
培训方式
1.实战项目,线下实操
2.在线网课
