花花小君 作品

第19章 經驗很重要

    葉子:關於更簡單的閱讀代碼的方法我是沒有的,不過如果只是單單為了特殊情況的去讀代碼,那我還是有一定的技巧的。

    曹志文看著大神發來的消息,也是趕緊再一次的回覆。

    天涯海角:葉子大神,你說,不論有用沒有用,這懸賞都會給你,畢竟我朋友問這個問題也的確是有些強人所難了。

    葉新晨看著曹志文發來的消息,還是鬆了口氣,畢竟如果這個懸賞完成不了的話,那他的接懸賞任務的勝率也就是隻有百分之五十了,這是葉新晨也不能夠忍受的。

    而且……

    他應該先問是什麼問題,而不是先接這個問題,差點就讓他沒有一個完美的解決辦法。

    畢竟曹志文的朋友問的問題的確是有些別出心裁。

    葉子:行,那我先跟你說一下簡單的東西,讀代碼,肯定是讀寫的好的代碼,而這些代碼一般是遵循一些原則。而這些原則,很難從最後的代碼中反推出來。這些原則一般都是 declarative knowledge。而我們看到的代碼大多是 imperative code,即使是 functional program 或者 declarative language 的 code,一般也是用低級的抽象來描述高級的原則。

    葉子:舉一個類比。目前體育比賽中很多規則的修改,都是借鑑以往比賽中一些舊規則導致比賽比較沉悶,或者被運動員鑽空子的經驗教訓,但是單單去看這些規則,你無法反推出來它們是為了避免什麼情況。

    葉子:所以所謂的讀懂寫的比較好的代碼,一般是從代碼以外的途徑瞭解作者的意圖,然後再掌握作者貫徹這些意圖的一些基本習慣。

    葉子:就像你之前的懸賞一樣,如果沒有你的意圖和主觀的對我說問題的所在,你讓我去看去讀你的代碼也起碼得消耗很長時間。所以我的額外技巧也就是最好能夠掌握作者的意圖。

    曹志文看到這裡,也是有些茅塞頓開的感覺,這個技巧絕對非常實用的,因為他們也不是經常看代碼的人,閱讀代碼也只是有時候檢查,或者是和朋友幾個看看寫的代碼,又或者是也接點懸賞練習一下。