作為初學者如何讓選擇閱讀代碼以及參與一些開源?

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,

我還看過Ogre3D

2。開源項目的參與

實際上每個你喜歡的開源項目都可以參與。

最基本的技能可能就是 郵件列表訂閱, jira或者bugzzlia的使用, SVN等類似工具的使用。

有了這些,你至少可以知道項目正在進行中的狀態, 有什麼問題自己可能參與。

3。關於項目的開始閱讀,

建議看本書吧。 code reading吧, 中文名我記得叫 代碼閱讀。

應該是一個相當不錯的入門書


推薦閱讀:

一張圖看懂開源許可協議,開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別
今天就安裝 Linux !
為什麼國內軟體很少帶有開源許可?
基於Python的開源預測工具的實踐

TAG:開源 | 代碼閱讀 |