4006-998-758
3000+课程任你选择
C++内存管理与性能调优训练营
研发学院 C++ 开课时间:2021-07-03
祁宇

祁老师,工学硕士,C++国际标准委员会审稿委员、《深入应用C++11》作者、《程序员》特约撰稿人。开源技术社区purecpp创始人兼社区负责人,C++专家,开源库rest_rpc, iguana, cinatra, feather, ormpp作者。热爱开源,热爱modern c++,乐于研究和分享技术,多次在国际C++大会上做演讲。现任某互联网公司技术专家,负责大型分布式系统、并行计算、边缘计算等领域的研究。



查看老师详情
课程内容

一、深入Modern C++(C++11/14/17/20)系列

课程名称

课程时长

1. 深入应用C++11

1天

2. C++14新特性解析开发实践

2天

3. C++17新特性解析和开发实践

2天

4. Modern C++设计模式

1天

5. Modern C++元编程

2天

6. C++23之编译期反射

1天

7.C++20之coroutine

1天

8. C++20之concepts

1天

9. C++20之Modules

1天

10. C++演进趋势

1天

二、专题系列

1. C++多态极其未来

1天

2.STL算法(函数式编程)

1天

3. C++性能优化

1天

4. C++内存管理

1天

5.C++异常和错误处理

1天

6. C++开源项目

1天

1. 深入应用C++11

 


会深入讲解C++11中在日常开发中常用的特性,对一些特别重要的特性会做深入透彻的讲解,典型的如右值引用、移动语义和智能指针等。

还会结合一些实际的案例来讲解这些C++11的最佳实践,让大家对C++11的特性的使用可以做到融会贯通。

 

 

1. C++11概览

2. C++11让代码更简洁

3. C++11让代码更灵活

4. C++11让代码更高效

5. C++11让代码更安全

 

 

2. C++14新特性解析开发实践


 

C++14增加的新特性比较少,一直被认为是一个小版本,然而它是一个很重要的版本,它给C++元编程思想带来了较大的改变,并不是我们认为的仅仅是一个小版本。

本专题将深入探讨C++14中那些很重要的特性,深入探索这些特性的应用场景和可能的潜力。

 

 

1. C++14 constexpr

2. C++14泛型lambda

3. C++14变量模板

4. C++14真的是一个小版本吗?

5. 泛型lambda的威力

6. C++14变量模板带来的改变

 

 

3. C++17新特性解析和开发实践


 

C++17增加了非常多的新特性,我们将重点聚焦C++17常用的的特性,深入探讨这些特性的应用场景。

 

 

1. fold expression用来做什么?

2. constexpr if是c++17最重要的特性之一

3. constexpr lambda

4. 深入std::void_t

5. 非常实用的std::string_view和inline variable

6. 很酷的structure binding

7. std::invoke和std::apply化繁为简

8. 非常重要的deduction guide

9. 那些来自boost的库

10. 并行算法

 

 

4. Modern C++设计模式

简要介绍OOP,OOD的关系,再讲解UML的概念、特点和用途;

重点讲解一些典型的设计模式的思想、特点和应用场景,还有具体实现,以及如何用c++实现这些模式。

从思想原理到具体实现做一个深入的探索。


 

1. .OOP, OOD, UML

2. 从最简单的nullobject模式开始

3. 单例

i. 忘掉volatile和双检测锁

ii. 两行C++11代码实现单例模式

iii. 通过C++11新特性对单例模式做一个泛化

iv. 单例模式的变体--多例

v. 实际应用

4.工厂

i. 非常常见的工厂方法

ii. 从工厂方法到工厂模式

iii. 从工厂到抽象工厂

iv. 用modern c++来终结工厂模式的实现

v. 再谈工厂方法

vi. 实际应用

5.访问者模式

i. 经典的双分派visitor的实现

ii. 经典实现存在的问题

iii. 用modern c++改进visitor模式的实现

iv. 无环的visitor模式

