🚀 前言

《C++基础入门与实战进阶》专栏介绍-LMLPHP
本文是《C++基础入门与实战进阶》专栏的说明贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。

专栏介绍:以多年的开发实战为基础,总结并讲解一些的C/C++基础与项目实战进阶内容,以图文并茂的方式对相关知识点进行详细地展开与阐述!专栏涉及了C/C++领域多个方面的内容,包括C++基础及编程要点、C++11及以上新特性、C++开源库介绍与使用、代码分享(调用系统API、使用开源库)、编程技术(动态库、多线程、多进程、数据库及网络编程等)、软件UI编程(Win32/duilib/QT)、C++软件调试技术(排查软件异常的手段与方法、分析C++软件异常的基础知识、常用软件分析工具使用、实战问题分析案例等)、设计模式、网络基础知识与进阶内容等。

专栏适用人群:适合基础进阶和想做技术提升的C++开发人员!



🔰 专栏内容


本专栏主要包含以下多个方面的内容:(本专栏涵盖了多方面的内容,订阅本专栏,你将获取如下这些全面的内容

📢 1、C++

专栏开篇就系统地介绍了C/C++的学习路线,并给出了学习C/C++经典书籍推荐!本部分结合项目实践和经验,讲解一些日常工作中常用的C++要点知识(比如常用关键字、预编译指令、编程技巧等)以及一些需要重点关注的内容。

📢 2、C++11及以上新特性

C++11是C++发展史上一次里程碑的更新,引入了大量的新特性(引入一些新的关键字、左值右值、左值引用、右值引用、移动语义、完美转发、匿名函数、智能指针、并发编程等),极大地扩展了C++的应用范围和表达能力,开启了现代C++时代。此后,C++标准化组织又陆续推出了C++14、C++17和C++20新特性,这些新特性相对C++11要少很多,都是在C++11基础上的锦上添花。

我们需要重点掌握C++11的新特性。很多C++开源代码积极拥抱C++11及以上的新特性,比如大型开源库WebRTC,大量地使用了C++11及以上的新特性。所以,我们在阅读开源代码时要熟悉C++11等新特性,在日常项目开发过程中也会或多或少地使用C++11新特性。此外,通过近几年的观察,C++11新特性已成为很多公司面试时必问的内容。所以学习C++11新特性很有必要,不仅学习阅读开源代码时会用到,日常工作中也会或多或少地用到,而且面试时也会涉及到。

强烈推荐大家去看看Google的C++代码风格指南(Google C++ Style Guide),其中讲到了大量的C++老特性与新特性。有国内程序员翻译而来的中文版本,可以去https://github.com/zh-google-styleguide/zh-google-styleguide下载中文版本pdf文档(不仅仅有C++风格指南,还有Objective-C、Shell、JavaScript、Python、TypeScript这些语言的风格指南)。也可以去网址https://google.github.io/styleguide查看原汁原味的英文版本(英文原版还有更多语言的风格指南)。

📢 3、C++开源库介绍与使用

会介绍一些常用的开源库,介绍如何去使用常用的开源库(比如如何去调用接口、使用开源库的要点及注意点、使用开源库的问题排查与经验总结)、如何去编译一些开源库、如何使用开源库去搭建一些简单可用的应用系统,并给出项目中使用的部分实例。常见的开源库有sqlite、libcurl、libwebsockets、libevent、boost、jsoncpp/rapidjson、rabbitmq、mqtt、zookeeper、opencv、ffmpeg、sdl、gstreamer、live555、nginx、reactos等。

📢 4、常用代码分享

会分享一些日常工作中常用功能的实现代码,代码经过项目验证,可以直接拿去使用。比如如何调用系统API去实现一些功能、如何使用libcurl、zlib、zip.cpp/unzip.cpp、libqr、md5、libpng、sqlite、cef、tinyxml、jsoncpp/rapidjson等开源库去实现若干功能。

📢 5、编程技能

会讲到一些常用的编程技能,比如动态库编程、多线程编程(多线程通信与多线程同步)、多进程编程、数据库编程(连接数据库以及SQL语句的编写及SQL语句查询效率优化)、线程间通信及进程间通信、socket网络编程(包含TCP/IP协议栈相关内容)等。会介绍一些开发实践中的要点与编程细节,以及相关问题的排查案例。

📢 6、C++软件调试技术

考察一个开发人员的水平,一方面要看其软件开发与设计能力,另一方面要看其软件调试能力。所以,软件调试能力很重要。

大部分C++开发人员在软件调试这一块都比较欠缺,分析和排查软件异常问题的手段和方法比较单一,处理问题的效率不高,有时甚至会影响到项目推进的进度。

为了解决广大开发人员普遍缺乏调试能力的痛点问题,我们会介绍很多软件调试方面的内容:

关于C++软件调试与异常排查更详细的内容,可以去查看我的精品技术专栏:(目前专栏订阅量已达500多个,专栏质量很高,有很强的实战参考价值,广受好评!

📢 7、软件UI编程

所谓软件UI编程,就是使用UI界面库进行客户端软件界面的开发,一方面会涉及到产品的业务,另一方面会涉及到UI界面编程,其中UI界面编程占了较大的比重。本专栏也会讲到常用的UI界面库MFC、开源duilib库、跨平台QT库相关的内容,主要是使用这些UI库的要点及问题排查经验总结。

📢 8、设计模式

设计模式在日常工作中也会时常用到,比如常见的单例模式、简单工厂模式、观察者模式(订阅)、状态模式(状态机)、适配器模式等。在面试时也会问到设计模式相关的问题,比如使用过哪些设计模式、说说某个设计模式的设计思想以及可以解决什么样的问题。一般不要求掌握所有的设计模式,知道并使用过若干个设计模式即可,需要了解更多时再去学习也可以的。

📢 9、基础网络知识与进阶内容

大部分软件系统都是构建在网络上,客户端与服务器(可能是C/S架构的,也可能是B/S架构的)通过网络进行数据通信与业务交互,这样就可能会遇到这样那样的网络问题。作为IT从业人员,无论是开发人员,还是测试人员,亦或是运维人员和技术支持人员,都要了解基础的网络知识,以便去排查各式各样的网络问题。

专栏中先是大概地介绍了一些基础网络知识,不仅工作中会用到,笔试面试也会涉及到。然后结合项目中遇到的多个网络问题实例,讲解问题的大概排查方法与过程。在这里,不仅可以了解到很多宏观上的网络知识和网络排查技能,也会涉及到很多TCP/IP协议栈的内容。


📝 最后

《C++基础入门与实战进阶》专栏的文章都在这里啦(点击该链接,跳转到专栏主页,欢迎订阅,持续更新…)。

文章会持续更新,大家有想要了解的功能点或者话题,可以在评论区告诉我!

喜欢本专栏的文章,可以点赞、订阅支持一下,你的肯定是对我最大的支持!

也可以收藏本文章,收藏后可以快速查看本专栏后续更新的一系列文章!

08-01 00:19