在Railsconf 2012 Rich Hickey上发表了题为Simple Made Easy的主题演讲。
在其中,他提出了关于测试驱动开发的following satirical quote:
“我想我们在这个世界上我想称之为Guard Rail Programming ......”我可以做出改变,因为我有测试!'谁做到了?谁驾驶他们的车,撞在护栏上?护栏可以帮助你到达你想去的地方吗?“
Rich更重要的一点是TDD没有价值,除非你有一个强大的心理模型,你想要建立什么。你需要知道你正在做的方向。
鉴于Rich编写了一个名为Clojure的动态(即没有除core.typed之外的类型)语言 - 他似乎主张“类型和测试”等辅助工具的“强大心理模型”。
把所有这些东西放在一起。类型的使用是否在护栏驱动的开发范围内,还是仅限于TDD的范围?
答案 0 :(得分:3)
在我看来,关键在于首先要清楚地思考你的问题,让它有时让它在你的大脑中安定下来并让解决方案在一段时间内发展,而不是像你开始编写测试一样的TDD方式一旦你得到项目,然后你编写代码,使这些测试通过 - 这听起来像一个gaurdrail驱动的开发。
就类型而言,它们无处不在,我的意思是字面意思。你不能没有类型思考,它们是人类理解周围世界的心理模型。在编程中,类型在静态类型语言中是显式的,在动态语言中是隐式的。如果没有类型,你甚至无法编程 - 尝试在不知道参数类型的情况下编写函数体。