成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

避坑:不要在調試版本中的修改程序邏輯

開發 前端
通過 #ifdef DEBUG 技法,可以將額外的調試代碼放置到程序中。畢竟,這些調試代碼僅會在程序的調試版本中才會生效。但是,一定要注意的是,這些調試代碼不應該修改程序的執行邏輯。

作為一名開發者,我想,你最不希望發生的事情之一是:當你調試一個Bug的時候,Bug就消失了,但直接運行的時候,Bug又出現了。

通過 #ifdef DEBUG 技法,可以將額外的調試代碼放置到程序中。畢竟,這些調試代碼僅會在程序的調試版本中才會生效。但是,一定要注意的是,這些調試代碼不應該修改程序的執行邏輯。

你可以在調試代碼中執行參數驗證,執行斷言,追蹤資源的使用,這可能會降低程序的性能并消耗更多的計算資源,這些都是可以接受的,唯一需要注意的一條是:不要在調試代碼中修改程序的流程。

我們來看看下面的例子。

上面的代碼是錯誤的,你是否已經看出來了?
調試版本的行為與發行版本根本不同。如果有人使用 NULL 為 p 參數調用此函數,則程序的發行版本將崩潰,但調試版本將捕獲錯誤并使調用失敗。

不要在調試版本中修改函數的語義。如果發行版本崩潰,則調試版本也必須以相同的方式崩潰。當然,你可以在崩潰之前記錄錯誤日志信息,但你仍然需要它”崩潰”,和發行版本行為保持一致。

下面是一個展現了類似問題的 C# 代碼的例子。

在上面的例子中,調試版本記錄并吞掉了異常,而發行版本直接讓異常跳出了此函數。

如果你恰好也寫了這樣的代碼,發行版本和調試版本的行為方式根本不同,你最終會陷入這種情況:發行版本有一些問題,但調試版本工作正常。

你的客戶無法弄清楚有什么區別,因此他們切換到生產服務器上的調試版本。它的運行速度是原來的兩倍,內存消耗的內存是原來的三倍,需要大量的資源才能擴展到以前的服務級別。但這是他們能做的最好的事情,因為問題不會出現在調試版本上(因此無法在那里調試)。

我看到過關于軟件陷入這種困境的報道,這對開發人員的影響非常糟糕。

總結

今天的論點也是我一直所忽視的:調試的代碼,就干調試的活,不要做其他事情,更不要修改程序執行流程。
第二個:調試版本和發行版本可能在執行速度,占用資源存在差異,但兩者的行為必須完全一致。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2009-10-13 15:07:43

2021-05-07 21:53:44

Python 程序pyinstaller

2021-05-08 12:30:03

Pythonexe代碼

2015-10-10 10:36:00

warning category

2011-03-31 10:18:42

SQL Server數據體系應用程序邏輯

2018-03-26 11:14:13

程序猿bug代碼

2024-07-05 08:37:33

2020-06-19 11:20:17

開發避坑支付寶

2024-03-28 12:51:00

Spring異步多線程

2024-09-05 08:39:21

2018-01-20 20:46:33

2024-04-24 13:45:00

2024-04-03 12:30:00

C++開發

2023-04-12 08:18:40

ChatGLM避坑微調模型

2021-02-26 00:46:11

CIO數據決策數字化轉型

2020-06-12 11:03:22

Python開發工具

2020-12-16 10:00:59

Serverless數字化云原生

2022-09-26 09:53:18

開發緩存

2015-04-28 10:35:01

設計

2022-03-04 18:11:16

信服云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久艹网站 | 欧美综合国产精品久久丁香 | 久久久影院 | 香蕉一区 | 国产精品久久久久久久久久久久 | 一级片av| 日韩欧美一区二区三区免费观看 | 美美女高清毛片视频免费观看 | 成人亚洲视频 | 亚洲欧美在线视频 | 日韩欧美国产精品一区二区 | 日韩欧美天堂 | 熟女毛片 | 日本在线小视频 | 久久久久久久久国产成人免费 | 国精品一区 | 久久不卡日韩美女 | 在线观看亚 | 国产乱码久久久久久 | 亚州中文字幕 | 欧洲亚洲一区 | 99亚洲精品 | 北条麻妃99精品青青久久主播 | 久久一级 | 久久大 | 亚洲国产成人精品在线 | 久久青 | 夜夜爽99久久国产综合精品女不卡 | 精品久久久久久亚洲国产800 | 99爱国产| 亚洲一区中文字幕 | 久久精品亚洲精品国产欧美 | 成人日韩精品 | 亚洲视频在线看 | 日韩精品在线网站 | www日韩高清 | 成人免费在线电影 | 网站一区二区三区 | 黄色亚洲 | 一级在线观看 | 欧美精品在欧美一区二区少妇 |