# CppGuide
**Repository Path**: balloonwj/CppGuide
## Basic Information
- **Project Name**: CppGuide
- **Description**: 优质的C++后端开发进阶学习资料~
- **Primary Language**: C++
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 588
- **Forks**: 224
- **Created**: 2020-10-08
- **Last Updated**: 2025-06-03
## Categories & Tags
**Categories**: ebooks-manual
**Tags**: None
## README
此仓库是公众号【**高性能服务器开发**】文章汇总,作者是张小方,clone或转发仓库文章时时请保留作者信息。
> CppGuide仓库配有专门的微信维护和交流群,加微信easy_coder备注“cppguide仓库”拉你进群。
在线阅读站点:**https://cppguide.cn**
在线阅读站点2:https://balloonwj.github.io/cpp-guide-web/
在线阅读站点3: http://balloonwj.gitee.io/cpp-guide-web/
> **如需下载该站点源码用于自己搭建站点,可以在【CppGuide】微信公众号后台回复关键字“站点下载”即可得到搭建本仓库的站点的全套源码。**

## Part I
* [C++必知必会的知识点](articles/C++必知必会的知识点/README.md)
* [如何成为一名合格的C/C++开发者?](articles/C++必知必会的知识点/如何成为一名合格的CC++开发者?.md)
* [不定参数函数实现var_arg系列的宏](articles/C++必知必会的知识点/不定参数函数实现var_arg系列的宏.md)
* [你一定要搞明白的C函数调用方式与栈原理](articles/C++必知必会的知识点/你一定要搞明白的C函数调用方式与栈原理.md)
* [深入理解C/C++中的指针](articles/C++必知必会的知识点/深入理解CC++中的指针.md)
* [详解C++11中的智能指针](articles/C++必知必会的知识点/详解C++11中的智能指针.md)
* [C++17结构化绑定](articles/C++必知必会的知识点/C++17结构化绑定.md)
* [C++必须掌握的pimpl惯用法](articles/C++必知必会的知识点/C++必须掌握的pimpl惯用法.md)
* [用Visual Studio调试Linux程序](articles/C++必知必会的知识点/用VisualStudio调试Linux程序.md)
* [如何使用Visual Studio管理和阅读开源项目代码](articles/C++必知必会的知识点/如何使用VisualStudio管理和阅读开源项目代码.md)
* [利用cmake工具生成Visual Studio工程文件](articles/C++必知必会的知识点/利用cmake工具生成VisualStudio工程文件.md)
* [多线程](articles/多线程/README.md)
* [后台C++开发你一定要知道的条件变量](articles/多线程/后台C++开发你一定要知道的条件变量.md)
* [整型变量赋值是原子操作吗?](articles/多线程/整型变量赋值是原子操作吗?.md)
* [网络编程](articles/网络编程/README.md)
* [bind 函数重难点解析](articles/网络编程/bind函数重难点解析.md)
* [connect 函数在阻塞和非阻塞模式下的行为](articles/网络编程/connect函数在阻塞和非阻塞模式下的行为.md)
* [select 函数重难点解析](articles/网络编程/select函数重难点解析.md)
* [Linux epoll 模型(含LT 模式和 ET 模式详解)](articles/网络编程/Linuxepoll模型(含LT模式和ET模式详解).md)
* [socket 的阻塞模式和非阻塞模式](articles/网络编程/socket的阻塞模式和非阻塞模式.md)
* [非阻塞模式下 send 和 recv 函数的返回值](articles/网络编程/非阻塞模式下send和recv函数的返回值.md)
* [服务器开发通信协议设计介绍](articles/网络编程/服务器开发通信协议设计介绍.md)
* [TCP 协议如何解决粘包、半包问题](articles/网络编程/TCP协议如何解决粘包、半包问题.md)
* [网络通信中收发数据的正确姿势](articles/网络编程/网络通信中收发数据的正确姿势.md)
* [服务器端发数据时,如果对端一直不收,怎么办?](articles/网络编程/服务器端发数据时,如果对端一直不收,怎么办?.md)
* [程序员必知必会的网络命令](articles/程序员必知必会的网络命令/README.md)
* [利用telnet命令发电子邮件](articles/程序员必知必会的网络命令/利用telnet命令发电子邮件.md)
* [做Java或者C++开发都应该知道的lsof命令](articles/程序员必知必会的网络命令/做Java或者C++开发都应该知道的lsof命令.md)
* [Linux网络故障排查的瑞士军刀nc命令](articles/程序员必知必会的网络命令/Linux网络故障排查的瑞士军刀.md)
* [Linux tcpdump使用详解](articles/程序员必知必会的网络命令/Linuxtcpdump使用介绍.md)
* [从抓包的角度分析connect函数的连接过程](articles/程序员必知必会的网络命令/从抓包的角度分析connect函数的连接过程.md)
* [服务器开发中网络数据分析与故障排查经验漫谈](articles/程序员必知必会的网络命令/服务器开发中网络数据分析与故障排查经验漫谈.md)
## Part II
* [高性能服务器框架设计](articles/高性能服务器框架设计/README.md)
* [主线程与工作线程的分工](articles/高性能服务器框架设计/主线程与工作线程的分工.md)
* [Reactor模式](articles/高性能服务器框架设计/Reactor模式.md)
* [实例:一个服务器程序的架构介绍](articles/高性能服务器框架设计/实例:一个服务器程序的架构介绍.md)
* [错误码系统的设计](articles/高性能服务器框架设计/错误码系统的设计.md)
* [日志系统的设计](articles/高性能服务器框架设计/日志系统的设计.md)
* [如何设计断线自动重连机制](articles/高性能服务器框架设计/如何设计断线自动重连机制.md)
* [心跳包机制设计详解](articles/高性能服务器框架设计/心跳包机制设计详解.md)
* [业务数据处理一定要单独开线程吗](articles/高性能服务器框架设计/业务数据处理一定要单独开线程吗.md)
* [C++ 高性能服务器网络框架设计细节](articles/高性能服务器框架设计/C++高性能服务器网络框架设计细节.md)
* [服务器开发案例实战](articles/服务器开发案例实战/README.md)
* [从零实现一个http服务器](articles/服务器开发案例实战/从零实现一个http服务器.md)
* [从零实现一款12306刷票软件](articles/服务器开发案例实战/从零实现一款12306刷票软件.md)
* [从零实现一个邮件收发客户端](articles/服务器开发案例实战/从零实现一个邮件收发客户端.md)
* [从零开发一个WebSocket服务器](articles/服务器开发案例实战/从零开发一个WebSocket服务器.md)
* [从零学习开源项目系列(一)从一款多人联机实时对战游戏开始](articles/服务器开发案例实战/1从一款多人联机实时对战游戏开始.md)
* [从零学习开源项目系列(二)最后一战概况](articles/服务器开发案例实战/2最后一战概况.md)
* [从零学习开源项目系列(三) CSBattleMgr服务源码研究](articles/服务器开发案例实战/3CSBattleMgr服务源码研究.md)
* [从零学习开源项目系列(四)LogServer源码探究](articles/服务器开发案例实战/4LogServer源码探究.md)
## Part III
* [TeamTalk IM源码分析](articles/TeamTalk源码解析/index.md)
* [01 TeamTalk介绍](articles/TeamTalk源码解析/01TeamTalk介绍.md)
* [02 服务器端的程序的编译与部署](articles/TeamTalk源码解析/02服务器端的程序的编译与部署.md)
* [03 服务器端的程序架构介绍](articles/TeamTalk源码解析/03服务器端的程序架构介绍.md)
* [04 服务器端db_proxy_server源码分析](articles/TeamTalk源码解析/04服务器端db_proxy_server源码分析.md)
* [05 服务器端msg_server源码分析](articles/TeamTalk源码解析/05服务器端msg_server源码分析.md)
* [06 服务器端login_server源码分析](articles/TeamTalk源码解析/06服务器端login_server源码分析.md)
* [07 服务器端msfs源码分析](articles/TeamTalk源码解析/07服务器端msfs源码分析.md)
* [08 服务器端file_server源码分析](articles/TeamTalk源码解析/08服务器端file_server源码分析.md)
* [09 服务器端route_server源码分析](articles/TeamTalk源码解析/09服务器端route_server源码分析.md)
* [10 开放一个TeamTalk测试服务器地址和几个测试账号](articles/TeamTalk源码解析/10开放一个TeamTalk测试服务器地址和几个测试账号.md)
* [11 pc客户端源码分析](articles/TeamTalk源码解析/11pc客户端源码分析.md)
* [libevent源码深度剖析](articles/libevent源码深度剖析/index.md)
* [libevent源码深度剖析01](articles/libevent源码深度剖析/libevent源码深度剖析01.md)
* [libevent源码深度剖析02](articles/libevent源码深度剖析/libevent源码深度剖析02.md)
* [libevent源码深度剖析03](articles/libevent源码深度剖析/libevent源码深度剖析03.md)
* [libevent源码深度剖析04](articles/libevent源码深度剖析/libevent源码深度剖析04.md)
* [libevent源码深度剖析05](articles/libevent源码深度剖析/libevent源码深度剖析05.md)
* [libevent源码深度剖析06](articles/libevent源码深度剖析/libevent源码深度剖析06.md)
* [libevent源码深度剖析07](articles/libevent源码深度剖析/libevent源码深度剖析07.md)
* [libevent源码深度剖析08](articles/libevent源码深度剖析/libevent源码深度剖析08.md)
* [libevent源码深度剖析09](articles/libevent源码深度剖析/libevent源码深度剖析09.md)
* [libevent源码深度剖析10](articles/libevent源码深度剖析/libevent源码深度剖析10.md)
* [libevent源码深度剖析11](articles/libevent源码深度剖析/libevent源码深度剖析11.md)
* [libevent源码深度剖析12](articles/libevent源码深度剖析/libevent源码深度剖析12.md)
* [libevent源码深度剖析13](articles/libevent源码深度剖析/libevent源码深度剖析13.md)
* [leveldb源码分析](articles/leveldb源码分析/README.md)
* [leveldb源码分析1](articles/leveldb源码分析/leveldb源码分析1.md)
* [leveldb源码分析2](articles/leveldb源码分析/leveldb源码分析2.md)
* [leveldb源码分析3](articles/leveldb源码分析/leveldb源码分析3.md)
* [leveldb源码分析4](articles/leveldb源码分析/leveldb源码分析4.md)
* [leveldb源码分析5](articles/leveldb源码分析/leveldb源码分析5.md)
* [leveldb源码分析6](articles/leveldb源码分析/leveldb源码分析6.md)
* [leveldb源码分析7](articles/leveldb源码分析/leveldb源码分析7.md)
* [leveldb源码分析8](articles/leveldb源码分析/leveldb源码分析8.md)
* [leveldb源码分析9](articles/leveldb源码分析/leveldb源码分析9.md)
* [leveldb源码分析10](articles/leveldb源码分析/leveldb源码分析10.md)
* [leveldb源码分析11](articles/leveldb源码分析/leveldb源码分析11.md)
* [leveldb源码分析12](articles/leveldb源码分析/leveldb源码分析12.md)
* [leveldb源码分析13](articles/leveldb源码分析/leveldb源码分析13.md)
* [leveldb源码分析14](articles/leveldb源码分析/leveldb源码分析14.md)
* [leveldb源码分析15](articles/leveldb源码分析/leveldb源码分析15.md)
* [leveldb源码分析16](articles/leveldb源码分析/leveldb源码分析16.md)
* [leveldb源码分析17](articles/leveldb源码分析/leveldb源码分析17.md)
* [leveldb源码分析18](articles/leveldb源码分析/leveldb源码分析18.md)
* [leveldb源码分析19](articles/leveldb源码分析/leveldb源码分析19.md)
* [leveldb源码分析20](articles/leveldb源码分析/leveldb源码分析20.md)
* [leveldb源码分析21](articles/leveldb源码分析/leveldb源码分析21.md)
* [leveldb源码分析22](articles/leveldb源码分析/leveldb源码分析22.md)
* [Memcached源码分析](articles/Memcached源码分析/README.md)
* [00 服务器资源调整](articles/Memcached源码分析/00服务器资源调整.md)
* [01 初始化参数解析](articles/Memcached源码分析/01初始化参数解析.md)
* [02 网络监听的建立](articles/Memcached源码分析/02网络监听的建立.md)
* [03 网络连接建立](articles/Memcached源码分析/03网络连接建立.md)
* [04 内存初始化](articles/Memcached源码分析/04内存初始化.md)
* [05 资源初始化](articles/Memcached源码分析/05资源初始化.md)
* [06 get过程](articles/Memcached源码分析/06get过程.md)
* [07 cas属性](articles/Memcached源码分析/07cas属性.md)
* [08 内存池](articles/Memcached源码分析/08内存池.md)
* [09 连接队列](articles/Memcached源码分析/09连接队列.md)
* [10 Hash表操作](articles/Memcached源码分析/10Hash表操作.md)
* [12 set操作](articles/Memcached源码分析/12set操作.md)
* [13 do_item_alloc操作](articles/Memcached源码分析/13do_item_alloc操作.md)
* [14 item结构](articles/Memcached源码分析/14item结构.md)
* [15 Hash表扩容](articles/Memcached源码分析/15Hash表扩容.md)
* [16 线程交互](articles/Memcached源码分析/16线程交互.md)
* [17 状态机](articles/Memcached源码分析/17状态机.md)
* [游戏开发专题](articles/游戏开发专题/README.md)
* [1 游戏服务器开发的基本体系与服务器端开发的一些建议](articles/游戏开发专题/1游戏服务器开发的基本体系与服务器端开发的一些建议.md)
* [2 网络游戏服务器开发框架设计介绍](articles/游戏开发专题/2网络游戏服务器开发框架设计介绍.md)
* [3 游戏后端开发需要掌握的知识](articles/游戏开发专题/3游戏后端开发需要掌握的知识.md)
* [4 关于游戏服务端架构的整理](articles/游戏开发专题/4关于游戏服务端架构的整理.md)
* [5 各类游戏对应的服务端架构](articles/游戏开发专题/5各类游戏对应的服务端架构.md)
* [6 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则](articles/游戏开发专题/6从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则.md)
* [7 QQ游戏百万人同时在线服务器架构实现](articles/游戏开发专题/7QQ游戏百万人同时在线服务器架构实现.md)
* [8 大型多人在线游戏服务器架构设计](articles/游戏开发专题/8大型多人在线游戏服务器架构设计.md)
* [9 百万用户级游戏服务器架构设计](articles/游戏开发专题/9百万用户级游戏服务器架构设计.md)
* [10 十万在线的WebGame的数据库设计思路](articles/游戏开发专题/10十万在线的WebGame的数据库设计思路.md)
* [11 一种高性能网络游戏服务器架构设计](articles/游戏开发专题/11一种高性能网络游戏服务器架构设计.md)
* [12 经典游戏服务器端架构概述](articles/游戏开发专题/12经典游戏服务器端架构概述.md)
* [13 游戏跨服架构进化之路](articles/游戏开发专题/13游戏跨服架构进化之路.md)
## Part IV
* [程序员面试题精讲](articles/程序员面试题精讲/README.md)
* [腾讯后台开发实习生技能要求](articles/程序员面试题精讲/腾讯后台开发实习生技能要求.md)
* [聊聊如何拿大厂的 offer](articles/程序员面试题精讲/聊聊如何拿大厂的offer.md)
* [网络通信题目集锦](articles/程序员面试题精讲/网络通信题目集锦.md)
* [我面试后端开发经理的经历](articles/程序员面试题精讲/我面试后端开发经理的经历.md)
* [Linux C/C++后端开发面试问哪些问题](articles/程序员面试题精讲/LinuxCC++后端开发面试问哪些问题.md)
* [职业规划](articles/职业规划/README.md)
* [给工作 4 年迷茫的程序员们的一点建议](articles/职业规划/给工作4年迷茫的程序员们的一点建议.md)
* [聊聊技术人员的常见的职业问题](articles/职业规划/聊聊技术人员的常见的职业问题.md)
* [写给那些傻傻想做服务器开发的朋友](articles/职业规划/写给那些傻傻想做服务器开发的朋友.md)
* [自我提升与开源代码](articles/自我提升与开源代码/README.md)
* [2020 年好好读一读开源代码吧](articles/自我提升与开源代码/2020年好好读一读开源代码吧.md)
* [后端开发相关的书籍](articles/后端开发相关的书籍/README.md)
* [后台开发应该读的书](articles/后端开发相关的书籍/后台开发应该读的书.md)
* [程序员的简历](articles/程序员的简历/README.md)
* [程序员如何写简历](articles/程序员的简历/程序员如何写简历.md)
* [程序员的薪资与年终奖那些事儿](articles/程序员的薪资与年终奖那些事儿/README.md)
* [技术面试与HR谈薪资技巧](articles/程序员的薪资与年终奖那些事儿/技术面试与HR谈薪资技巧.md)
* [聊一聊程序员如何增加收入](articles/程序员的薪资与年终奖那些事儿/聊一聊程序员如何增加收入.md)
* [谈一谈年终奖](articles/程序员的薪资与年终奖那些事儿/谈一谈年终奖.md)
* [程序员的烦心事](articles/程序员的烦心事/README.md)
* [拒绝了一家公司的offer后,他们的副总和hr总监同时打电话来询问拒绝原因并极力要求加入,我该不该去?](articles/程序员的烦心事/拒绝了一家公司的offer后,他们的副总和hr总监同时打电话来询问拒绝原因并极力要求加入,我该不该去?.md)
* [我是一名程序员,结婚时女友要求我用两年的工资作为彩礼,我该不该答应?](articles/程序员的烦心事/我是一名程序员,结婚时女友要求我用两年的工资作为彩礼,我该不该答应?.md)
* [作者的故事](articles/作者的故事/README.md)
* [我的 2019](articles/作者的故事/我的2019.md)
* [我是如何年薪五十万的](articles/作者的故事/我是如何年薪五十万的.md)
## 贡献者
> 你也可以给该仓库提交修改内容,如果你的 PULL Requeset 被采纳,你的名字将会出现在贡献者列表中。
> 如果您在阅读上述文章的过程中有任何问题或者建议,可以加本仓库微信交流群交流,可以先微信 easy_coder,备注“CppGuide”,备注不对不加哦。
> 仓库中部分文章来源于网络,侵权请联系删除。
> 本仓库备份QQ交流群:169315117
## 捐赠与支持
如果你觉得本仓库对你有帮助,想可以请小方喝杯咖啡,扫描下面的任一二维码捐赠即可。


Good Luck and Enjoy it!