课程费用

6800.00 /人

课程时长

2

成为教练

课程简介

本课程针对有项目经验的 C 程序员。课程的主要出发点是结合真实案例,让程序员理解高质量编程的特点,并修正平时编码中的一些误区,本课程包含低质量代码案例,并给出这些低质量代码的提高方法,以实例促进理解。
课程内容分为两部分,一是关于C语言本身的知识,例如内存管理、函数编写等。另一部分是如何运用C语言进行系统的设计,例如如何进行模块的划分、接口设计、构建灵活和高可扩展性的系统。
本课程让具有经验的软件开发人员提升对C语言进行软件设计的理解,掌握软件设计的原则和方法,并能够用这些原则和方法去指导设计实践。

目标收益

培训对象

C程序员、架构师

课程大纲

第一单元 c语言关键特性 内容一:C内存管理 【0.5小时】
1.长度明确
2.预估内存
3.防止栈溢出
4.避免在堆中频繁地申请、释放小块内存
5.多块内存尽量大小相同,互相靠近
6.了解系统数据结构的运作机制
7.考虑分配顺序
8.结构的内存分布
9.值对象的注意点(函数传参、临时变量、函数替代参数)
10.实例对象与指针对象的异同

内容三:C函数的设计【1.5小时】
1.函数的扇入与扇出
2.一个函数只做一件事,不要编写多种功能集于一身的函数
3.函数要小且容易测试
4.明确地定义函数的参数
5.避免布尔类型参数
6.编写函数使其在给定有效的输入情况下不会失败
7.函数不依赖于另一个函数的内部细节
8.函数内部代码块
9.多线程编程——线程安全与函数的可重入

内容四:防御性编程【0.5小时】
1.使用好的编码风格,形成编码规范
2.不要仓促的编写代码
3.不要相信任何人
4.编码的目标要清晰,而不是简洁
5.编译时打开所有警告开关
6.使用安全的数据结构
7.检查所有的返回值
8.审慎的处理内存
9.在声明位置初始化所有变量
10.避免运算越界
11.使用断言

内容五:代码重构【0.5小时】
1.代码重构的原则
2.代码命名-很重要,但是总被忽略的基本功
3.提炼函数
4.提炼判断条件
5.简化函数参数
6.全局变量的危害辨析
7.如何解除全局变量的危害
8.避免函数传递中的隐形 bug
9.调整函数位置
第二单元C语言模块及架构设计 内容一 模块划分及面向对象设计 【1.5小时】
1.组件设计中的开-闭原则
2.模块及组件的职责分配设计
3.面向对象设计与面向过程辨析
4.高内聚松耦合与单一职责
5.封装变化点
6.关于模块的创建及依赖倒置
7.控制模块设计,及过大组件/模块的分解原则
8.使用间接模式
9.隔离不同的关注面

内容二:C语言的面向对象及系统建模【1小时】
1.基于领域分析的建模方式
2.事务脚本与领域驱动
3.如何用c来组织面向的设计
4.封装、继承、多态
5.struct 模拟 class
6.案例分析
7.练习:用面向对象的思维对某项目进行建模

内容三:C语言架构设计【1.5小时】
1.软件分层与中间层的设计
2.接口设计要点与接口隔离原则(ISP)
3.使用发布-订阅模式构建松耦合的系统
4.使用IOC构建高可扩展的系统
5.提升系统效率时的注意点
6.练习:基于分层架构的c程序设计——某文件处理系统

内容四:单元测试【1小时】
1.从流程上控制代码质量
2.单元测试在质量控制流程中作用
3.单元测试的原则
4.选择合适的单元测试框架
5.测试用例设计原则
6.测试驱动开发(TDD)
7.代码覆盖率
8.性能分析与提升
第一单元 c语言关键特性
内容一:C内存管理 【0.5小时】
1.长度明确
2.预估内存
3.防止栈溢出
4.避免在堆中频繁地申请、释放小块内存
5.多块内存尽量大小相同,互相靠近
6.了解系统数据结构的运作机制
7.考虑分配顺序
8.结构的内存分布
9.值对象的注意点(函数传参、临时变量、函数替代参数)
10.实例对象与指针对象的异同

内容三:C函数的设计【1.5小时】
1.函数的扇入与扇出
2.一个函数只做一件事,不要编写多种功能集于一身的函数
3.函数要小且容易测试
4.明确地定义函数的参数
5.避免布尔类型参数
6.编写函数使其在给定有效的输入情况下不会失败
7.函数不依赖于另一个函数的内部细节
8.函数内部代码块
9.多线程编程——线程安全与函数的可重入

内容四:防御性编程【0.5小时】
1.使用好的编码风格,形成编码规范
2.不要仓促的编写代码
3.不要相信任何人
4.编码的目标要清晰,而不是简洁
5.编译时打开所有警告开关
6.使用安全的数据结构
7.检查所有的返回值
8.审慎的处理内存
9.在声明位置初始化所有变量
10.避免运算越界
11.使用断言

内容五:代码重构【0.5小时】
1.代码重构的原则
2.代码命名-很重要,但是总被忽略的基本功
3.提炼函数
4.提炼判断条件
5.简化函数参数
6.全局变量的危害辨析
7.如何解除全局变量的危害
8.避免函数传递中的隐形 bug
9.调整函数位置
第二单元C语言模块及架构设计
内容一 模块划分及面向对象设计 【1.5小时】
1.组件设计中的开-闭原则
2.模块及组件的职责分配设计
3.面向对象设计与面向过程辨析
4.高内聚松耦合与单一职责
5.封装变化点
6.关于模块的创建及依赖倒置
7.控制模块设计,及过大组件/模块的分解原则
8.使用间接模式
9.隔离不同的关注面

内容二:C语言的面向对象及系统建模【1小时】
1.基于领域分析的建模方式
2.事务脚本与领域驱动
3.如何用c来组织面向的设计
4.封装、继承、多态
5.struct 模拟 class
6.案例分析
7.练习:用面向对象的思维对某项目进行建模

内容三:C语言架构设计【1.5小时】
1.软件分层与中间层的设计
2.接口设计要点与接口隔离原则(ISP)
3.使用发布-订阅模式构建松耦合的系统
4.使用IOC构建高可扩展的系统
5.提升系统效率时的注意点
6.练习:基于分层架构的c程序设计——某文件处理系统

内容四:单元测试【1小时】
1.从流程上控制代码质量
2.单元测试在质量控制流程中作用
3.单元测试的原则
4.选择合适的单元测试框架
5.测试用例设计原则
6.测试驱动开发(TDD)
7.代码覆盖率
8.性能分析与提升

课程费用

6800.00 /人

课程时长

2

预约体验票 我要分享

近期公开课推荐

近期公开课推荐

提交需求