v. visitor模式在实际开发中的应用--variant

vi. 再谈visitor模式

vii. 实际应用

6.策略模式

i. 动态多态

ii. policy-base

iii. pimpl

iv. 实现静态多态的几种思路

v. 实际应用

7.对象池模式

i. 对象复用

ii. modern c++实现对象池模式

iii. 一个实际的数据库连接池

8.设计模式再思考

i. 避免过度设计

ii. 忘掉设计模式

iii. 保持重构

 

 

5. Modern C++元编程

主要讲解Modern C++元编程原理和应用,通过源码分析,丰富的示例,让你深入理解元编程背后蕴含的思想和常见的方法、技巧,同时还会讲解元编程是如何应用于实际开发的。

本专题是C++高级开发工程师进阶现代C++元编程很棒的指导。

 1. modern c++元编程思想

2. 编译期检查

3. 编译期探测

4. 编译期计算

5. 编译期反射

6. 融合编译期和运行期

7. 消除重复(宏)

8. 接口泛化与统一

9. 接口易用性和灵活性

 

6. C++23之编译期反射

C++编译期反射是一个非常有用的特性,应用于很多场景,比如序列化和ORM等场景,但是目前C++缺少编译期反射特性。

本专题将深入浅出编译期反射思想、原理和实现以及典型应用。


 

1. 什么是编译期反射

2. 编译期反射的实现

3. 编译期反射性能

4. 编译期反射的应用

5. 编译期反射的未来

 

 

7. C++20之coroutine

协程是一个呼声比较高的C++20新特性,为什么它受到特别关注,会讲解它的实现原理,特点和应用,让大家能深入浅出理解和应用协程。

1. 协程是什么

2. 协程解决了什么问题

3. 如何在实际开发中使用协程

4. 使用协程需要注意的问题

5. 对协程的再思考

 

 

8. C++20之concepts

 concepts是C++之父一直推崇的一个特性,早在90年代他就开始写关于concepts的提案,他认为这是20中最重要的特性之一,它也是改变

C++编程方式的一个特新。

1. 为什么需要concepts?

2. concepts的特点

3. 标准库中的concepts

4. 如何在实际开发中使用concepts

5. concetps的未来

 

 

9. C++20之Modules

modules被认为可以大幅提高C++编译速度,让我们可以像java那样import一些模块。我们会深入到modules的细节,看看它是如何提高编译速度的

1. 为什么需要module

2. modules的细节

3. 如何使用modules

4. modules存在的问题

 

 

10. C++演进趋势

C++标准委员会自从2011年开始保持了每三年更新一个标准的节奏,新的特新不断加入,但是回顾C++的历史和现在

标准委员会的委员们在审阅的提案,我们可以发现C++的演进脉络和趋势。

 1. C++标准的历史

2. 每个标准中的重要特性

3. C++设计哲学和新特性

4. C++演进趋势

 

 

二、专题系列

 

1. . C++多态极其未来

基于虚分派的动态多态已经有三十多年的历史了,后来C++又支持了静态多态,但静态多态并不能完全替代动态多态,最近C++社区的一个热点是如何实现非虚分派的动态多态,消除虚函数的开销。

1. 动态多态的原理和实现

2. 静态多态的原理和实现

3. 什么时候用动态多态和静态多态

4. 动态多态的未来

 

 

2. STL算法(函数式编程

 实际生产环境中的代码背后隐藏着各种不同的思想,这些思想从编程的角度归为OOP和函数式编程等思想。

STL算法很容易实现函数式编程,我们将深入函数式编程,掌握STL算法是如何在函数式编程中应用的。

1. lambda

2. 高阶函数

3. pipeline

4. 惰性求值

5. curry

6. monad

7. 偏函数应用

8. 函数式编程在实际中的应用

 

 

3. C++性能优化

TODO

 

4. C++内存管理

TODO

 

5.C++异常和错误处理

TODO

 

6. C++开源项目

TODO


返回上一级