# C++项目精选:高性能服务器 | 代码随想录

最近知识星球里的项目开启翻新计划,为了应变每年校招求职的变化,很多星球老项目都重构代码并重写项目文档了。

这期给大家重构的项目是 23年在知识星球里发布的webserver项目。

# 老生常淡,webserver还能做吗?

关于C++的项目,大家都会知道 webserver。

有一个段子:C++选手人均webserver。

我得给webserver“伸冤”一下,其实webserver是一个非常好的学习项目,只是这个项目的形式“烂大街”了,它所涉及的知识依然是经典的。

webserver 所涉及到的知识:

  • C++八股(C/C++语法全覆盖、内存管理等、可以扩展至C++11/17)
  • 操作系统(线程、进程、锁、还有大量的 I/O 系统调用及其封装还有 EPOLL 等多路复用机制)
  • 网络(网络编程,通信,网络异常的处理)
  • 数据库(注册中心的数据库语句、负载均衡等)
  • 还有设计模式、缓存设计,日志系统,定时器模块等等

大家背的八股,无非就是 网络,操作系统和数据库,还有C++八股,webserver基本都包含了webserver是八股结合实战非常好的案例

可以理解成:webserver 就是大家背的八股的实战篇

webserver 也可以称之为高性能服务器,因为他算是服务器开发,不少录友在简历上不写webserver这个名字,而写的是高性能服务器。

换一个名字好像高级了一些。。。

如果你时间充裕,想系统学习C++,做webserver是非常好的选择,你会发现自己背的八股都活学活用了。

当然,简历上一个webserver 是不够的,还需要再做一个项目。 知识星球里有众多项目可以选:

如果你时间紧张,那就别做webserver了,本来形式就是“烂大街”的。

webserver是用来打基础的,也没时间打基础,就把相关八股背一背,突击做一些新颖一些的项目。知识星球里目前有10个C++的项目可以选择。

# 高性能服务器项目第二版

代码方面,这次开放专栏对应的代码仓库Github:https://github.com/youngyangyang04/kama-webserver

欢迎star、fork

文档方面,相对与第一版 (opens new window) 做了如下优化:

1、开篇:讲述了为什么要学习webserver,以及学习webserver需要什么基础知识。

2、大纲:讲述了整个文章的框架结构。

3、框架梳理:讲述了webserver整体的架构如网络模块、定时器模块、内存池、LFU、日志系统等。

4、代码模块:讲述了上面提到模块以及内存池、LFU的核心代码部分。

5、面试问题:整理了星球录友亲身经历的问题

6、补充简历写法。

# 高性能服务器专栏

该项目的专栏是知识星球录友专享的。

项目专栏依然是将 「简历写法」给大家列出来了,大家学完就可以参考这个来写简历:

做完该项目,面试中大概率会有哪些面试问题,以及如何回答,也列出好了:

专栏中的项目面试题都掌握的话,这个项目在面试中基本没问题。

很多录友在做项目的时候,把项目运行起来 就是第一大难点!

本项目运行起来 需要依赖的环境很多,所以我给大家准备的 自动化环境配置脚本, 项目运行环境,一键配置! 不需要大家去处理环境问题了

框架梳理:

底层网络模块架构:

代码讲解:

日志系统的设计:

缓冲区的设计:

内存管理设计:

线程池:

# 下载方式

本文档仅为星球内部专享,大家可以加入知识星球里获取,在星球置顶一:

加入星球后可以获取全部项目文档和八股资料!。

这里给出10元代金券,领代金券加入,代码随想录知识星球支持三天内(72h)可以全额退款。

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

上次更新:: 4/2/2025, 9:04:07 PM
@2021-2024 代码随想录 版权所有 粤ICP备19156078号