丁老师 国内资深的大数据与云计算实战型技术专家
长期任职大数据平台的构建相关领域的产品研发工作,在大数据处理、大数据分布式并行计算,流式计算处理系统、数据可视化领域有丰富的实战项目经验。
课程目标
本课程帮助学员能够:
第一天上午 | 介绍Introduction |
- 自我介绍Introduction to my self -课程大纲 The course outline - C++历史Evolution of C++ | |
C++ 11/14 | |
- C++ 11 特性与实例Features with examples - auto - decltype - nullptr - for-loop - C++ 03 初始化 - C++ 11统一初始化 - 简化的类初始化 - default/delete - final/override - 可变模板参数variable template args - 改进的库介绍 - C++ 14 特性和实例 - 函数返回类型识别function return type detection - const 表达式 - 改进的库介绍 | |
第一天下午 | C++ 面向对象原则与知识 |
- 抽象与封装Abstraction and encapsulation - 继承与多态Inheritance and polymorphism - 关系Relationships - 模式与习语Patterns and idioms - 拥有关系Has-a - “是”的关系Is-A - 由…实现的关系Is-Implemented-in-terms-of - “是”关系的C++实现Is-A, Is-Implemented-of in C++ - 私有继承习语Private inheritance idiom | |
复制与转换Copying and Conversion | |
- 隐式转换implicit conversion - 上转与下转up-cast, down-cast - 类的隐式转换implicit conversion for class - 构造转换函数construct conversion function - 赋值与转换函数assignment & conversion function - 第二转换2nd conversion - 转换操作符Casting operators - 静态转换Static Casting - 动态转换Dynamic Casting - 物理转换Physical Const - Const化: enum and pointer - Const化: class field - Const化:类函数内 - Const不是灵丹妙药 - 逻辑Const化: mutable - 左值 vs. 右值 - 移动习语支持 (右值应用) | |
练习与作业 | |
第二天上午 | 内存管理Memory Management |
- 对象什么周期Object life cycle - 分配失败Allocation failure - 内存对其Memory Alignment - 空基类优化习语Empty Base Optimization Idioms - 资源返回问题Resource Return Problem - 资源返回习语Resource Return idioms - C++11 智能指针: unique_ptr - C++11 智能指针: shared_ptr - 智能指针并非万能 | |
异常处理与异常安全Exception Handling/Safety | |
- 为什么异常Why exception handling? - 异常分类与处理Classifying and handling exceptions - 抓取异常与抛出异常Catching and throwing exceptions - 标准异常体系Standard exception hierarchy - 违背约定Contract violations - 异常安全级别Exception Safety levels - 构造函数中的异常Exceptions in constructors - 析构函数中的异常Exceptions in destructors - RAII习语与异常安全 - 复制与转换习语Copy-and-Swap Idiom - 安全转换习语Safe swap Idiom | |
第二天下午 | 模板与函数子改进Template and functors improvement |
- C++11的模板技术改进 - C++11的Type traits - STL 容器的改进 - Lambda (C++11) - Lambda 改进(C++14) | |
更多设计模式与习语 | |
- The Object Adapter pattern - The Null Object Pattern - AOP, Decorator Pattern - 装饰器模式Decorator Pattern - AOP and Parameterized Base Class Idiom - 策略模式Strategy Pattern - Policy based class design - 模板方法模式The Template Method pattern - Default virtual implementation idiom - Named Parameter Idiom | |
第三天上午 | 并发 |
- 并发与并行 - 异步与并发 - 任务与线程 - C++11 并发一览 - 多线程的Hello World - 管理线程 - 线程退出 - 避免线程提前退出 - 线程本地存储 (C++ 11) - 高性能计算 - HPC 例子 - 多线程方案 | |
并发 | |
- - Mutex - shared_mutex (C++ 14) - lock_guard/unique_lock - Locking and Dead lock - std::lock - std::call_once - 线程间共享对象 | |
第三天下午 | 高级对象分享 |
- Semaphore - 条件变量 - - promise - packaged_task - futures - future - 共享的future - async | |
原子类型 | |
- - 内核模式vs. 用户模式锁 - 原子操作 - std::atomic_flag - Lock-free 编程 | |
数据竞争与内存模型 | |
- Data Race examples - Memory Order - Memory Model - x86 scenarios |