寫代碼,如何變得更牛逼
沒有哪個文壇巨匠天生下來就能寫出巨著來,他們都是通過閱讀大量作品并參考借鑒最后形成自己獨特的風格,其實寫程序也是一樣。
現在很多優秀的軟件庫都是開源的,這給了我們可以零距離向大牛學習的機會,閱讀源代碼給我們帶來的好處也是非常多的。
1、學習代碼風格
優秀的開源軟件都來自于經驗非常豐富的老司機程序員之手,往往他們寫的代碼更規范、無論是從可讀性還是性能上經過仔細斟酌,不斷優化結果。比如著名的HTTP請求庫Requests就是一份不錯的源碼學習典范,因為里面有教科書似的 Pythonic 代碼。
2、理解作者思路
作者實現某個功能,通常是經過多次重構不斷改進得以實現最優的解決方案,那么我們可以思考作者為什么要這么做,比如Cpython里把小整數緩存到內存中,提高系統性能,你不去看源代碼是不知道的,因為書上很少會講到這些。再比如 Cpython中的垃圾算法為什么要使用別人都不用的引用計數法呢?因為權衡利弊之后,引用計數是最簡單的一種垃圾收集算法,再配合其他算法也能達到很好的效果。
3、提升編程水平
毫無疑問,通過閱讀源代碼,對自身的成長是非常有幫助的,站在巨人的肩膀上,才看得比別人更遠。閱讀優秀的源代碼是提高編程水平的方式之一
閱讀源代碼的誤區
初學者閱讀源代碼容易陷入一種誤區,認為具備閱讀源代碼能力才牛逼,于是自己也扎進代碼深淵,一開始欣喜若狂,后來開始迷失自我,有始無終,最后一無所獲,還打擊了自信心。
主要原因是,現在的項目動不動就是幾萬行的代碼,如果一行行的讀下去要不了幾分鐘就放棄了,其次,純粹的”讀”是沒用的,還需要有思考。那么如何正確地閱讀源代碼?
閱讀源代碼的一些技巧
高效閱讀源代碼,可以從以下幾個方面入手
1、讀文檔
任何一個優秀的開源項目標配有完善的文檔,RTFM(Read The Fucking Manual)是了解開源項目最好的方式之一,同時也為后面閱讀源代碼提供了基礎。
2、找程序入口
找到了文檔之后,就根據文檔找到程序的入口,從最簡單的實例下手
3、跑單元測試
要想知道API怎么使用,除了可以查看文檔之外,另外一個武器就是跑單元測試,單元測試對每一個方法都做了邊界測試,通過閱讀測試代碼也能知道怎么樣去使用這些方法。
4、找最早期版本
往往最開始的版本代碼是最簡潔的,讀起來要輕松很多
5、多搜索一下網絡上看看是否有前人做些相關的總結。這也是很好的參考。