文章目录
基础
Google开源代码规范
https://github.com/zh-google-styleguide/zh-google-styleguide
评价:还没有学
CPlusPlusThings
项目名称: CPlusPlusThings
项目简介: CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【学习课程】、【工具】、【拓展】。作为一个全面系统的 C++ 学习项目,CPlusPlusThings 是优秀的,它合理地安排了 10 Days 的实战部分,在实战中了解语法和函数用法
对于我们的作用: 可以帮助我们系统地学习 C++ 相关知识
项目源码地址: https://github.com/Light-City/CPlusPlusThings
评级: 8.9 K⭐
评价:一般(有空可能会看)
现代 C++:modern-cpp-tutorial
项目名称:modern-cpp-tutorial 是现代 C++ 教程,它的目的是提供关于现代 C++(2020 年前)的相关特性的全面介绍。除了介绍了代码之外,它还尽可能简单地介绍了其技术需求的历史背景,这对理解为什么会出现这些特性提供了很大的帮助。
项目源码地址:https://github.com/changkun/modern-cpp-tutorial
评级:11.8 K⭐
评价:推荐(待学)
CppTemplateTutorial
评级:4.4k
评价:主要内容C++模板元编程,实际编程中用得很少,闲的没事干可以学学
算法与设计模式
因为我不是专业搞算法的,这个只能放最后去学了,暂时记下来链接
C-Plus-Plus
项目简介:C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。
项目地址: https://github.com/TheAlgorithms/C-Plus-Plus
评级: 9.7K ⭐
评价:代码风格不错(待学)
C
项目名称: C
项目简介: 是的,你没有看错,这个项目的名字就是单个字母C。C是一个宝藏项目,可以说是学习数据结构和刷算法题的利器,因为里面包含了几乎各种基础算法、数据结构、以及LeetCode算法题的C语言实现。具体包括:
客户端/服务器问题
统计方法问题
进制转换问题
各种数据结构:数组、链表、字典、二叉树、堆、栈、队列、哈希、图等等
搜索/查找问题
排序问题
LeetCode习题
其他杂项问题
注意,下图中只是截取了一部分数据结构和算法题的具体实现:
对于我们的作用: 可以帮助我们更好的学习数据结构、以及刷算法题
项目源码地址: https://github.com/TheAlgorithms/C
design-patterns-cpp
项目名称: design-patterns-cpp
项目简介: 从项目名称就能够猜出来,这是一个C++语言版的设计模式实现,里面包含了常见设计模式的C++ 语言实现。
对于我们的作用: 帮助我们理解和实践设计模式相关知识
项目源码地址: https://github.com/JakubVojvoda/design-patterns-cpp
网络与环境编程
cpp-httplib[推荐]
一个header-only的跨平台HTTP/HTTPS服务器和客户端C 库
项目源码地址: https://github.com/yhirose/cpp-httplib
星星:4.6K
评价:就一个头文件,看完应该不太难吧! 推荐
libhv(新手不友好)
项目名称: libhv
项目简介:libhv类似于libevent、libev和libuv,是一个跨平台的具有非阻塞I/O和计时器的异步事件驱动库,但libhv提供了更加简单易用的API接口并支持更加丰富的网络协议,基于它可以快速驱动HTTP服务端和客户端,从而提供高性能的http服务。
主要技术点或特性: 跨平台、事件循环、非阻塞I/O、支持IPv6、使用OpenSSL、支持多种网络协议
对于我们的作用: 可以帮助我们理解和实践操作系统的相关知识
项目源码地址:https://github.com/ithewei/libhv
评级:1.7K ⭐
评价:这个项目我看了, 作者代码风格不好,而且实例非常少,新手不建议入
Drogon
Drogon是基于C ++ 14/17的HTTP应用程序框架。Drogon可用于使用C ++轻松构建各种类型的Web应用程序服务器程序。德罗贡(Drogon)是我非常喜欢的美国电视连续剧《权力的游戏》(Game of Thrones)中一条龙的名字。
Drogon是一个跨平台框架,它支持Linux,macOS,FreeBSD,OpenBSD和Windows。其主要特点如下:
- 使用基于epoll的非阻塞I / O网络库(macOS /FreeBSD下的kqueue)提供高并发,高性能的网络IO,请访问TFB测试结果以获取更多详细信息;
- 提供完全异步的编程模式;
- 支持Http1.0 / 1.1(服务器端和客户端);
- 基于模板,实现了一种简单的反射机制,以完全解耦主程序框架,控制器和视图。
- 支持cookie和内置会话;
- 支持后端渲染,控制器将数据生成到视图以生成Html页面。视图由CSP模板文件描述,C
++代码通过CSP标记嵌入到HTML页面中。drogon命令行工具会自动生成C ++代码文件进行编译; - 支持视图页面动态加载(动态编译和运行时加载);
- 提供从路径到控制器处理程序的便捷灵活的路由解决方案;
- 支持过滤器链,以方便在处理HTTP请求之前执行统一的逻辑(例如登录验证,Http方法约束验证等);
- 支持https(基于OpenSSL);
- 支持WebSocket(服务器端和客户端);
- 支持JSON格式的请求和响应,对Restful API应用程序开发非常友好;
- 支持文件下载和上传; 支持gzip,brotli压缩传输;
- 支持流水线;
- 提供一个轻量级的命令行工具drogon_ctl,以简化Drogon中各种类的创建以及视图代码的生成; 支持基于非阻塞I /O的异步读写数据库(PostgreSQL和MySQL(MariaDB)数据库);
- 支持基于线程池异步读写sqlite3数据库;
- 支持ARM架构;
- 提供方便的轻量级ORM实现,支持常规的对象到数据库双向映射;
- 支持插件,可以在加载时由配置文件安装;
- 通过内置连接点支持AOP。
- 支持C ++协程
项目地址:https://github.com/an-tao/drogon
星星:5.1k
评价:例子不太丰富的样子
netdata(新手不友好)
项目名称: netdata
项目简介: netdata是一款开源免费的炫酷Linux系统实时性能和运行状况的系统监控工具。netdata通过使用可交互的仪表盘形式,来提供灵活易用的系统监控。除了支持常见系统平台的安装之外,它还可以非常方便地安装于Docker容器和集群之中并提供监控服务。
对于我们的作用: 既是一个高效的工具,研究其源码也可以帮助我们学习和理解Linux环境实战编程。
项目源码地址: https://github.com/netdata/netdata
评价:代码写的太乱太乱了,现在不看,新手不要乱入
json-tutorial
评级:4.2K ⭐
WebServer
项目地址: https://github.com/linyacool/WebServer
评级:2.6K ⭐
webbench
Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。非常适合用来学习网络编程,代码量也不大,适合初学者:
项目地址:https://github.com/EZLippi/WebBench
评级:1.8K ⭐
评价:还没有看
tmux
项目名称::tmux
项目简介: tmux一个开源免费的的终端复用软件。它的命令行界面非常炫酷易用,支持自由分割窗口,并且可以自由移动和调整,灵活且强大。一个非常强大的使用场景是:当远程连接到服务器使用时,只需要启动tmux,利用它就可以方便地进行后续操作,而无需打开多个ssh控制台窗口。
对于我们的作用: 既是一个高效的工具,研究源码也可以帮助我们学习和理解Linux环境实战编程。
项目源码地址: https://github.com/tmux/tmux
其他
任天堂红白机模拟器
https://github.com/amhndu/SimpleNES
其他资源
https://isocpp.org/get-started
http://www.cppstdlib.com/
GitHub-Chinese-Top-Charts
https://github.com/kon9chunkit/GitHub-Chinese-Top-Charts
知乎问答
C++书单
- Effective C++
- More Effective C++
- Effective STL
- STL源码剖析
- 深度探索C++对象模型
- C++ Primer
- Linux高性能服务器编程
- Linux多线程服务器端编程(选看)
- UNIX 环境高级编程
- UNIX网络编程卷1(必看,五星推荐)
我看过的
- C++语言的设计与演化 : 这本书实在实在实在是看不下去,不知道是不是翻译问题
我的技术路线:学过 C、C++、Java、Rust、Go、Python,看过一点点前端,开发过桌面软件。
决心以后专注 后台开发, 语言还没有确定选择哪个