在软件开发中,知道如何做事似乎分为三个阶段。
好吧……让我们假装这样做,它肯定比这更复杂,但这是一个有用的模型,所以请耐心等待。
- 事实 -您已经阅读了某些事物的工作原理以及如何进行
- 许多由经验驱动的修复程序 –您遇到了一些问题,使用StackOverflow解决了这些问题,似乎有一些可行的方法,通常您认为您知道分数,尽管您的知识可能有些漏洞
- 集成 -您所经历和阅读的许多知识结合在一起,形成了一种思维模型,似乎超出了您的即时经验-您感到如何使用某些东西
就您拥有的任何技术或技能而言,可能值得研究此模型。 老实说,您是处于修复阶段的基础知识 ,还是已集成? 您是否患有Dunning-Kruger效应 ?
这在TDD中如何运作?
这么说很奇怪,但是测试代码的构造及其背后的动机与生产代码不同。 当生产代码可以满足测试需求时,它也最有效。 对我而言,这导致了测试驱动开发的以下成熟度:
- 涉水
- 峰值测试克雷
- 冷静而简单
这些值得进一步解释。
碰巧是当我们有想法应该编写测试并进行一些测试时,但是我们并未将其作为开发过程的核心,因此我们通常会避免任何过分困难的事情。
峰值测试Cray Cray出现在授权,热心的开发人员,互联网上的不良示例以及不灵活或过分灵活的设计(请参阅Test Smells )的结合,最终形成了无用的测试和代码汤! 我认为这是在测试技术以及代码测试的一般应用中发生的。 我认为您必须例如浏览Peak Mockito ,以了解何时不使用它!
在某些时候,您会厌倦于测试的挑战……
冷静和简单是您所需要的。 有人会争辩说,这是由小的增量红色->绿色-> REFACTOR步骤引起的,绝对是第一个测试。 事实是,您需要一些积极的例子来了解如何应用这些技术,并且您可能需要被Peak Test Cray Cray烧死才能对超出范围的平静和简单土地进行评估。 希望这里的一些帖子会有所帮助。
谦逊
这是一个自以为是的网站,上面有很多建议。 在这些帖子中,我将探索自己的经验,以使我的知识达到第3级。 也就是说,您必须不断开放以重新评估您所知道的内容。 例如,当我第一次向我建议时,我嘲笑减少使用模拟的想法,但是现在,我在认真测试过分模仿的迹象。
您的经验将教给您,您应该为将来可能会改变或发展的观点和方法而感到兴奋。
翻译自: https://www.javacodegeeks.com/2019/09/the-three-stages-of-knowledge.html