著做權申明
- 本做品選擇採用:署名-非商業性使用-相同方式共享 的CC協議。
- 您能夠:複製、發行、展覽、表演、放映、廣播或經過信息網絡傳播本做品。以及創做演繹做品。
- 唯須遵照下列條件:
- 署名 — 您必須按照做者或者許可人指定的方式對做品進行署名。
- 署名方式爲:在轉載或新做品開頭的顯著位置,註明原做者的姓名、來源及其採用的知識共享協議,與本做品在Huihoo Code上的原發地址創建連接
- 非商業性使用 — 您不得將本做品用於商業目的。
- 相同方式共享 — 若是您改變、轉換本做品或者以本做品爲基礎進行創做,您只能採用與本協議相同的許可協議發佈基於本做品的演繹做品。
如何參與這個寫做項目
- 註冊成爲 http://code.huihoo.com 的會員,並在申請說明裏註明參與開源學習的寫做項目。
- 發送郵件到zhuangbiaowei # gmail dot com,介紹你但願參與的章節,若是可以附上過去曾經寫過的blog,則更好。
- 通過幾回來回郵件的簡單交流,我可以理解你的基本思想,則會幫你激活會員賬號,並將你的賬號加入這個項目。
- 共同編輯這個wiki。
- 若是對於這個寫做的內容,有任何意見和建議,也歡迎隨時給我發郵件。
- 在討論區 能夠發起各類話題的討論。
- 在問題區 能夠提交各類issues,監督進度。
- 如何認領某一小節並開始寫做?先寫起來,你們能夠再後續幫助修改,先到先得。
目錄
- 開始以前
- 這份文檔的目標讀者
- 基本條件
- 你須要明確的一些事情
- 開始
- 學習軟件開發的幾條主要途徑
- 爲何藉助開源學習是最有效的
- 選擇一門語言
- 必須初步掌握的基本功
- 關於開發工具
- 關於開發工具的分類(by 李路)
- 各類參考資料
- 選擇一個開源項目
- 到哪裏去尋找開源項目
- 什麼樣的開源項目適合初學者
- 值得推薦給你們的開源項目
- Hello World
- 下載源代碼的N種辦法
- 關於源代碼管理與版本控制
- 尋找早期開源項目的源代碼
- SVN、Git、Mercurial快速介紹
- 基於包管理的方式獲取源代碼
- 讓代碼運行起來
- Ruby版
- PHP版
- Java版
- Python版
- JavaScript版
- C/C++版
- 如何克服可能遇到的困難
- 理解開源項目
- 靜態理解
- 目錄結構
- 包名與文件名
- 類名、函數名與變量名
- 註釋與Readme
- UML圖
- 外部文檔
- 動態理解
- 輸出日誌
- 設置斷點與單步跟蹤
- 拋出異常
- 修改代碼,破壞性嘗試
- 主線與支線
- 尋找入口
- 跟蹤關鍵流程
- 尋找掛接點
- 外圍代碼
- 必須存在的外圍功能
- demo/example
- 單元測試
- 知其因此然
- 修改開源項目
- 嘗試修改代碼
- 提出一個小小的需求
- 若是不能搞定,試試看能不能亂來
- 尋求承認的艱難歷程
- 爲開源項目作貢獻
- 提bug與建議
- 幫助完善文檔
- 提交代碼(功能代碼與測試代碼)
- 周邊代碼(demo/擴展/子項目)
- 外部宣傳
- 其餘各類雜務
- 成爲組織的一員
- 交流圈
- 組織結構
- 開源項目的組織方式*
- 基本禮儀
- 本身發起一個開源項目
- 延伸閱讀
- 貢獻者
- 開源問答
via:http://www.teamhost.org/projects/learn-with-open-source/wiki/Wiki網絡