日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

避坑:不要在調(diào)試版本中的修改程序邏輯

來源: 責(zé)編: 時(shí)間:2023-10-13 14:37:35 262觀看
導(dǎo)讀作為一名開發(fā)者,我想,你最不希望發(fā)生的事情之一是:當(dāng)你調(diào)試一個(gè)Bug的時(shí)候,Bug就消失了,但直接運(yùn)行的時(shí)候,Bug又出現(xiàn)了。通過 #ifdef DEBUG 技法,可以將額外的調(diào)試代碼放置到程序中。畢竟,這些調(diào)試代碼僅會(huì)在程序的調(diào)試版本中

作為一名開發(fā)者,我想,你最不希望發(fā)生的事情之一是:當(dāng)你調(diào)試一個(gè)Bug的時(shí)候,Bug就消失了,但直接運(yùn)行的時(shí)候,Bug又出現(xiàn)了。9Os28資訊網(wǎng)——每日最新資訊28at.com

通過 #ifdef DEBUG 技法,可以將額外的調(diào)試代碼放置到程序中。畢竟,這些調(diào)試代碼僅會(huì)在程序的調(diào)試版本中才會(huì)生效。但是,一定要注意的是,這些調(diào)試代碼不應(yīng)該修改程序的執(zhí)行邏輯。9Os28資訊網(wǎng)——每日最新資訊28at.com

你可以在調(diào)試代碼中執(zhí)行參數(shù)驗(yàn)證,執(zhí)行斷言,追蹤資源的使用,這可能會(huì)降低程序的性能并消耗更多的計(jì)算資源,這些都是可以接受的,唯一需要注意的一條是:不要在調(diào)試代碼中修改程序的流程。9Os28資訊網(wǎng)——每日最新資訊28at.com

我們來看看下面的例子。9Os28資訊網(wǎng)——每日最新資訊28at.com

9Os28資訊網(wǎng)——每日最新資訊28at.com

上面的代碼是錯(cuò)誤的,你是否已經(jīng)看出來了?
調(diào)試版本的行為與發(fā)行版本根本不同。如果有人使用 NULL 為 p 參數(shù)調(diào)用此函數(shù),則程序的發(fā)行版本將崩潰,但調(diào)試版本將捕獲錯(cuò)誤并使調(diào)用失敗。
9Os28資訊網(wǎng)——每日最新資訊28at.com

不要在調(diào)試版本中修改函數(shù)的語義。如果發(fā)行版本崩潰,則調(diào)試版本也必須以相同的方式崩潰。當(dāng)然,你可以在崩潰之前記錄錯(cuò)誤日志信息,但你仍然需要它”崩潰”,和發(fā)行版本行為保持一致。9Os28資訊網(wǎng)——每日最新資訊28at.com

下面是一個(gè)展現(xiàn)了類似問題的 C# 代碼的例子。9Os28資訊網(wǎng)——每日最新資訊28at.com

9Os28資訊網(wǎng)——每日最新資訊28at.com

在上面的例子中,調(diào)試版本記錄并吞掉了異常,而發(fā)行版本直接讓異常跳出了此函數(shù)。9Os28資訊網(wǎng)——每日最新資訊28at.com

如果你恰好也寫了這樣的代碼,發(fā)行版本和調(diào)試版本的行為方式根本不同,你最終會(huì)陷入這種情況:發(fā)行版本有一些問題,但調(diào)試版本工作正常。9Os28資訊網(wǎng)——每日最新資訊28at.com

你的客戶無法弄清楚有什么區(qū)別,因此他們切換到生產(chǎn)服務(wù)器上的調(diào)試版本。它的運(yùn)行速度是原來的兩倍,內(nèi)存消耗的內(nèi)存是原來的三倍,需要大量的資源才能擴(kuò)展到以前的服務(wù)級(jí)別。但這是他們能做的最好的事情,因?yàn)閱栴}不會(huì)出現(xiàn)在調(diào)試版本上(因此無法在那里調(diào)試)。9Os28資訊網(wǎng)——每日最新資訊28at.com

