关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
3年前关闭。
Improve this question
我是一名经验丰富的契约(Contract)程序员。我习惯于被客户雇佣,自己去做一个或另一种形式的软件项目,通常是白手起家。这意味着几乎每次都是白纸黑字。我可以引入我开发的库来快速入门,但它们始终是可选的。 (并且取决于在契约(Contract)中获得正确的 IP 条款)很多时候我可以指定甚至设计硬件平台......所以我们在这里谈论的是严肃的自由。
我可以看到为某些代码构建自动化测试的用途:具有更多功能的库、具有大量引用的核心功能等。基本上,随着一段代码的值(value)因大量使用而上升,我可以看到它自动测试该代码会越来越有值(value),这样我就知道我不会破坏它。
然而,在我的情况下,我发现很难合理化除此之外的任何事情。我会采用被证明有用的东西,但我不会盲目地遵循任何东西。
我发现我在“维护”中所做的许多事情实际上都是很小的设计更改。在这种情况下,测试不会为我节省任何东西,现在它们也必须改变。高度迭代、 stub 优先的设计方法对我来说非常有效。我看不到通过更广泛的测试实际上为自己节省了那么多时间。
爱好项目更难证明......它们通常是从周末到一个月的任何东西。边缘情况的错误很少有关系,这都是关于玩一些东西。
阅读问题,例如 this one , 投票最多的回应似乎是说,在该发帖人的经验/意见中,如果您的人数少于 5 人,TDD 实际上会浪费时间(即使假设有一定程度的 TDD 能力/经验)。但是,这似乎涵盖了初始开发时间,而不是维护时间。目前尚不清楚 TDD 如何在项目的整个生命周期中叠加。
我认为 TDD 可能是朝着提高整个行业产品质量这一有值(value)目标迈出的重要一步。不过,理想主义本身不再能有效地激励我。
我确实认为 TDD 在大型团队或包含至少一个不可靠程序员的任何规模的团队中是一种好方法。那不是我的问题。
为什么拥有良好记录的唯一开发人员会采用 TDD?
我很想听听关于 TDD 的任何类型的指标(正式或非正式)......专注于单独的开发人员或非常小的团队。
如果做不到这一点,你个人经历的轶事也会很好。 :)
请避免在没有经验的情况下发表意见来支持它。让我们不要把这变成一场意识形态 war 。还有跳过更多就业选择的论点。这只是一个效率问题。
最佳答案
好吧,轮到我了……我什至会自己做 TDD(对于非尖峰/实验/原型(prototype)代码),因为
如果我想到任何更多,我会更新..这是我在最后 2 分钟的反射(reflection)中想到的。
关于tdd - 单一开发人员应该使用 TDD 的一些原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157717/