值得閱讀的源代碼
發布時間:2017/6/28 14:57:36 來源: 縱橫數據
讀代碼可能有兩種原因,一是對這個東西某處不滿意想改,二是想學習其中的設計實現思路,前者動力更直接一些,后者則不好選,因為純粹泛泛地看跟你實際環境關系不大的代碼,其實不太容易學到東西。而且現代軟件設計其實也充滿了許多妥協和折衷,大家最常用的軟件,往往不是代碼最干凈的,而是做了許多妥協折衷的。比如最明顯的有 Linux Kernel,有很多風格不一致的代碼 (但這并不減弱它的學習價值);mplayer 的代碼是我見過的最丑陋但又非常實用的,在這樣的代碼基礎上為啥能夠活躍發展到今天,也很值得研究;vim 代碼打滿了各種 #ifdef,你看了也會很驚訝為啥一個人能維護如此錯綜復雜的代碼這么多年。我們有句老話,叫做水至清則無魚,軟件設計其實很多時候是在受限的條件下解決問題的本事。Beautiful Code [1] 介紹了很多精彩的代碼,Beautiful Architecture [2] 介紹了很多值得學習的架構。
下面還可以補充一些:
git
FreeType
fontconfig
cairo
NetBSD 的用戶空間代碼
DTrace
WebKit
Mac OS X 的 launchd
從擴展思路的角度來說,一個程序員應該好好讀過這樣一些代碼:
一個操作系統內核
一個編譯器
一個解釋器
一個數據庫
一個 Web 服務器
一個 Web 瀏覽器
一個編輯器
因為這些都是幾十年來被頻繁地反復實現的代碼,無數天才的程序員在這些領域發揮智慧,所以在它們各自領域“state of the art”的代碼,可想而知質量是很高的。
下面還可以補充一些:
git
FreeType
fontconfig
cairo
NetBSD 的用戶空間代碼
DTrace
WebKit
Mac OS X 的 launchd
從擴展思路的角度來說,一個程序員應該好好讀過這樣一些代碼:
一個操作系統內核
一個編譯器
一個解釋器
一個數據庫
一個 Web 服務器
一個 Web 瀏覽器
一個編輯器
因為這些都是幾十年來被頻繁地反復實現的代碼,無數天才的程序員在這些領域發揮智慧,所以在它們各自領域“state of the art”的代碼,可想而知質量是很高的。
本文來源:
//66moju.cn/article/1838.html
[復制鏈接]
鏈接已復制
下一篇:SEO如何寫技術性文章