我看到過關(guān)于軟件陷入這種困境的報(bào)道,這對(duì)開發(fā)人員的影響非常糟糕。9Os28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

今天的論點(diǎn)也是我一直所忽視的:調(diào)試的代碼,就干調(diào)試的活,不要做其他事情,更不要修改程序執(zhí)行流程。
第二個(gè):調(diào)試版本和發(fā)行版本可能在執(zhí)行速度,占用資源存在差異,但兩者的行為必須完全一致。9Os28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13573-0.html避坑:不要在調(diào)試版本中的修改程序邏輯

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 數(shù)據(jù)分析,如何助力運(yùn)營?

下一篇: SQL和Python,哪個(gè)更容易自學(xué)?哪個(gè)更適合數(shù)據(jù)工作的編程新手?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 5月iOS設(shè)備好評(píng)榜:iPhone 14僅排第43?

    來到新的一月,安兔兔的各個(gè)榜單又重新匯總了數(shù)據(jù),像安卓陣營的榜單都有著比較大的變動(dòng),不過iOS由于設(shè)備的更新?lián)Q代并沒有那么快,所以相對(duì)來說變化并不大,特別是iOS好評(píng)榜,老款設(shè)
  • 把LangChain跑起來的三個(gè)方法

    使用LangChain開發(fā)LLM應(yīng)用時(shí),需要機(jī)器進(jìn)行GLM部署,好多同學(xué)第一步就被勸退了,那么如何繞過這個(gè)步驟先學(xué)習(xí)LLM模型的應(yīng)用,對(duì)Langchain進(jìn)行快速上手?本片講解3個(gè)把LangChain跑起來
  • 服務(wù)存儲(chǔ)設(shè)計(jì)模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數(shù)據(jù)從主存儲(chǔ)加載到KV緩存中,加速后續(xù)的訪問。在存在重復(fù)度的場(chǎng)景,Cache-Aside可以提升服務(wù)性能,降低底層存儲(chǔ)的壓力,缺點(diǎn)是緩存和底
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問題之一。隨著之家用戶體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿足用
  • 自律,給不了Keep自由!

    來源 | 互聯(lián)網(wǎng)品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時(shí)不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺(tái)Keep正式登陸港交所,努力
  • 華為Mate 60保護(hù)殼曝光:碩大后置相機(jī)模組 凸起程度有驚喜

    這段時(shí)間以來,關(guān)于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級(jí)旗艦都已悉數(shù)亮相,而下半年即將推出的頂級(jí)旗艦已經(jīng)成為了數(shù)碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長(zhǎng)22%

    2023年6月30日,全球行業(yè)分析機(jī)構(gòu)Counterpoint Research發(fā)布的《中國智能手機(jī)高端市場(chǎng)白皮書》顯示,中國智能手機(jī)品牌正在尋求高質(zhì)量發(fā)展,中國高端智能
  • AI藝術(shù)欣賞體驗(yàn)會(huì)在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯(cuò)的鏡像世界,虛實(shí)幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場(chǎng)景都出現(xiàn)在2019世界人工智能大會(huì)的舞臺(tái)上。8月29日至31日,“AI藝術(shù)欣賞體驗(yàn)會(huì)”在上海
Top 主站蜘蛛池模板: 依兰县| 武夷山市| 蚌埠市| 梁平县| 九龙坡区| 大方县| 仙居县| 牙克石市| 宣恩县| 唐山市| 富顺县| 三河市| 图们市| 镇巴县| 随州市| 萨迦县| 阿鲁科尔沁旗| 眉山市| 左贡县| 牙克石市| 阿尔山市| 法库县| 华池县| 泾阳县| 沙湾县| 正定县| 深水埗区| 达日县| 安平县| 化隆| 原阳县| 卓资县| 吐鲁番市| 茂名市| 循化| 自贡市| 唐海县| 全椒县| 迁安市| 南宫市| 绵阳市|