• <input id="2bncg"><div id="2bncg"></div></input>
    <video id="2bncg"><dfn id="2bncg"></dfn></video>
  • <video id="2bncg"></video>
        1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

          <b id="2bncg"><address id="2bncg"></address></b>

          <source id="2bncg"><address id="2bncg"></address></source>
          <video id="2bncg"></video>
          筆趣閣 > 都市小說 > 這個吞金獸不好養 > 第十九章 經驗很重要

          第十九章 經驗很重要(1 / 2)

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

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

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

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

          而且……

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

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

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

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

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

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

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

          他們真的不會去問寫出代碼的這個人是基于什么意圖去寫的,如果問一下,那他們去閱讀這個代碼再加上閱讀代碼的模式,絕對可以起到事半功倍的效果。

          而且曹志文也覺得自己寫的時候也發現很多情況下邏輯被隱含了,特別是if-else這樣的,為什么有些情況可以合并,有些可以忽略,如果不注釋,光從代碼本身是難以看出的,所以如果能夠從自己的意圖去看,那么還是能夠發現缺陷的。

          天涯海角:葉子大神不愧是葉子大神,這種技巧很實用。

          的確很實用,因為這種極少如果沒有大量的經驗是不可能想出來這種技巧的。

          葉子:另外有一種很出名的debug技術,就是用靜態分析的方法找到代碼中的impliedinvariant,然后搜索有什么地方違反了這些原則。這個技術和我的技巧也是有一定的相似處,如果你還要研究怎么閱讀代碼,多去看看debug技術。

          曹志文只覺得受益匪淺,大神不愧是大神。

          天涯海角:好的,那我把懸賞結了。

          很快,葉新晨也是再一次的收到了銀行卡到賬的消息,兩萬塊錢也是又一次的到手!

          最新小說: 我家側妃是專寵 斬斷情絲后,全宗門痛不欲生 官路:從掃黑除惡開始 權力巔峰:我老婆是京圈大小姐 修仙萬年歸來 假少爺被趕回農村帶妻兒逆襲人生 重生之東北小城風云錄 重生1977,從斷親開始 靈氣復蘇:開局獲得弒神之力 開局一首天下,塌房歌手引爆樂壇
        2. <input id="2bncg"><div id="2bncg"></div></input>
          <video id="2bncg"><dfn id="2bncg"></dfn></video>
        3. <video id="2bncg"></video>
              1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

                <b id="2bncg"><address id="2bncg"></address></b>

                <source id="2bncg"><address id="2bncg"></address></source>
                <video id="2bncg"></video>
                最近免费观看高清韩国日本大全