精心整理的给简历加分的C++项目。值得收藏

无论做什么项目,在写简历时,最好要整理出项目中的技术点,思考如何跟面试官介绍你的项目,要经得起面试官的提问。项目的话,可以考虑做下面的这几个:

神级编程网站,堪称程序员的充电站,我给你找好了不能错过_程序员编程指南的博客-CSDN博客

基于各种网络库实现网络服务器/web服务器/http服务器等

做这个的就太多了,在github上搜一搜到处都是这个。面C++的很多都写了这个。

  • 一个多线程网络服务器,

https://github.com/chenshuaihao/NetServer

  • TinyWebServer

Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.

  • 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和模拟Proactor均实现) 的并发模型

  • 使用状态机解析HTTP请求报文,支持解析GET和POST请求

  • 访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件

  • 实现同步/异步日志系统,记录服务器运行状态

  • 经Webbench压力测试可以实现上万的并发连接数据交换

https://github.com/qinguoyi/TinyWebServer

迷你数据库

  • cpp_redis

这是一个 C++11编写的轻量级 Redis 客户端,具有异步、线程安全、无依赖、pipelining、跨平台等特性。代码量不大,可以学习如何编写一个简洁高效的网络通信客户端程序,另外项目采用了C++11编写,通过这个开源项目,你还可以学习如何使用这些语言新特性。

https://github.com/Cylix/cpp_redis/

写个操作系统。

这个在网上也有专门的课程,可以跟着 B 站 MIT 6.828 视频做。

MIT6.828 是 MIT 开源的一门操作系统课程--理论与实践相结合的经典。只要你跟着项目一步一步走,做完 6 个实验,就能实现一个简单的操作系统内核。

每个实验都有对应的知识点供你学习(也可以自行查找资料),学完理论知识后会有相应的练习,大多数都需要你手写代码。

边学边做,学习效果更加高效。

做这个项目之前建议看看下列资料:

  • x86汇编语言:从实模式到保护模式

  • xv6-chinese

  • 操作系统导论或任意一本操作系统书籍

B站:https://www.bilibili.com/video/BV1px411E7ST/?from=search&seid=94735724635768212

https://github.com/woai3c/MIT6.828

日志系统

  • dbg-macro

打日志是 C++ 开发中必不可少的一种 debug 方式,dbg-macro 受 rust-lang 中 的 dbg 启发,提供比 printf 和 std::cout 更好的宏函数。

https://github.com/sharkdp/dbg-macro

Json解析库。

  • 从零开始的 JSON 库教程

https://github.com/miloyip/json-tutorial

  • libjson

这是一个超级高效的JSON解析器,并且高度可定制的,非常轻巧。

https://sourceforge.net/projects/libjson/

实现属于你自己的 STL

基于 C++11 的 tinySTL,使用了中文文档与中文注释,刚开始是作为新手练习用途,直到现在已经发布了 2.x.x 版本。实现了大部分 STL 中的容器与函数,

https://github.com/Alinshans/MyTinySTL

从0教你做的服务器框架

该项目主要有 13 大模块组成,分别是日志模块、配置模块、线程模块、协程模块、协程调度模块、IO协程调度模块、Hook模块、Socket模块、ByteArray序列化模块、TcpServer模块、Stream模块、HTTP模块、Servlet模块。

https://github.com/sylar-yin/sylar

仿muduo,实现个人网络库

使用C++动手实现自己的网络库(参考Muduo)

本项目是参考陈硕老师的Muduo网络库,与Muduo的不同点:

  • 去掉了Muduo库中的Boost依赖,完全使用C++标准,如使用std::function<>

  • 没有单独封装Thread,使用C++11引入的std::thread搭配lambda表达式实现工作线程,没有直接使用pthread库。类似的直接使用C++11/17的还有std::atomic,std::any等

  • 只实现了epoll这一个IO-Multiplexing,没有实现poll/select

  • 异步日志模块前端不同与原作者的C++风格,是格式化字符串(fmt)风格,前后端异步日志写入使用陈硕老师双缓冲区的思想实现。由于只用于学习,不支持日志滚动功能

  • Buffer部分Muduo库没有提供writeFd方法,本项目加入了writeFd,在处理outputBuffer剩余未发数据时交给Buffer来处理

  • 示例中仅实现了http服务器与echo服务器,使用了Apache Benchmark做了压测,详见下文

  • 暂时没有做TcpClient部分

https://github.com/shiyu-ren/mymuduo

基于 C++ 和 Qt5 的音乐播放器

https://gitee.com/freedomzzq/IcePlayer

基于Qt,QCustomPlot,OpenCV等库实现图像分析处理系统

https://github.com/QiTianyu-0403/OpenCVImage

C++音视频 FFmpeg 播放 RTSP/Webcam 流

https://github.com/ikuokuo/rtsp-wasm-player

神级编程网站,堪称程序员的充电站,我给你找好了不能错过_程序员编程指南的博客-CSDN博客

你可能感兴趣的:(c++)