運用由來已久的技術更快地得到高質量的代碼。 by Bill Wagner .Net Framework中包含許多工具可以用來更快、更容易地編寫正確的程序。但我們得面臨這樣的情況:出現bugs。不管程序多麼簡單,程序員都可能出錯。根據我的經驗,大多數程序的bugs出現在程序員之間的接口:當一個程序員編寫的代碼被另一個程序員調用時。不知何故,調用者破壞了代碼編寫時做的假設。是誰的過錯呢?這並不要緊,更重要的是你能多快修好它?下面這些技巧將幫你在程序投入使用前更快地發現並解決這些問題。最終,這些技巧會幫你診斷任何的確在使用中出現的問題。
一旦你問了自己這四個問題並作出回答後,把答案放到代碼中。在C#中,用System.Diagnostics.Debug類的Assent方法來表示:public bool ProcessIterations (int numIters) { Debug.Assert (numIters > 0, "ProcessIterations.", "Iterations must be more than 0"); // More code...
然後,在每個公有的方法中,調用ImOK方法:public bool ProcessIterations (int numIters) { ImOK (); Debug.Assert (numIters > 0, "ProcessIterations.", "Iterations must be more than 0");
首先,在你的程序中為每個類建一個TraceSwitch對象:public class MyClass { private static TraceSwitch myClassSwitch = new TraceSwitch ("MyClassSwitch", "Controls the debug output of MyClass");
然後,用WriteIf() 和 WriteLineIf() 方法來記錄任何你覺得有助於你跟蹤你的程序的信息:public bool ProcessIterations (int numIters) { WriteLineIf (myClassSwitch.TraceInfo, "Entering ProcessIterations", "CallTrace"); ImOK (); Debug.Assert (numIters > 0, "ProcessIterations.", "Iterations must be more than 0");
關於作者: Bill Wagner 是SRT Solutions的創始人和顧問,專門研究.Net 開發。他是The C# Core Language Little Black Book一書的作者。 十多年來,他一直從事軟件開發與教學工作。他是Visual Studio Magazine的專欄作家,並在許多關於改進軟件開發習慣的會議上做演講。他從事的軟件程序的范圍很廣,從兒童游戲到生物信息學研究。聯系方式:[email protected]。