48

测试驱动开发人员指的是一种快速的、探索性的调查,其中涉及对某些东西进行编码以查看它是否有效,这是一个尖峰

任何想法为什么他们想出了这个词?

更新: Kent Beck 的造币在我看来就像是“原版”,尽管在我看来他对这个词的使用没有多大意义。编写一个快速测试是“在项目中增加一个峰值”?

有趣的是,他似乎停止使用这个词,因为它给不同的人带来了不同的含义——见下文以获得证据!

4

7 回答 7

46

Ward Cunningham 在WardsWiki上写道(指 Kent Beck):

我经常问肯特,“我们可以编写的最简单的事情是什么,可以让我们相信我们走在正确的轨道上?” 这种克服手头困难的做法通常会导致我们找到更简单、更有说服力的解决方案。肯特将其称为斯派克。我发现这种做法在维护大型框架时特别有用。

Kent Beck writes in Guide to Better Smalltalk:

Sometimes I call this a "spike," because we are driving a spike through the entire design. [...] Because people variously associate "spike" with volleyball, railroads, or dogs, I have begun using "architectural prototype" to describe this implementation.

于 2008-10-30T13:11:20.210 回答
11

恕我直言,钉子一词与钉子穿过木板有关。是的..在这里

“Spike”是一个极限编程术语,意思是“实验”。我们使用这个词是因为我们认为尖峰有一个快速的、几乎是蛮力的实验,目的是只学习一件事。想想用一根大钉子穿过木板。
-- C# 中的极限编程冒险 - Ron Jeffries

于 2008-10-30T12:40:35.593 回答
7

我一直认为这是一个登山者的比喻。在你上山的路上,你在山上放了一个钉子。如果钉子粘住了,那么就可以走那条路。

于 2008-10-30T12:24:57.183 回答
2

因为它与众不同,就像图表中的尖峰一样。例如 CPU 使用率飙升。

于 2008-10-30T12:16:26.000 回答
2

行话文件有以下条目:

尖峰v.

  1. 通过引入强制特定结果的(有时是临时的)设备来击败选择机制。这个词用于多个行业;电话工程师指的是通过插入一个销钉将继电器保持在关闭或打开状态,铁路工程师指的是钉住一个轨道开关,使其无法移动。在编程环境中,它通常指的是临时更改,通常用于测试目的(与永久更改相反,它被称为硬连线)。

  2. [边界技术语言] 在其他相当恒定的图表中出现可见峰值(例如,线路电压的突然浪涌,电路中逻辑线路上的意外短“高”)。黑客经常使用它来突然增加一些数量,例如系统负载或网络流量。

于 2008-10-30T12:33:35.433 回答
1

我相信这是一种工程表达。尖峰是一种临时解决方案,在您制定永久解决方案之前,您会尝试看看它是否有效。铁路工程师谈论道岔道钉:将道钉插入道岔,使其无法移动。

于 2008-10-30T12:28:36.660 回答
1

It is called Spiking because it slices through all layers of the system. That's what he means when he says Architectural Prototype.

于 2014-09-01T16:29:26.203 回答