Language agnostic TDD对于小项目来说是不是太过分了?
我最近读了很多关于TDD之类的书,我还没有完全了解它。。我做了很多小的爱好项目(就我一个人),我很担心做TDD是否会对这样的事情造成过度伤害。虽然我见过一些小型开源项目,其中有3个开发人员做TDD。(尽管我见过一些单人项目也做TDD)Language agnostic TDD对于小项目来说是不是太过分了?,language-agnostic,tdd,methodology,Language Agnostic,Tdd,Methodology,我最近读了很多关于TDD之类的书,我还没有完全了解它。。我做了很多小的爱好项目(就我一个人),我很担心做TDD是否会对这样的事情造成过度伤害。虽然我见过一些小型开源项目,其中有3个开发人员做TDD。(尽管我见过一些单人项目也做TDD) 那么TDD总是一件好事吗?或者在什么阈值下使用它才有意义呢 TDD在小型项目中大放异彩。在一个小项目中坚持TDD通常要容易得多,这是一个实践和获得遵循TDD所需的规程的好时机 根据我的经验,大型项目往往是在某个临界点放弃TDD的项目。(我并不是说这是件好事) 我认
那么TDD总是一件好事吗?或者在什么阈值下使用它才有意义呢 TDD在小型项目中大放异彩。在一个小项目中坚持TDD通常要容易得多,这是一个实践和获得遵循TDD所需的规程的好时机 根据我的经验,大型项目往往是在某个临界点放弃TDD的项目。(我并不是说这是件好事) 我认为大型项目倾向于放弃它有两个原因:
- 开发人员缺乏经验——一般或TDD
- 时间限制——较大的项目本质上更复杂
- 增加的复杂性会导致期限超限,而单元测试往往会首先被抛弃
- 缺乏经验的团队可能会加剧这种情况
在整个项目生命周期中,连续的测试周期将为您节省手动重复测试的时间,并消除错误/不完全重复这些测试的明显机会 过度杀戮?一点也不。除了主要的好处,即编写您可以依赖的代码,因为您已经考虑过它可能破坏的方式,通过测试驱动的开发,您将更有纪律性,并且可能更有效率。拿起任何实用的程序员书籍,寻找技巧和灵感 实际上,TDD的决定因素不是人数(至少你的问题是这样推断的),而是项目的规模
TDD的优点是,您正在开发的所有代码几乎都是经过单元测试的。这样可以在以后重构时节省很多麻烦。当然,当你的项目有一个合适的规模时,这才是真正必要的。一切都有一个成本效益曲线
忽视了TDD的许多常被争议的好处,如果您的实现经常发生变化,使自动化测试套件的好处超过了初始开发可能涉及的任何额外成本,那么TDD是值得的。I和其他人在任何超过几行代码的项目上使用TDD
一旦出现测试错误,就很难不使用TDD做任何事情。就我个人而言,由于TDD,我的代码已经改进了好几倍。小项目可能会有一种习惯,在你没有意识到的情况下变成大项目,那么你希望你从TDD开始:)我认为这完全取决于给定的时间框架。如果你有时间花在几乎是你通常需要的两倍的时间上,那就去做吧。
但在我看来,速度是当今(竞争性公司)最重要的因素之一。我总是觉得这样的问题很有趣。替代方案是什么?编写只编译而从不运行以验证其正确性的代码?您是否会等到部署到生产环境后才知道类是否工作 如果我们从未有过一种称为TDD的实践,或者早在1997年JUnit发明之前,就没有代码测试了吗?当然有。那么,为什么现在有了测试框架来帮助您解决这个问题,这是一件大事呢 即使是一个期限很紧的小项目也不想等到生产完成后才知道它是否有效。编写测试
对于任何“小”的项目都没有必要,但我将“小”定义为少于一个类。我从我们当地敏捷团队的一位成员那里听说,她认为TDD在项目的最早期阶段并不有用,你基本上是在快速绘制草图,但你还不确定物体的形状。但是,一旦您对接口的外观有了一些想法,就可以开始使用测试来帮助您定义它们
TDD是另一种工具,如文档,用于提高代码的清晰度。当其他人需要使用您的代码时,这一点非常重要,但我们中的许多人发现,当回顾我们自己的代码时,这一点也非常有用。你是否曾经有过一个业余爱好项目,在离开它一段时间后,你又重新拾起了它,遇到了一段奇怪的代码,并想知道“我到底为什么要写这个?”根据我的个人经验,我可以说:
用好的OO代码开发的项目天生就适合测试,并且可以在开发风格的后期获得测试驱动的焦点。实际上,我要说的是,当你在有限的预算下投入新兴技术时,考虑到所有的TDD都是完全可选的。我认为TDD是值得的,不管它的大小(即使它是一个类-因为先编写测试可以帮助你想出一个更明智的设计) 我觉得可能没有必要的地方是当你在建立一个项目的时候