罗剑锋的C++实战笔记
20年老兵心法,让C++不再难学
特别推荐
你将获得
- C++11/14 核心特性的代码实战
- 标准库的 4 大核心工具详解
- C++ 常见陷阱及其解决方案
- 手把手带你开发一个服务端应用
讲师介绍
罗剑锋,网名“Chrono”,前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者,也是极客时间《透视HTTP协议》专栏的作者。他熟悉各种网络应用协议,专注于 C/C++、Linux、高性能编程等领域,著有《C++11/14 高级编程》《Nginx 完全开发指南》《Boost 程序库完全开发指南》《OpenResty 完全开发指南》等畅销书。
课程介绍
我们知道,C++是编程语言中的“万能选手”。它不仅功能强大、非常灵活,而且运行处理速度也很快,适用场景非常广泛。很多新的编程语言都从它身上获得了灵感。无论你是否使用C++开发程序,在学习它的时候,都能够有很多收获。
但是,说起C++,很多人还会有另一个反应:“出了名的难学难用。”的确如此。因为它实在是太复杂了,有太多的特性和细节。
随着标准版本的演进,C++里包含的东西也越来越多。不断膨胀的核心语言加上庞大的标准库,让学习、使用C++的门槛无形中提高了很多,不仅“新手”学起来很难,就连“老手”也觉得用好它并不是一件容易的事情。毕竟,我们总是不可避免地会遇见一些难题:
- C++太庞大复杂了,该用哪些特性?
- 标准库里的东西这么多,核心的工具有哪些?
- 开源的C++库很多,但良莠不齐,哪些库最好用呢?
- ……
基于以上的这些难题,罗剑锋老师根据自己写C++代码的20多年的实践经验,精选出了C++11/14最好用、最实用的特性,不讲语法细节和内部实现原理,直接上代码实战,让你能轻松地看懂、学会。
另外,在讲解核心特性和工具的过程中,他也会带领你绕开语法细节、资源管理、库/工具等方面的陷阱,帮助你高效地写出更安全、更优雅的代码,真正解决C++难学、难调试、难优化的问题。
常见问题
问:这个课程和《现代C++实战30讲》有什么区别?
答:
《现代C++实战30讲》针对的是C++17/GCC7,有时候还会用到C++20/GCC 8,侧重深入、透彻地讲解语言特性背后的原理,适合想要学习最新特性、想要掌握C++高级技能的工程师。
本课程基于国内目前的开发现状,从C++11/14和较早版本的GCC(4.8/5.4)入手,精选出最常用、最好用的C++特性,结合代码实战告诉你该怎么用、不该怎么用,更适合对C++有所了解(1~5年)但又对其庞大、复杂的特性不知如何取舍的软件工程师。同时,想要借鉴高手实战经验的优秀工程师,同样也能从本课程中获益。
问:平时很少用C++,学习这个课程可以有什么收获吗?
答:
- 可以学习和借鉴高手在编码规范、面向对象、设计模式、设计原则方面的思考和实践经验。
- 开拓编程思路。C++强调“性能至上”,你可以了解到,在面对同样的问题时,C++是如何考虑并处理的。
- 更好地理解计算机系统的应用机制。C/C++是现代操作系统和许多底层开发框架的核心开发语言,了解C/C++的基本知识,就能够阅读操作系统或框架的源码,为上层应用服务。
- 提升混合编程的能力。用多种语言搭建混合系统是当前的一种流行趋势。使用少量C++代码改写系统中的关键组件,能够大幅度提升整体性能,做到“小投入,大产出”。
课程模块设计
课程主体分为5个模块。
概论:从程序的生命周期和编程范式这两个独特的角度来审视C++,帮你看清楚C++复杂的本质,透彻理解C++程序的运行机制和面向对象编程思想。
语言特性:精选C++中的自动类型推导、智能指针、lambda表达式等几个重要特性,帮你掌握惯用法,消灭代码里的隐患,写出清晰、易读、安全的代码。
标准库:详细介绍最核心的四个部分,即字符串、容器、算法和并发,让你用好这个最基本的库,学会泛型编程,提高程序的运行效率。
技能进阶:介绍C++标准之外的一些第三方工具,带你一起实现序列化、网络通信和性能分析等功能,解决实际开发中遇到的常见问题。
总结:结合C++来讲设计模式,并手把手带你开发一个C++服务端程序,帮你深入理解在项目中,如何更高效地使用C++写出更安全的代码。
除此之外,还特别设计了一个“轻松话题”模块,和你聊些C++之外的东西。这些话题涵盖的范围比较广,包括经典的学习资料、提高工作效率的工具等,让你在掌握核心硬技能的同时,还能拓宽知识面。
课程目录
适合人群
- 知道C/C++的基本语法规则(如指针、类、继承等),对泛型有简单的认识,但又对C++的庞大复杂感到不知所措的C/C++软件工程师。
- 不以C++为主要工作语言,但想要借助C++开拓思路、实现混合编程的工程师。