建立一個實質性的項目
- 從不同的視角,端點功能觸發, 建構具有獨特性且能展示開發人員創造力的應用
- web後端架構 -了解如何建構架構
- 利用主要使用的程式設計語言建構一個程式包,并在多個項目中使用
- 圍繞自己超級感興趣的事物建構一個更大的項目
- 建構一個完全超乎你目前了解範圍的事物
向開源做貢獻
- 建構自己的開源軟體包,應用程式
- 向現有的代碼庫貢獻代碼
開源軟體包
- 建構自己的開源軟體包,要確定不是來自某個教程,是真正想釋出給别人的東西
記錄創作過程
- 記錄建立的原因以及思考過程
- 從新的角度思考問題并獲得新的見解
别人的代碼庫
- 檢視GitHub上流行軟體包和插件的代碼庫,很可能這些軟體包中含有很多未解決的問題
- 首先仔細閱讀代碼庫制定的代碼貢獻指南,即README.md檔案,然後開始解決問題,進一步添加一些實用的功能:
- 證明自己能夠遵循程式設計準則
- 盡快成為開源社群的一員
- 熟練掌握分叉,拉取請求和送出
- 了解社群維護的軟體包,有機會采用一些更好的程式設計實踐
閱讀進階代碼
- 努力了解代碼,并和自己的代碼進行比較,設法尋找可以改善自己的實作的模式,同時記錄下所有能夠提高自己工作流程的技術細節
- 可以從社群尋找開源項目,閱讀并了解代碼
- 在閱讀其他開發人員的代碼時,盡量将遇到的問題向開發者提出來,如果有人能夠回答你的問題,就更好了,你需要讓他們知道你在努力了解進階代碼,請求他們回答你的問題
應該閱讀什麼代碼
閱讀你真正用得着的代碼
- 閱讀那些你已經在使用的插件或者庫檔案源碼
- 為閱讀的代碼添加注釋,文檔
閱讀印象深刻的代碼
- 遇到的印象深刻的項目
- 了解項目所基于的開源技術
閱讀你尊敬的大師寫出的代碼
- 關注那些優秀的程式員
閱讀給你帶來靈感的代碼
- 在初期選擇一個小項目進行閱讀,這樣可以關注細節,學習到更多知識
如何閱讀源碼
先看大架構
- 在宏觀層面上熟悉代碼是如何實作的(README.md), 項目的網站,教程,文檔
- 大緻浏覽項目的結構
- 注意項目的檔案結構
- 目标:
- 熟悉源代碼
- 找出哪些檔案包含,請求,加載其他檔案
- 大部分代碼在哪裡
- 命名空間以及相關性質
記錄閱讀心得
- 當開始了解程式流時,為代碼添加注釋,記錄你的假設和結論
- 随着了解的進展,删除無關緊要的注釋
邊閱讀邊測試
- 當閱讀别人代碼時,測試是最佳了解代碼程式流的方式:記錄了代碼應該完成的任務
- 在閱讀時,試着讓測試套件成功運作
- 這樣確定開發環境配置恰當,在進行更改優化時更加得心應手
親自動手做
- 為代碼的實作添加或者更改邏輯但不要破壞代碼
- 嘗試給代碼中添加功能
- 設定項目範圍的日志記錄
了解更多的程式設計設計模式和原理
- 仔細閱讀每個模型的定義
- 搜尋學習每個模型的示例
- 快速閱讀設計模式和原理