精心整理的给简历加分的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
更多推荐
所有评论(0)