作為初學者如何讓選擇閱讀代碼以及參與一些開源?
1. 剛學c++沒多久,想去閱讀代碼。但是GitHub上不知道哪些代碼適合自己。應該如何尋找。
2. 然後像我這樣的初學者,有什麼開源項目能去參與。或者想要參與開源項目,需要哪些技能。 3. 看到github上有些項目, 不知道從哪個文件開始閱讀, 想要深入了解卻一片茫然。謝謝~
對於初學者來說,輕量級的優秀代碼是十分必要的,如何找到是適合自己的代碼需要大量的閱讀;
關於源代碼,只能說群眾的眼睛是雪亮的,優秀的項目經得起時間的檢驗;
在此給題主推薦三款適合C++初學者的輕量優秀開源項目,希望對題主的學習有所幫助。
1. 項目名稱:輕量級嵌入式腳本語言 fakescript
項目介紹:fakescript 是一款輕量級的嵌入式腳本語言,使用 c++ 語言編寫,語法吸取自 lua、golang、erlang,基於 flex、bison 生成語法樹,編譯成位元組碼解釋執行。與 lua 相比,運行速度不相上下,更易使用,源代碼可讀性更強。
腳本特性:
- 語法類似 lua。
- 全部為函數。
- 支持 array,map,可以無限嵌套。
- 支持 fake testfunc(param1) 產生 routine,實現假多線程效果。
- 支持 C 函數和類成員函數的綁定。
- 自帶解釋器,JIT 部分支持。
- 支持多返回值。
- 自帶 profile,可獲取腳本各個函數運行時間。
- 支持熱更新。
- 支持 Int64。
- 支持 const 定義。
- 支持包。
- 支持 struct。
- 支持打包 bin 文件或可執行文件。
- 自帶 gdb 風格的命令行調試器,以及 vs 風格的可視化編輯調試ide。
- 可在 C 里直接通過介面調用,開始命令行調試。
項目地址:esrrhs/fakescript - 碼雲 - 開源中國
2. 項目名稱:基於 C++11 的輕量級網路框架
項目簡介:本項目是一個基於 C++11 的輕量級網路框架,基於線程池技術可以實現大並發網路 IO。
網路庫
- tcp/udp 客戶端,介面簡單易用並且是線程安全的,用戶不必關心具體的 socket api 操作。
- tcp 伺服器,使用非常簡單,只要實現具體的 tcp 會話(TcpSession 類)邏輯,使用模板的方式可以快速的構建高性能的伺服器。
- 對套接字多種操作的封裝。
線程庫:
- 使用線程實現的簡單易用的定時器(AsyncTaskThread)。
- 讀寫鎖。
- 信號量的封裝(ios下用條件變數實現)。
- 自旋鎖。
- 線程組。
- 簡單易用的線程池,可以非同步或同步執行任務,支持 functional 和 lambad 表達式。
項目地址:xiahcu/ZLToolKit - 碼雲 - 開源中國
3. 項目名稱:輕量級開源詞典軟體 AlphaDict
項目簡介:它是一個輕量級的開放詞典格式的開源詞典軟體,你可以製作自己的詞典, 也是一個跨平台的軟體支持 linux, unix and windows。
功能特性:
- 支持大量第三方詞典格式:cedict,startdict,dicts,info,IDP,etc。
- 屏幕取詞功能。
- 生詞本。
- 容易製作自己的詞典。
項目地址:kartorz/AlphaDict - 碼雲 - 開源中國
來碼雲 http://Gitee.com
發現更多優質開源項目:最新推薦 - 碼雲 - 開源中國
讓團隊流暢、高效開發:碼雲企業版 - 碼雲 - 開源中國
如果你是初學者,建議以做小的練習入手,先把語言這層的東西弄明白先。至於閱讀源代碼,GitHub上面的項目太多了,想找到一個合適的項目並不是容易的事情。我這邊建議你先從STL庫代碼入手,還有就是是帶著問題去看的話,會比較有效率。例如看看STL中String的處理函數是怎麼做的,如果讓你來寫一份你有沒有可能比庫函數的寫得好。
你這個問題太廣泛了.一個個來吧。1。關於閱讀代碼基本上建議是看 boost, stl, 我還看過Ogre3D2。開源項目的參與 實際上每個你喜歡的開源項目都可以參與。 最基本的技能可能就是 郵件列表訂閱, jira或者bugzzlia的使用, SVN等類似工具的使用。 有了這些,你至少可以知道項目正在進行中的狀態, 有什麼問題自己可能參與。3。關於項目的開始閱讀, 建議看本書吧。 code reading吧, 中文名我記得叫 代碼閱讀。 應該是一個相當不錯的入門書
推薦閱讀:
※一張圖看懂開源許可協議,開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別
※今天就安裝 Linux !
※為什麼國內軟體很少帶有開源許可?
※基於Python的開源預測工具的實踐