搞音视频开发,免不了要跟 C++ 打交道。不过,C++ 的复杂、难学也是出了名的。
随着标准版本的演进,C++ 里包含的东西也越来越多。不断膨胀的核心语言加上庞大的标准库,让学习、使用 C++ 的门槛无形中提高了很多,不仅“新手”学起来很难,就连“老手”也觉得用好它并不是一件容易的事情。大家总会遇到一些共性的难题:
C++ 太庞大复杂了,该怎么抓住重点?该用哪些特性?
C++11/14 有很多新特性,时间精力有限,用哪些能够迅速改善代码质量?
开源的 C++ 库很多,但良莠不齐,哪些库最好用呢?
标准库里的东西太多了,比如容器、算法、迭代器、函数对象……怎么用最合适?
......
那么,C++ 有办法轻松地学习吗?有的,学习 C++ 最缺乏的就是一个“导师”,他能帮你跨越从课堂到现实的“鸿沟”,告诉你实际工作时会遇到哪些问题,又该怎么处理。
所以,为了解决大家的问题,给大家推荐一下我最近正在看的罗剑锋的专刊《罗剑锋的C++实战笔记》,专栏基于国内开发现状,精选 C++11/14 最好用、最实用的特性,不讲语法细节和内部实现原理,直接上代码实战,告诉你该怎么用、不该怎么用,真正看懂、学会。
说起罗剑锋,不少人应该都认识,网名“Chrono”,前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者,熟悉各种网络应用协议,一直都专注于 C/C++、Linux、高性能编程等领域,还曾著有《C++11/14 高级编程》《Nginx 完全开发指南》《Boost 程序库完全开发指南》《OpenResty 完全开发指南》等畅销书。
在这个专栏里,他会带你绕开 C++ 在语法细节、资源管理、库 / 工具等方面的陷阱,帮助你高效地写出更安全、更优雅的代码,真正解决 C++ 难学、难调试、难优化的问题。
整体课程设计,注重语言和库的“开发落地”,基本不讲语法细节和内部实现原理,重点谈使用时的注意事项和经验教训,并用实例促使你更多的应用“现代C++”自然、直观的思维方式。
老罗还给大家总结了一套「C++ 核心知识图谱」:
整体分为五大模块
一. 概论:从程序的生命周期和编程范式这两个独特的角度来审视 C++,帮你看清楚 C++ 复杂的本质,透彻理解 C++ 程序的运行机制。
二. 语言特性:精选 C++ 中的自动类型推导、智能指针、Lambda 表达式等几个重要特性,学会惯用法,消灭代码里的隐患,帮你写出高效、清晰、安全的代码。
三. 标准库模块:详细介绍最核心的四个部分,即字符串、容器、算法和并发,让你用好这个最基本的库,学会泛型编程,提高程序的运行效率。
四. 第三方库模块:介绍 C++ 标准之外的一些第三方工具,带你一起实现序列化、网络通信和性能分析等功能,解决实际开发中遇到的常见问题。
五. 总结模块: 结合 C++ 来讲设计模式,手把手带你开发一个 C++ 服务端程序,帮你深入理解在项目中,如何更高效地使用 C++ 写出更安全的代码。
此外,老罗还会聊些 C++ 之外的东西。包括经典的学习资料、提高工作效率的工具等,让你在掌握核心硬技能的同时,还能拓宽知识面。
大家1 分钟看看目录,相信会找到你想要的。