调试器,敏捷过程的害群之马
2007-12-17 10:55
232 查看
当你习惯了测试驱动的开发(Test-Driven Development,TDD)之后,你会发现自己越来越少地使用调试器(debugger)——如果你发现程序里有什么问题,你不应该用调试器去抓bug,而是应该用一个单元测试用例来揭示问题的所在。由于存在细粒度、完整覆盖的单元测试用例,每个bug都相当清晰,于是很少会需要各种巧妙的调试手段了。
——————————
November 29, 2003
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2435
——————————
Uncle Bob's Software Craftsmanship Corner
Debuggers are a wasteful Timesink
by Robert C. MartinNovember 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.As debuggers have grown in power and capability, they have become more and more harmful to the process of software development.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2435
相关文章推荐
- 调试器,敏捷过程的害群之马
- 调试器,敏捷过程的害群之马
- 调试器,敏捷过程的害群之马
- 敏捷开发过程中如何开发高质量的软件
- 软件开发过程-敏捷开发过程
- 敏捷过程or统一过程,还是敏捷统一过程?
- 敏捷建模对统一过程的改造实践[转]
- [转]项目管理---敏捷开发思想---带来相当愉快的项目开发过程
- 项目管理---敏捷开发思想---带来相当愉快的项目开发过程
- 成功的软件开发过程 --迭代,进化和敏捷
- TFS(Team Foundation Server)敏捷使用教程(三):定制敏捷过程模板
- 瀑布模型与敏捷模型项目过程对比表
- 敏捷软件管理过程(实例)收藏
- CMMI和敏捷开发过程
- 敏捷游戏研发过程(海报导读)
- 敏捷开发过程中的会议
- 敏捷过程!!!
- 使用敏捷过程和建模来构建企业应用程序
- 中国过程改进年会会前培训:让敏捷落地!- 软件研发管理最佳实践(2012-5-30 北京)
- 敏捷开发过程中总结