Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tdd 测试驱动开发是否适合初学者?_Tdd - Fatal编程技术网

Tdd 测试驱动开发是否适合初学者?

Tdd 测试驱动开发是否适合初学者?,tdd,Tdd,我从两个提到TDD的人那里学到了如何通过考试 对于初学者来说,进入TDD(并在将来避免坏习惯)是好的,还是对于理解编程语言的阶段来说过于复杂?是的!当然 TDD比“传统”方法(直到最后才进行测试)更简单,因为测试澄清了您对问题的理解。如果你真的不清楚问题是什么,那么写测试是相当困难的 因此,对于初学者来说,编写测试会让思维朝着正确的方向发展,这是契约行为,而不是实现行为。我认为这对仅仅学习编程的人来说是不好的。那个人怎么知道该断言什么P TDD用于设计,而不是测试。一旦一个人知道如何编程,开始学

我从两个提到TDD的人那里学到了如何通过考试


对于初学者来说,进入TDD(并在将来避免坏习惯)是好的,还是对于理解编程语言的阶段来说过于复杂?

是的!当然

TDD比“传统”方法(直到最后才进行测试)更简单,因为测试澄清了您对问题的理解。如果你真的不清楚问题是什么,那么写测试是相当困难的


因此,对于初学者来说,编写测试会让思维朝着正确的方向发展,这是契约行为,而不是实现行为。

我认为这对仅仅学习编程的人来说是不好的。那个人怎么知道该断言什么P TDD用于设计,而不是测试。一旦一个人知道如何编程,开始学习TDD方法将是一件好事。

首先,你需要了解如何编写好代码。阅读、研究和练习这些,直到你掌握好为止。一旦你有了它,看看测试驱动设计-它非常强大。

我希望TDD在我第一次学习编程的时候就在身边,而且我在开始使用“旧方法”之前就已经学会了,所以我很难学习TDD…

这当然是一个很难接受的东西,但是说了这些,我希望我开始编写单元测试。如果我的工作场所有一位导师可以指导我的TDD进程,那将是一件好事。我断断续续地自学TDD已经有一年多的时间了,有很多内容需要涵盖,你做得越多,它就参与得越多,但现在对我来说,它真的开始有回报了。

我认为这说明,对于初学者来说,直接学习是一件非常好的事情。

TDD的一个重要好处是定义“成熟度”。在简单的算法编程中,如果您提出了两种很容易断言正确性的场景,那么很容易在单元测试中枚举它们并继续编码,直到它们都工作为止

有时,如果存在许多依赖项,并且您开始遇到需要模拟对象的场景,那么单元测试对初学者来说可能很难

然而,如果你能对正确性做一个简单的陈述,并且很容易打印出来,那么一定要在代码中写下来

您还可能注意到,如果一个简单的正确性声明不容易描述,您可能无法完全理解您的问题


祝你好运…

这取决于你对“初学者”的定义。如果你说的“初学者”是指一个完全没有编程背景的人,那么不,我不认为TDD是一个很好的开始方式。在担心重构和测试驱动开发之前,程序员需要学习基础知识(避免无限循环、内存分配等)。

我的编程格言是:

def self.learn_tdd_and_programming_together?
  if you_have_tdd_mentor_sitting_next_to_you?
    "go for it"
  else
    if language.ruby?
      "it's possible, there is quite a bit of good stuff out 
      there that could give you a chance of learning programming 
      with TDD from the start. It's sort of in the ruby culture"
    elsif language.dot_net?
      "learn TDD after you learn the basics of .NET"  
    end
  end
end
  • 让它运行——程序解决了这个问题
  • 使它正确——程序设计干净,有少量重复
  • 使其快速--优化(如果需要)
  • 测试驱动开发处理前两个问题


    我认为应该教初学者TDD,让他知道如何运行程序。我的意思是,只有这样才能教授好的设计技巧。

    代码就是代码,无论它是您试图突出的东西,还是测试

    从一开始就学习TDD有很多价值。这是应该成为习惯的技能之一。我们当中有很多人理解并喜欢tdd的价值,但多年的编程已经灌输了一些习惯,这些习惯以后很难改掉

    就TDD用于合同设计/代码实现/测试而言,它就是所有这些东西。TDD会带给你完美的代码吗?不,经验和学习这门手艺将帮助你成熟你的编码方法。但是TDD对于每个开发人员来说都是一个非常重要的工具

    TDD的使用有望帮助您实现可测试的设计。一个可测试的设计在理论上是很好的封装,应该遵循开闭原则

    在我看来,只要人们将TDD视为一种利基工具,或者在编写代码时以某种方式是可选的,那么这些人显然就不会理解TDD的价值。

    体验TDD规则 我还认为理想情况下,TDD在学习的早期阶段会非常有帮助。事后看来,我知道这会帮助我从完全不同的角度来处理这些问题

    我感到困惑的是,当一个人在学习时,有太多的新概念被吸收,以至于很早就开始产生困惑。因此,虽然我确实认为TDD会非常有帮助,但我不认为它可以是一个人自己成功学习的东西

    就像生活中的其他事情一样,当有人教我们时,我们往往学习得最好。向我们展示他们如何以TDD的方式处理问题比在书上或网络上阅读有关它的内容要多得多。我的意思是,这不会有什么坏处,但它并不能代替一位能真正向你展示诀窍的导师


    体验TDD就是一切因此,如果你能在早期阶段有人教你如何进行TDD,我认为学习作为一个整体将会加速,超出任何人的预期。

    我认为是的。研究甚至发现,对初学者的好处最大。它为您编写代码提供了更多指导。您知道结果和行为应该是什么,并编写测试。然后编写代码测试通过。你完成了。你知道你完成了。

    是的,有人试图打开Microsoft Word编写代码。我同意。我认为自己是一个相当有经验的程序员,但我发现TDD学习曲线令人难以置信的陡峭。如果您正在编写一个数学函数库,但正在测试真实的商业公关,那么这很容易