在大學(xué)實(shí)習(xí)的時(shí)候,用到了 Python 里頭的一個(gè)小模塊 ulrilb2,是一個(gè)簡單的爬蟲,這個(gè)模塊出錯(cuò)的時(shí)候,會拋出各種異常,突然想知道為什么會拋出這些異常,而且 Python 自帶的模塊都是開源的,能拿到一手的源碼,于是把它讀完了。這也是第一次知道最簡單的爬蟲是怎么樣的。
接著,實(shí)習(xí)項(xiàng)目中用到了 Python 的 Web 框架 Django,非常強(qiáng)大。Django book 看完后,就能寫出一個(gè)簡單的網(wǎng)頁。Django 是典型的 MVC 框架(?),那時(shí)對 Web 的知識很少,是知道有 HTTP 協(xié)議這些東西,但 Django 里每個(gè)模塊之間是如何協(xié)同工作的呢,MVC 又是怎么體現(xiàn)的?這些對當(dāng)時(shí)的我來說都非常的感興趣。當(dāng) Django 收到一個(gè) HTTP 請求,到瀏覽器展示一個(gè)頁面,Django 里頭到底發(fā)生了什么。帶著這些簡單的問題,開始翻閱 Django 的源代碼。之后的 Libevent, Memcache 和 Redis 都一樣。
閱讀代碼是很好的鍛煉耐心和毅力的機(jī)會??磩e人代碼的過程,即針對一個(gè)疑問,收集線索,有點(diǎn)連成線的過程,所以中間肯定有一段時(shí)間非常難熬與枯燥;而當(dāng)讀完所有的代碼,所有的線索都連成一條線,就能體會柳暗花明了。
一些優(yōu)秀的開源項(xiàng)目里有些很值得新手學(xué)習(xí)的地方,譬如框架,設(shè)計(jì)模式等。但并不是說閱讀了大量的代碼就能寫出很牛的代碼,寫代碼需要對當(dāng)前需求的把握和清晰的邏輯思維,這是我們在實(shí)踐中可以慢慢培養(yǎng)的。千萬不要讀得太多,而寫得太少。