朴素的希基

哈Ha!

我提请您注意罗伯特·C·马丁(鲍勃叔叔)的文章“ 简单的曲棍球 ”。

图片

Rich Hickey在Strange Loop上发表了一篇名为Simple,Easy的精彩演讲。 我强烈建议您花一个小时来收听。 此性能值得每一秒。

您在本讲座中会有一些您不同意的事情。 发生这种情况时,请停下来思考-认真考虑-您是否真的不同意。 也许您不应该这样认为。

例如,里奇(Rich)说过有关TDD和敏捷社区的神圣母牛敏捷和重构的一些看似不屑一顾的事情。 如果您致力于这个社区,那么您可能会做出负面反应。 不用了 丰富不忽视实践。 他忽略了宗教-鲁--轻浮。

Rich将单元测试与安全护栏进行比较。 然后他提出了非常好的观点。 他说,当您遇到错误时,该错误通过了您的测试。 现在呢? 您现在应该找到错误。 如果系统不简单,那就不容易了。 (请注意,我在这里简单,轻松地使用了这些词。Rich演讲的开头与这些词所具有的不同定义有关。我建议您停在这里,听他讲话的前十分钟,然后再回到本段。)

Rich强调短跑运动员的跑得很快,但时间不长。 然后他说敏捷只需简单地一次又一次地连续发射起始手枪就可以“解决”这个问题。 他假笑,观众笑了。 然后,他继续说,连续的冲刺并不一定会使系统变得简单,而简单是提高速度的关键。

他当然是对的。 马丁·福勒(Martin Fowler)在他的文章《松散的混乱》中谈到了这一点。 这就是我们敏捷社区中许多人所表达的。 没有良好技术实践的如此短的迭代不会导致快速的发展。 相反,它导致混乱。

Rich嘲笑测试套件将允许您更改代码的想法。 他说测试只是一个安全网,仅此而已。 我们TDDers知道,如果我们想无畏地更改代码,则必须使用测试套件。 但是Rich对于安全网是正确的。 如果安全系统已经很简单,它可以帮助您简化系统。 但是,在一大堆泥土下的安全系统在弄清混乱中几乎没有帮助。 哦,不要误会我的意思。 我需要这些测试! 但是工作并不容易。 (还是这个词)。

Rich的另一个演讲是:Hammock Driven Development,他鼓励我们思考,而不仅仅是编写代码。


就是这样 里奇担心,而且我们这样做的原因是,我们拥有一种复杂的文化。 当为程序员设置任务时,他们会使用“简单”的框架和工具向前运行并编写许多令人困惑的代码,而没有给予问题适当的意义。 我们将亮度与简单性混淆了。 (例如,Rails很简单,但是却并不容易。)他对测试的抱怨是我们用测试代替了想法。 这对我们有好处,因为我们编写了测试,但是实际上我们没有花足够的时间解决它应有的问题。 我们没有简化问题。 我们只是做了简单的事情。

因此,实际上,敏捷社区和整个软件社区都感染了这种疾病。 由于简单,我们经常做简单的事情。 因此,我们一团糟。 但这不是敏捷的价值,现在永远不会。 而这当然不是掌握软件的价值! 确实,与简单不同,做简单是软件向导的定义特征之一。

最后,我认为Rich对TDD的看法会因他在行业中的见解而失真。 老实说,我认为他错过了一些细节。 而且我认为他会理解这种做法对他和我一样有用。 并不是要避免思考,把自己弄得一团糟,而要是一种纪律严明,细心周到的方式。

现在问问自己,TDD对您意味着什么。 TDD是使事情变得容易的学科吗? 还是您曾经考虑周全,谨慎而不复杂的学科?

Source: https://habr.com/ru/post/zh-CN477326/


All Articles