Visual Studio 2015 System.Diagnostic Debug & Trace
前言
剛開始開發網頁的時候常常使用自以為正確的方式在做偵錯,
從下列順序一路演進
- 使用 label 紀錄
- 中斷點
- System.Diagnostic 偵錯
那今天要跟大家介紹的就是最後這一個好用的東東 System.Diagnostic 偵錯
他可以處理一些實務上較棘手的狀況。
使用情境
我們在開發時,一定都會預想結果會是什麼,
但是光用想的、猜測都是非常不可靠的,
當然如果我們是使用TDD開發就沒有這個問題 (確保產出都是高品質正確程式並包含驗證)
但是如果只是小地方想要驗證邏輯是否正確,
或是在線上的環境無法開啟Visual Studio 工具偵錯 (曾經遇到前人程式寫的不好,遇到Server時間格式問題錯誤,用這方法快速Debug出來 ),
所以我們來開始介紹吧 XD
基本介紹
在我們開始使用之前我們必須先看到 using System.Diagnostics 這個命名空間
其中有兩個很好用的類別
我們來分別介紹一下兩者的特性
Debug
- 主要會用在我們開發偵錯的時期
- 他只有在Debug組態編譯的時候才會被執行到 (換句話說當你發行為 production 它不會影響到效能,但他會佔用檔案空間,即它就存在原始碼當中)
- 可以使用 Debug.Assert & Debug.Fail 幫忙找出問題
Debug幾種紀錄方式
- Assertion檢查
- 一般輸出文字
- 監聽器
- 共用 TraceListenerCollection監聽器
Trace
- 主要用在上線發行階段 (常見的是有時開發環境沒有問題,發布後程式卻有BUG,但server並沒有開發環境,那我們可以透過此類別去注入一些程式幫忙記 log )
- 通常會搭配寫入檔案使用
Trace 幾種紀錄方式
- 判斷提示
- 一般輸出文字
- 嚴重等級標示
小結
還是老話一句工具都是需要花一點時間去做研究的,
只有當你自己熟悉後,才會讓開發效率提升,
能透過工具輔助務必不要靠自己。
希望各位都能學習到這個好用的偵錯開發技巧 : )
範例程式碼
https://github.com/hatedinny1/diagnostics