![]() |
1
3
我个人同意Ed Kaim的观点。就我个人而言,我觉得好的测试实践已经取代了调试。断言我所有工作中的调用。另外,我已经放弃了调试的使用,也失败了——每当我想使用这个的时候,我都会发现我想在发布和调试中抛出一个异常,所以我通常不明白这一点。 尽管如此,我仍然使用一些调试打印语句来增强我的调试(通过debug.writeline),特别是在数字代码中…我承认这是对老式printf调试的回归,但通常这仍然是跟踪问题的最快方法,尤其是在调试器中没有出现的问题(由于时间问题、线程等)。 |
![]() |
2
2
就个人而言,我很少在任何编程中使用调试类。我读了很多评论和建议,比如约翰·罗宾斯(约翰·罗宾斯)的评论和建议。 Debugging .NET 2.0 Applications 以及 Bugslayer 列)关于您应该主动断言的原因-尤其是方法的参数。 我的问题是,假设我要写这样的代码:
这在调试构建的开发过程中很好地工作,但我最终还是要这样做:
如果“源”有可能什么都不是,那么我还是要做一个“如果”检查。我不会将断言调用留在发布版本中。 我不使用调试类的另一个原因是我编写了很多单元测试。这样做让我覆盖了很多代码路径,因此不需要在代码中进行debug.assert。 至于调试日志记录,那么我只使用跟踪调用和系统内部构件 DebugView 或记录跟踪调用输出的文本文件。 我很想听听其他人关于这个主题的看法,因为我也有兴趣知道他们在开发期间如何使用调试类。这是一个我经验不足的领域,所以我很想学习。 |
![]() |
3
1
与在调试器中简单运行代码相比,使用调试类的主要优势在于,您可以获得一个日志文件(使用debug.writeline语句),您可以与同事/存储共享该文件以获取记录。 Debug.Assert相对于编写单独的测试方法具有的优点是紧凑性,并且检查的位置正好是它需要的位置,而不是单独的方法。 |
![]() |
4
1
我个人的观点是,debug.assert和debug.fail经常被错误地用于“隐藏”最终用户的错误。如果有必要,我宁愿写错误日志或者抛出异常。 |
![]() |
5
1
我不能告诉你是否应该,但我可以建议我使用它的时间。 当我需要关于函数/变量/进程/结果的更多信息时,我使用debug,但一旦它被发布,我就知道该信息不再相关。我使用debug.writeline来验证进程的正确时间顺序,例如debug.assert来验证值应该是什么。 我认为Kaim只是说很容易误用debug.assert。不要使用debug.assert来捕获生产中可能发生的问题。assert用于开发期间的简单检查,如提醒标志。它不是用来处理发布代码错误的。您可以放置一个debug.assert每隔一行,而不用担心它会减慢发布代码的速度。 |
![]() |
6
1
我建议不要使用
对于它的价值,我发现log4net在日志记录方面非常有用和强大。我建议使用它而不是
|
![]() |
8
0
调试。断言合同测试。它有一点好处,就是它不存在于发布代码中。这不是if+引发异常的情况。 我使用debug.writeline来处理UI事件,因为有调试程序阻碍(例如,在从vs窗口切换到app窗口时,会再次调用刷新事件)。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |