以下文章來源於程序員編程錄 ,作者RioCoder
原文:https://mp.weixin.qq.com/s/borve4c6O2s2OHxvIy5knA
今天分享幾款我收藏的適合初學者的C語言和C++領域的開源項目,有涉及語言基礎知識的、有涉及數據結構和算法題的、有涉及設計模式的代碼實現的,甚至還有涉及效率工具和實踐的,希望能有幫助。

項目一
項目名稱: C
項目簡介: 是的,你沒有看錯,這個項目的名字就是單個字母C。C是一個寶藏項目,可以說是學習數據結構和刷算法題的利器,因為里面包含了幾乎各種基礎算法、數據結構、以及LeetCode算法題的C語言實現。具體包括:
- 客戶端/服務器問題
- 統計方法問題
- 進制轉換問題
- 各種數據結構:數組、鏈表、字典、二叉樹、堆、棧、隊列、哈希、圖等等
- 搜索/查找問題
- 排序問題
- LeetCode習題
- 其他雜項問題
注意,下圖中只是截取了一部分數據結構和算法題的具體實現:

對於我們的作用: 可以幫助我們更好的學習數據結構、以及刷算法題
項目源碼地址: 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
這次就先分享到這里吧,也感謝優秀的開源作者們付出的努力,后面有優秀的開源項目也會持續推薦的!
喜歡請多多關注易傑智科技!