结盟众多企业“教练”, 共同设计、开发及提供人才培养解决方案,通过新颖多样的学习方式,针对性的定制化内容,助力企业全面提升竞争优势。
戴辉
2-3 天
5200元
课程特点:
课程中的理论和经验来自于对大量开发人员常犯错误与所遇问题的归纳、分析与总结。并有针对性的给出解决方法。学员经过课程已经可以充分理解在特定的场景下如何提升代码的质量,并可以根据课程中总结的规则,对自己的代码进行检查,以培养良好的编码风格,和严谨的编码习惯。
课程大纲:
一:什么样的代码是高质量的代码
1. 理解高质量代码需要考虑的各种因素
2. 尝试结合各种因素编写一个高质量的strcpy()
3. 这样的strcpy()可能会遇到什么样的问题
4. 该如何一步步解决这些问题
二:利用现有工具提升代码的品质
1. 如何保证参数的合法性
2. 如何提高程序的健壮性
3. NULL指针与 assert() 的故事
4. 如何优化代码,减少冗余逻辑
5. 如何与标准保持一致
三:如何确保代码的安全性
1. 什么样的代码会有安全问题
2. 安全问题可能造成的危害
3. 什么是缓冲区溢出,原理是什么
4. 调用栈,栈帧,函数调用过程的研究
5. 函数的序曲,终曲
6. 如何避免/应对缓冲区溢出
四:如何检查/避免代码中的内存泄露
1. 内存泄露该如何检查
2. 应对内存泄露的方法
3. 权衡,内存泄露时应该考虑的对策
五:杂项
1. 高阶参数检查
2. 复杂逻辑的简化方法
3. 局部变量不初始化的危害
4. 编码风格与规范
六:将代码从C过渡到C++
1. C++中高质量代码需要考虑的问题
2. C++中的内存泄露与C中的区别
3. new与malloc 背后的故事
4. delete与free 背后的故事
5. 如何在C++中防止数组形式的内存泄露
七:C++字符串类中鲜为人知的秘密
1. 为什么有时候需要重载拷贝构造函数/赋值运算符
2. 该怎么确定赋值运算符的返回类型
3. 为什么要检查自赋值的情况
4. 避免传回C++类中的内部handler
八:高效C++语言,避免C++中的陷阱
1. 区别对待指针和引用
2. 为什么需要使用标准的转型操作符
3. 不要以多态的形式处理数组
4. ++操作符的前后置区别
5. 内存的分配与释放机制
九:如何正确的处理C++中的异常
1. 利用析构函数避免资源泄露(智能指针)
2. 如何高效的抛出/捕获异常
3. 为什么在构造函数中阻止资源泄露
4. 为什么在析构函数中要阻止异常流出重新组织代码
十:C++中的多进程/线程
1. 并发编程的核心思想
2. 临界区,互斥量,信号量,join
3. 从一个模式说开去
4. volatile 背后的故事
5. 内存模型与原子操作
十一:C++中的接口设计
1. 让接口容易被设计,使用
2. 该返回什么?By value 还是 By reference
3. 接口继承与实现继承
4. IS-A 还是 HAS-A
5. 了解隐式接口的编译器多态