加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

调试器,敏捷过程的害群之马

发布时间:2020-05-23 00:42:52 所属栏目:程序设计 来源:互联网
导读:当你习惯了测试驱动的开发(Test-Driven Development,TDD)之后,你会发现自己越来越少地使用调试器(debugger)——如果你发现程序里有什么问题,你不应该用调试器去抓bug,而是应该用一个单元测试用例来揭示问题的所在。由于存在细粒度、完整覆盖的单元测

当你习惯了测试驱动的开发(Test-Driven Development,TDD)之后,你会发现自己越来越少地使用调试器(debugger)——如果你发现程序里有什么问题,你不应该用调试器去抓bug,而是应该用一个单元测试用例来揭示问题的所在。由于存在细粒度、完整覆盖的单元测试用例,每个bug都相当清晰,于是很少会需要各种巧妙的调试手段了。

——————————

Uncle Bob's Software Craftsmanship Corner

Debuggers are a wasteful Timesink

by Robert C. Martin
November 29,2003
Summary
As debuggers have grown in power and capability,they have become more and more harmful to the process of software development.

Debuggers have become immensely powerful. A good debugger is a very capable tool. With it,an experienced developer can step through very complex code,look at all the variables,data structures,and stack frames; even modify the code and continue. And yet,for all their power,debuggers have done more to damage software development than help it.

Since I started using Test Driven Development in 1999,I have not found a serious use for a debugger. The kinds of bugs I have to troubleshoot are easily isolated by my unit tests,and can be quickly found through inspection and a few judiciously placed print statements.

I teach a lot of classes in C++,Java,C#,TDD,XP,Patterns,etc. In those classes I often have the students write code. It is not unusual for me to find a student with his or her nose buried in a debugger,painstakingly stepping from line to line,examining variables,setting breakpoints,and generally wasting time. The bug they are tracking could be found through simple inspection of the code.

I consider debuggers to be a drug -- an addiction. Programmers can get into the horrible habbit of depending on the debugger instead of on their brain. IMHO a debugger is a tool of last resort. Once you have exhausted every other avenue of diagnosis,and have given very careful thought to just rewriting the offending code,*then* you may need a debugger.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读