原文地址:http://game-lab.org/?p=83
代碼的三中類型
- Product:產品代碼,一個可用的產品代碼。比如一些開源軟件,還有當前工作整天面對的代碼。
- lib:庫代碼,對某一種功能封裝的模塊,一個工具庫。
- framework:框架代碼,某種業務常用邏輯的封裝,就形成改業務邏輯的框架庫。比如,遊戲客戶端來說就是遊戲引擎,MFC是window下的一個GUI框架,等等。
三種代碼的編寫與設計,抽象層次依次遞增,對編寫者能力的要求也依次遞增。
代碼發佈的內容
無論是作爲產品、庫、還是框架,代碼發佈的形式一般都有下面的內容:
- Source Code:源碼
- Product/Example/Demo:產品/示例/演示
- Test:對源碼的全面單元測試(現在項目的產品代碼幾乎是沒有的,質量無法保證,只能靠功能測試)
- Docs:分析/設計/代碼/測試 文檔。方便後來者學習。
代碼開發流程
開發的正向流程:
分析 -> 設計 -> 編碼 -> 測試
每一步的成果:
- 分析:分析文檔(需求分析,可行性分析,等)
- 設計:整個架構設計文檔
- 編碼:程序接口文檔 + 源碼
- 測試:測試用例等
最終成果:Source Code
如何學習代碼:
- ★ 知其然。知道是幹什麼用的,有什麼優缺點。對多數代碼的理解都應該在該層次,以後做東西時候,可以權衡使用那個代碼,並且作出合理選擇,然後再進一步學習。這樣,可以瞭解許多新技術。
- ★★ 可以熟練使用,但不知其所以然。對經常使用的代碼,達到這個程度就可以了。
- ★★★ 知其然,並且知其所以然。不但要知道是幹什麼的,會熟練的使用,還要知道來龍去脈,整個代碼的架構設計,都要瞭如指掌。非常感興趣,或着非常重要的代碼,可以進入深入的分析。加深理解。學習代碼的封裝技巧和架構。
根據理解程度的不同,方法肯定不同了:
- 對於有詳細文檔的代碼:
- ★ 粗略瀏覽文檔,特別注意介紹部分的閱讀。不必計較細節。
- ★★ 詳盡的學習文檔,和例子源碼的學習,瞭解如何正確的使用。某些部分文檔沒有描述清楚的,可以參考下源碼,切勿深陷源碼的泥潭,大體瀏覽即可。
- ★★★ 在上面的基礎上,研究源碼。可以正向,根據設計來研究代碼,也可通過源碼逆向出架構和設計。
- 對於沒有文檔或者文檔簡潔的一塌糊塗的代碼:
- ★ 運行幾個可執行的東西,看看這個玩意到底是個什麼。沒有可執行文件,那就只能大體瀏覽下源碼了。看看文件裏面的註釋之類的就可以了。不必深究代碼到底是什麼。
- ★★ 要熟練使用該代碼,必須要讀代碼了,先模仿已有的各種寫法。若有不明白之處,可以問問別人,查查資料,或者跟進實現代碼,看個究竟,也不要糾結於具體實現,只要保持自己在應用層就可以了。
- ★★★ 想要知道一切,只能深入研究代碼了。
注意:上面的方法還是比較籠統的。需要進一步細化。
保存學習成果:筆記/博客/代碼/知識庫
學習的過程中,可能要產生些想法,或新知識,或自己寫的一些試驗代碼。最好都保存下。也可以成博客,與其他人分享學習所得。討論並進步。
2011/07/08 22:01 david++ 上海·松江