日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
優(yōu)秀程序員寫(xiě)可調(diào)試的代碼

所有的程序都需要某種形式的日志記錄建立在它們之上,以便我們可以觀察到它正在做什么。這尤其在程序出錯(cuò)時(shí)就顯得非常重要。一個(gè)優(yōu)秀的程序員和一個(gè)糟糕的程序員之間的一個(gè)不同之處是一個(gè)優(yōu)秀的程序員會(huì)增加日志或其他工具以便在程序失敗時(shí)方便調(diào)試。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、重慶小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了青州免費(fèi)建站歡迎大家使用!

當(dāng)程序如同預(yù)期的一樣工作時(shí),有日志和沒(méi)日志往往沒(méi)什么差異。然而,一旦程序失敗,或你得到一個(gè)錯(cuò)誤的結(jié)果的時(shí)候,你會(huì)立即明白優(yōu)秀的程序員和糟糕的程序員之間的差別。

例1:“讓我們做一個(gè)可調(diào)試的版本”

比如說(shuō),測(cè)試關(guān)于一個(gè)不能正常工作的調(diào)用case過(guò)來(lái)找我。我們查看了日志,然后發(fā)現(xiàn)問(wèn)題貌似出在一個(gè)相鄰的模塊。對(duì)其他模塊的調(diào)用返回值為 空。然后我們?cè)谀莻€(gè)相鄰的模塊中做了日志記錄,重新跑了一遍測(cè)試case,卻沒(méi)有得到任何更多的有用信息。沒(méi)有任何線索表明為什么會(huì)返回空 -難道是我們下錯(cuò)了參數(shù),或者是某個(gè)外部系統(tǒng)導(dǎo)致的失敗,那個(gè)相鄰的模塊中是不是存在一個(gè)錯(cuò)誤,又或者?

當(dāng)我們?nèi)ピ?xún)問(wèn)負(fù)責(zé)這塊代碼的開(kāi)發(fā)人員時(shí),我們得到的回答是:“Oh,我們必須做一個(gè)debug的版本來(lái)看看到底發(fā)生了什么”。失?。哪撤N意義 來(lái)說(shuō),從日志中找到問(wèn)題所在應(yīng)該是可能的,如果問(wèn)題存在一個(gè)運(yùn)行的系統(tǒng)中,添加一個(gè)調(diào)試版本將會(huì)有大量的工作要做。代碼需要包含足夠多的信息在日志,以便你至少可以對(duì)失敗的原因有一些了解。

例2:“讓我看看我們是如何走到這里的” ??

我們的一個(gè)產(chǎn)品在工作時(shí)會(huì)找到一個(gè)短信息傳遞到手機(jī)***的路徑。依據(jù)手機(jī)的當(dāng)前位置和目標(biāo)用戶(hù)所屬的運(yùn)營(yíng)商,有很多可能的路由選擇, 每一個(gè)都有一個(gè)給定的成本和其他特征。除此之外,可以有一些例外,比如說(shuō)禁止一些路線,以促進(jìn)其他路線,通常 會(huì)有成千上萬(wàn)的路由被定義,在每個(gè)case中系統(tǒng)找到***的一個(gè)路由,加上限定條件,并且傳遞消息。

現(xiàn)在,假想某個(gè)SMS信息使用A路線傳遞,但是我們認(rèn)為他應(yīng)該使用B,為什么A會(huì)被選擇呢?如果沒(méi)有任何日志記錄信息,我們只剩下成百個(gè)可能的途徑, 他們的成本,例外,以及一個(gè)復(fù)雜的算法,那么祝你好運(yùn)搞清楚為什么A會(huì)被選擇。

在我們的實(shí)現(xiàn)中,所有可能存在的路由以成本大小的順序羅列在日志中,當(dāng)路由被不同的限制條件排除時(shí),排除掉的路由和原因就會(huì)被列在log中。 隨著算法的輸入,以及采取的步驟信信息列在log中,就會(huì)很容易的看出為什么某個(gè)路徑會(huì)被選取。

為什么不呢?

所以,為什么不是所有的程序員都會(huì)寫(xiě)可調(diào)式的代碼呢?我能想到三個(gè)原因:
1.你必須足夠謙虛的意識(shí)到你的代碼會(huì)有不按預(yù)期工作的時(shí)候。我相信很多程序員會(huì)對(duì)此比較難過(guò)。
2.如果你徹底地測(cè)試了你的代碼,你應(yīng)該確保它會(huì)在很多不同場(chǎng)合工作或失敗。對(duì)于每個(gè)方案,很自然地加入日志記錄,如果你沒(méi)有測(cè)試 那些情況,你不太可能會(huì)在那里添加記錄。
3.很多程序員往往不會(huì)在產(chǎn)品系統(tǒng)中修復(fù)他們自己的代碼。如果在在線系統(tǒng)中有一個(gè)問(wèn)題,但log并沒(méi)有反饋任何信息給你為什么這里會(huì)有一個(gè)問(wèn)題, 你會(huì)有一個(gè)很強(qiáng)烈的動(dòng)機(jī)去增加log,以便下次遇到相同的情況時(shí)幫助到你。

你的代碼可調(diào)試嗎?

當(dāng)然會(huì)有一些情況,對(duì)于程序?yàn)槭裁磿?huì)失敗好的日志信息也不能給你一個(gè)確切的信息。你可能還是要做出那樣的調(diào)試版本, 但是你經(jīng)常做記錄至少還是會(huì)提供給你一些隱藏信息關(guān)于問(wèn)題的可能性。

所以,你準(zhǔn)備的怎么樣了?當(dāng)你的程序失敗時(shí),log會(huì)告訴你哪兒出錯(cuò)了嗎?

原文鏈接: henrikwarne   翻譯: 伯樂(lè)在線 - hahakaka

譯文鏈接: http://blog.jobbole.com/61732/


網(wǎng)頁(yè)題目:優(yōu)秀程序員寫(xiě)可調(diào)試的代碼
分享路徑:http://www.5511xx.com/article/dhjhijd.html