你這個有問題,你那個...…
無限重復bug,無限改。
好煩,或許,可能,大概,我想不出來。
你有什么好建議?加個東西很簡單的!結果搞了一天。
所以程序員,那些碼農每天說來說去都是以上這些話,基本上都能把人給逼瘋了。
接過這個懸賞之后,葉新晨就是認真的看了起來,這個文件包還是挺不小的,而且這些代碼看的令人非常的頭疼。
閱讀代碼有兩種模式:top-down和bottom-up。
Top-down模式,就是先設定一個usecase,比如說打開一個文件,然后靜態跟著代碼看,或者用debugger跟著看。
這樣子每次出現函數調用的時候,把函數的執行層次紀錄下來。
大致如下:
func1()
func2()
func()
func3()
這種圖表很隨意,是可以根據自己的需要增加信息。
比如有的人有時會把重要的實際參數一直標下來,這樣閱讀深層次代碼不用再回頭查形式參數到底指什么。
這個基本作用是防止在閱讀深層次代碼時忘記總體執行層次。
而Top-down模式進行到一定層次,往往會發現雖然圖畫了出來,但還是無法了解程序再干什么。這時需要轉入bottom-up模式,一直深入到最底層,給能了解作用的底層函數一個一個的寫文檔。
當然這時的文檔是完全底層的觀點。
然后就是不斷在兩個模式之間轉換,不斷的細化兩種模式的理解。
雖然看這樣子看代碼會簡單很多,但是還是也會一直看的人眼睛眼花繚亂。
而另一方面,在葉新晨接了這個懸賞不久,發布這個懸賞的人就給他發了一些消息。
天涯海角:你好,有些地方我要跟你說一下,因為我怕你看代碼看的時間會很久。主要的問題就是我改了一個功能,結果總是跟預期對不上,查了代碼C++的,沒發現邏輯問題,然后花了幾天,終于發現了關鍵點:有一個變量,莫名其妙在不經意間值就會變了。
天涯海角:然后我自然就開始懷疑是多線程沒有保護的問題,但研究后不像,發現這個變量值跳變也不是隨雞的,總在一行特定的位置后,值就會變了,這一行特別簡單,就是個簡單的加法,然后跟這個加法不直接相干的另一個變量的的值就會發生變化。
天涯海角:所以就這個給我直接卡住了,我問了不少的程序員大咖都沒有給我整明白,所以希望葉子兄能夠幫我找出來哪個環節出現問題了。
葉子兄自然就是葉新晨的黑土平臺的網名,畢竟黑土平臺也不會讓你用真名,身份證信息平臺可以知道,但是沒有必要讓平臺的用戶知道,畢竟萬一有人有仇,將身份信息泄露出去,那也不是一件美好的事情。
葉新晨看著這個天涯海角發來的消息,腦海里也是自動浮現出了一個經驗知識。
PS:這些都是簡單的程序問題,不是復雜的程序問題,所以以后我要是寫到有夸張的地步的問題,實際上也都是簡單的程序問題,所以如果有程序員大佬看到莫怪。因為我不會寫那些復雜的……