《藉助開源項目,學習軟件開發》

著做權申明

  • 本做品選擇採用:署名-非商業性使用-相同方式共享 的CC協議。
  • 您能夠:複製、發行、展覽、表演、放映、廣播或經過信息網絡傳播本做品。以及創做演繹做品。
  • 唯須遵照下列條件:
    • 署名 — 您必須按照做者或者許可人指定的方式對做品進行署名。
      • 署名方式爲:在轉載或新做品開頭的顯著位置,註明原做者的姓名、來源及其採用的知識共享協議,與本做品在Huihoo Code上的原發地址創建連接
    • 非商業性使用 — 您不得將本做品用於商業目的。
    • 相同方式共享 — 若是您改變、轉換本做品或者以本做品爲基礎進行創做,您只能採用與本協議相同的許可協議發佈基於本做品的演繹做品。

如何參與這個寫做項目

  1. 註冊成爲 http://code.huihoo.com 的會員,並在申請說明裏註明參與開源學習的寫做項目。
  2. 發送郵件到zhuangbiaowei # gmail dot com,介紹你但願參與的章節,若是可以附上過去曾經寫過的blog,則更好。
  3. 通過幾回來回郵件的簡單交流,我可以理解你的基本思想,則會幫你激活會員賬號,並將你的賬號加入這個項目。
  4. 共同編輯這個wiki。
  5. 若是對於這個寫做的內容,有任何意見和建議,也歡迎隨時給我發郵件。
  6. 討論區 能夠發起各類話題的討論。
  7. 問題區 能夠提交各類issues,監督進度。
  8. 如何認領某一小節並開始寫做?先寫起來,你們能夠再後續幫助修改,先到先得。

目錄

  1. 開始以前
    1. 這份文檔的目標讀者
    2. 基本條件
    3. 你須要明確的一些事情
  2. 開始
    1. 學習軟件開發的幾條主要途徑
    2. 爲何藉助開源學習是最有效的
    3. 選擇一門語言
    4. 必須初步掌握的基本功
    5. 關於開發工具
      1. 關於開發工具的分類(by 李路)
      2. 各類參考資料
  3. 選擇一個開源項目
    1. 到哪裏去尋找開源項目
    2. 什麼樣的開源項目適合初學者
    3. 值得推薦給你們的開源項目
  4. Hello World
    1. 下載源代碼的N種辦法
      1. 關於源代碼管理與版本控制
      2. 尋找早期開源項目的源代碼
      3. SVN、Git、Mercurial快速介紹
      4. 基於包管理的方式獲取源代碼
    2. 讓代碼運行起來
      1. Ruby版
      2. PHP版
      3. Java版
      4. Python版
      5. JavaScript版
      6. C/C++版
    3. 如何克服可能遇到的困難
  5. 理解開源項目
    1. 靜態理解
      1. 目錄結構
      2. 包名與文件名
      3. 類名、函數名與變量名
      4. 註釋與Readme
      5. UML圖
      6. 外部文檔
    2. 動態理解
      1. 輸出日誌
      2. 設置斷點與單步跟蹤
      3. 拋出異常
      4. 修改代碼,破壞性嘗試
    3. 主線與支線
      1. 尋找入口
      2. 跟蹤關鍵流程
      3. 尋找掛接點
    4. 外圍代碼
      1. 必須存在的外圍功能
      2. demo/example
      3. 單元測試
    5. 知其因此然
  6. 修改開源項目
    1. 嘗試修改代碼
    2. 提出一個小小的需求
    3. 若是不能搞定,試試看能不能亂來
    4. 尋求承認的艱難歷程
  7. 爲開源項目作貢獻
    1. 提bug與建議
    2. 幫助完善文檔
    3. 提交代碼(功能代碼與測試代碼)
    4. 周邊代碼(demo/擴展/子項目)
    5. 外部宣傳
    6. 其餘各類雜務
  8. 成爲組織的一員
    1. 交流圈
    2. 組織結構
    3. 開源項目的組織方式*
    4. 基本禮儀
  9. 本身發起一個開源項目
  10. 延伸閱讀
  11. 貢獻者
  12. 開源問答

 

via:http://www.teamhost.org/projects/learn-with-open-source/wiki/Wiki網絡

相關文章
相關標籤/搜索