4

Railsconf 2012上, Rich Hickey 做了题为Simple Made Easy的主题演讲。

在其中,他对测试驱动开发做了以下讽刺性引用

“我认为我们在这个世界上,我想称之为护栏编程......'我可以做出改变,因为我有测试!' 谁这样做?谁开着他们的车,撞在护栏上?护栏能帮助你到达你想去的地方吗?”</p>

Rich 更重要的一点是,除非您对想要构建的东西有一个强大的心理模型,否则 TDD 没有价值。你需要知道你正在做的方向。

鉴于 Rich 编写了一种名为Clojure的动态(即除了 core.typed 之外没有类型)语言- 他似乎提倡一种“强大的心理模型”,而不是像类型和测试这样的辅助工具。

把所有这些东西放在一起。Types的使用是在护栏驱动开发的范围内,还是仅限于TDD?

4

1 回答 1

3

在我看来,重点是首先要清楚地思考你的问题,给它一些时间让它在你的大脑中安定下来,让解决方案在一段时间内发展,而不是走 TDD 的方式,你一开始就开始编写测试获取项目,然后编写代码以使这些测试通过 - 这听起来像是一个高轨驱动的开发。

类型而言,它们无处不在,我的意思是字面意思。没有类型就无法思考,它们是人类理解周围世界的心智模型。在编程中,类型在静态类型语言中是显式的,而在动态语言中是隐式的。如果没有类型,您甚至无法编程 - 尝试在不知道参数类型的情况下编写函数体。

于 2013-07-10T16:23:49.960 回答