今天分享几款我收藏的适合初学者的C语言和C++领域的开源项目,有涉及语言基础知识的、有涉及数据结构和算法题的、有涉及设计模式的代码实现的,甚至还有涉及效率工具和实践的,希望能有帮助。
后面会再分享一波 Java领域 的开源项目
”
项目名称: C
项目简介: 是的,你没有看错,这个项目的名字就是单个字母C。C是一个宝藏项目,可以说是学习数据结构和刷算法题的利器,因为里面包含了几乎各种基础算法、数据结构、以及LeetCode算法题的C语言实现。具体包括:
注意,下图中只是截取了一部分数据结构和算法题的具体实现:
对于我们的作用: 可以帮助我们更好的学习数据结构、以及刷算法题
项目源码地址: https://github.com/TheAlgorithms/C
项目名称: libhv
项目简介:libhv
类似于libevent
、libev
和libuv
,是一个跨平台的具有非阻塞I/O和计时器的异步事件驱动库,但libhv
提供了更加简单易用的API接口并支持更加丰富的网络协议,基于它可以快速驱动HTTP服务端和客户端,从而提供高性能的http
服务。
主要技术点或特性: 跨平台、事件循环、非阻塞I/O、支持IPv6、使用OpenSSL、支持多种网络协议
对于我们的作用: 可以帮助我们理解和实践操作系统的相关知识
项目源码地址:https://github.com/ithewei/libhv
项目名称: CPlusPlusThings
项目简介: CPlusPlusThings是一个适合初学者的从入门到进阶的仓库,里面包含了大量 C++语言的基础和进阶教程、源码剖析、工具推荐、实战练习等等,解决了初学者从入门到深入 C++的学习问题。
对于我们的作用: 可以帮助我们系统地学习 C++ 相关知识
项目源码地址: https://github.com/Light-City/CPlusPlusThings
项目名称: design-patterns-cpp
项目简介: 从项目名称就能够猜出来,这是一个C++语言版的设计模式实现,里面包含了常见设计模式的C++ 语言实现。
对于我们的作用: 帮助我们理解和实践设计模式相关知识
项目源码地址: https://github.com/JakubVojvoda/design-patterns-cpp
项目名称::tmux
项目简介: tmux一个开源免费的的终端复用软件。它的命令行界面非常炫酷易用,支持自由分割窗口,并且可以自由移动和调整,灵活且强大。一个非常强大的使用场景是:当远程连接到服务器使用时,只需要启动tmux
,利用它就可以方便地进行后续操作,而无需打开多个ssh控制台窗口。
对于我们的作用: 既是一个高效的工具,研究源码也可以帮助我们学习和理解Linux环境实战编程。
项目源码地址: https://github.com/tmux/tmux
项目名称: netdata
项目简介: netdata是一款开源免费的炫酷Linux系统实时性能和运行状况的系统监控工具。netdata通过使用可交互的仪表盘形式,来提供灵活易用的系统监控。除了支持常见系统平台的安装之外,它还可以非常方便地安装于Docker容器和集群之中并提供监控服务。
对于我们的作用: 既是一个高效的工具,研究其源码也可以帮助我们学习和理解Linux环境实战编程。
项目源码地址: https://github.com/netdata/netdata
这次就先分享到这里吧,也感谢优秀的开源作者们付出的努力,后面有优秀的开源项目也会持续推荐的!