在我掌握从 问题描述到代码 的过程中,有两个人提到了测试驱动开发(TDD)。
对于一个初学者来说,学习TDD是否好处多多(并避免将来的不良习惯)?或者在了解编程语言的阶段学习TDD是否太复杂呢?
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,这样他就知道如何使程序运行。在我看来,只有这样才能教授好的设计技巧。
我认为是的。研究甚至发现对于初学者来说,好处最大。它为您编写代码提供更多指导。您知道结果和行为应该是什么,并编写测试。然后再编写代码。测试通过。完成了。而且你知道你完成了。
是的!绝对没问题。
我认为对于刚开始学习编程的人来说,这并不是一个好方法。那个人怎么知道该断言什么呢?:P TDD 是用于设计而非测试的。一旦一个人掌握了编程技能,开始学习 TDD 方法会是一件好事。