现代C++实战30讲-吴咏炜-极客时间-返现24元

极客时间专栏 2019-01-24 23:18:14 阅读(6271) 评论(0)

极客时间出品的《现代C++实战30讲》由吴咏炜所作,吴咏炜是前 Intel 资深软件架构师。本专栏基于现代C++编写可维护的高性能代码。

现代C++实战30讲 封面图

《现代C++实战30讲》课程背景

C++,一门声名在外的老牌编程语言。

作为一门多范式的通用编程语言,它适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。从性能上看,C++ 表现也很出色,虽然完成同样的功能,C++ 需要的代码行数可能是 Python 的三倍,而性能则可以轻松达到 Python 的十倍以上。此外,其发展前景也非常广阔,作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是 C++(高性能运算) 。

但你也可能听说过 C++ 的另一种评价——复杂、难学、难用。上手和熟练掌握难,应用上容易出错,被误用的可能性也很大。还有,C++ 继发布语言标准的第二版——C++11——之后,它以每三年一版的频度发布着新的语言标准,每一版都在基本保留向后兼容性的同时,提供改进和新功能。

难且迭代迅速,相信这两座大山让很多 C++ 程序员都望而生畏。可事实真的如此吗?你有没有深入思考过到底什么样的学习方式才最适合 C++?面对那么多的新功能、单词和语法规则,要记吗?哪些才是重点?记住了又怎么用呢?

针对以上这些问题,吴咏炜将结合自己过去 20 多年累积的工作经验,节选现代 C++ 的重要新特性,带你进入编程实战,手把手带你重新理解 C++。相信通过本专栏的学习,你能把 C++ 当作一种实用的语言,能用它写出抽象但自然、可维护的高性能代码,并用它去更好地解决项目中的实际问题。

《现代C++实战30讲》作者简介

现代C++实战30讲 吴咏炜

吴咏炜,前英特尔亚太研发中心资深系统架构师。1995 年毕业于复旦大学,​​从事软件开发工作 20 多年,​历任开发工程师、项目经理、开发经理、架构师等职务。作者热爱软件技术,热爱​ ​C++,热爱开源;对于精炼、易于维护的代码追求不懈。曾参与翻译《编程大师访谈录》。GitHub 上也能看到其维护的一些小开源项目,如 libunibreak。

你将获得

掌握 C++ 语言现代特性

领会 C++ 抽象表达精髓

实践 C++ 开发惯用模式

征服复杂性解决实际问题

课程设计

一、需要什么基础?

1.适宜人群:具有 1~5 年工作经验的 C++ 程序员,熟悉基本编程概念和 C++ 的基本语法,包括指针、引用、异常、递归、class 等(不要求熟悉 C++11),有意愿了解更深入的 C++ 知识。

2.不适宜人群:完全没学过 C++ 的人(本专栏非 0 基础课程)。

3.专栏中的内容大部分时间都会使用不超过 C++17 标准的语言特性,最后在讲到 C++20 新特性时,某些实验功能可能会要求某个特定的编译器。

4.由于专栏涉及到的都是较短的代码,故作者不会提供工程文件,建议你熟悉编译器的命令行,来快速编译代码。

5.特别说明:专栏中案例+代码偏多,不建议仅通过音频学习,“文稿+音频+动手实践”为最佳学习方式。

二、专栏会讲哪些知识?

专栏以现代 C++ 新特性以及相关的编程实践为核心,重点讲“是什么”和“为什么”。即通过学习,你能够清楚地知道某个新的且十分重要的功能为什么存在,应该在什么场景下使用,以及这样用的好处。而语法细节以及技巧,考虑市面资料已十分饱和,作者会尽可能地少讲,需要的地方,会给出合适的参考资料。下面是本专栏的学习路径图

现代C++实战30讲-吴咏炜-极客时间-返现24元

三、专栏模块是怎么设置的?

专栏分为以下四部分:

第一部分——基础篇,讲解现代 C++ 中的最重要特性,帮助你理解基础概念;

第二部分——提高篇,讲述几个独立的专题,帮助你掌握 C++ 中的一些高级技巧;

第三部分——实战篇,讨论实际的工具和第三方库,帮助你打磨手头的兵器库;

第四部分——未来篇,讨论 C++20 中即将引入的一些新特性,帮助你培养前瞻性。

《现代C++实战30讲》课程目录

开篇词C++这么难,为什么我们还要用C++?

课前必读:有关术语发音及环境要求

基础篇

堆、栈、RAII: C++里该如何管理资源?

自己动手,实现C++的智能指针

右值和移动究竟解决了什么问题?

容器汇编I:比较简单的若干容器

容器汇编II:需要函数对象的容器

异常:用还是不用,这是个问题

迭代器和好用的新for循环

易用性改进I:自动类型推断和初始化

易用性改进II:字面量、静态断言和成员函数说明符

提高篇

到底应不应该返回对象?

Unicode:进入多文字支持的世界

编译期多态:泛型编程和模板入门

编译期能做些什么? 一个完整的计算世界

SFINAE:不是错误的特化失败是怎么回事?

constexpr:—个常态的世界

函数对象和lambda:进入函数式编程

函数式编程:一种越来越流行的编程范式

应用可变模板和tuple的编译期技巧

atomic、mutex和thread:进入并发的世界

future和promise:领略异步中的将来

实战篇

工具漫谈:编译、格式化、代码检查、排错各显身手

不同的数据和错误处理方式:optional、variant和 expected

数字计算:介绍线性代数和数值计算库 2. Boost:你需要的“瑞士军刀”

两个单元测试库:C++里如何进行单元测试?

EasyLogging++: 一个优秀的日志库

C++ REST SDK:使用现代C++开发网络应用

未来篇

Concepts:如何对模板进行约束?

Ranges:无迭代器的迭代和更方便的组合

Coroutines:协作式的交叉调度执行

结束语

本专栏为订阅专栏,更新时间为2019年11月25日至2020年02月05日。订阅成功后,即可通过“极客时间”App端、小程序端、Web端永久阅读。

本专栏更新时间为每周一、三、五,形式为图文+音频,定价99元。

 

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...