Tdd 测试驱动开发是否适合初学者?
我从两个提到TDD的人那里学到了如何通过考试Tdd 测试驱动开发是否适合初学者?,tdd,Tdd,我从两个提到TDD的人那里学到了如何通过考试 对于初学者来说,进入TDD(并在将来避免坏习惯)是好的,还是对于理解编程语言的阶段来说过于复杂?是的!当然 TDD比“传统”方法(直到最后才进行测试)更简单,因为测试澄清了您对问题的理解。如果你真的不清楚问题是什么,那么写测试是相当困难的 因此,对于初学者来说,编写测试会让思维朝着正确的方向发展,这是契约行为,而不是实现行为。我认为这对仅仅学习编程的人来说是不好的。那个人怎么知道该断言什么P 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学习曲线令人难以置信的陡峭。如果您正在编写一个数学函数库,但正在测试真实的商业公关,那么这很容易