故意先弄错的例子

Posted

技术标签:

【中文标题】故意先弄错的例子【英文标题】:Examples of getting it wrong first, on purpose 【发布时间】:2009-07-10 16:22:46 【问题描述】:

我刚刚发现自己在做一些我经常做的事情,并想对其进行概括、表达、分享,看看还有谁在遵循这种普遍做法,以找到可能相关的其他示例情况。

一般的做法是先故意出错,在执行当前任务之前确定其他一切都是正确的。

具体来说,我试图做的是在我们的代码库中找到使用 dojo TextArea 小部件的示例。我知道(因为我面前有它——存在证明)TextBox 小部件至少存在于一个文件中。所以我首先寻找我所知道的东西:

grep -r digit.form.TextBox | grep -v svn

这是不对的 - 我犯了一个(对我来说)常见的错误,就是不使用星星,所以我修复了这个问题:

grep -r digit.form.TextBox * | grep -v svn

未找到任何结果!与我正在查看的文件的快速比较表明我拼错了“dijit”:

grep -r dijit.form.TextBox * | grep -v svn

现在我得到了结果。凉爽的;首先故意做错意味着我的查询是正确的,除了寻找错误的东西,所以现在我可以构造正确的查询:

grep -r dijit.form.TextArea * | grep -v svn

并且确信当它没有给我任何结果时,那是因为没有这样的文件,而不是因为我的查询格式错误。

我将添加其他三个示例作为答案;请添加您知道的任何其他人。

【问题讨论】:

应该是社区维基 “除了寻找错误的东西”是一个谬论。可能有很多“错误的事情”。 【参考方案1】:

TDD

测试驱动开发的红-绿-重构循环可能是这种实践的原型。用红色表示该功能不存在;然后让它存在并通过见证绿色条来证明你已经这样做了。

【讨论】:

我也想到了。如果您正在为当前有效的东西设置测试,则必须通过破坏某些东西来测试测试的有效性。一旦您对测试的工作感到满意,您就可以取消它。 呃。我认为 TDD 就是您在问题中所说的。【参考方案2】:

http://support.microsoft.com/kb/275085

此 VBA 例程关闭 MS Access 数据库中每个表的“子数据表”属性。指示用户确保将错误处理设置为“仅在未处理的错误上中断”。该例程通过抛出的错误识别需要修复的表。我不确定这是否完全符合您的问题,但对我来说,以非错误方式使用错误总是很有趣。

【讨论】:

+1 这是一个不错的技巧,它与我所描述的有关,尽管我认为不是 100% 匹配。 我认为你对 +1 很慷慨……这是一种机械化的东西,你追求的是一些特殊的甚至是直觉的东西,这很有趣。你可能喜欢玩围棋。【参考方案3】:

Here's an example from VBA:

我在调暗变量时也使用驼峰式大小写。这是CamelCase的一个例子。一旦我退出 VBA 代码行,如果 Access 没有将小写变量更改为驼峰大小写,那么我知道我有错字。 [或者,未设置选项显式,这是帖子主题。]

我也使用这个技巧,至少一个小时几次。

【讨论】:

是的,在我进入 Ubuntu 之后,我一直在低头……“嗯,我在浴室装置中放了一个好灯泡,以确保我们没有停电,然后我放入坏灯泡以确保其烧坏......” 我认为你的问题的一个有趣的角度是识别一个人的行为当它们是根深蒂固的习惯时的挑战。【参考方案4】:

安排 - 断言 - 行动 - 断言

在我的测试中,我有时喜欢在动作之前添加一个反断言,以表明该动作实际上负责产生结论断言所证明的预期结果。

【讨论】:

so ... Proof = FALSE ... 然后看看你的下一行是否将其更改为 TRUE? 没错。我在这里举个例子:***.com/questions/1021007/…【参考方案5】:

当对我的拼写有疑问时,我的编辑的拼写检查

我们使用许多编辑器。他们中的许多人在我键入时会突出显示拼写错误的单词——有些则不会。我依赖自动拼写检查,但我不记得当时的编辑器是否具有该功能。所以我会输入,比如说,“circuitx”并点击空间。如果它突出显示,我将备份空格和“x”并输入另一个空格 - 并了解我正确拼写电路 - 但如果没有,我将复制该单词并将其粘贴到已知拼写中-checker 看看我是否这样做了。

【讨论】:

【参考方案6】:

我不确定这是不是最好的操作方式,因为它不会阻止您拼错最终命令,例如输入“TestArea”或类似的东西而不是“TextArea”(您的手指只需滑动这样的错误很少)。

恕我直言,最好的方法是运行“最终”命令,但首先在两个示例文件上运行:一个包含请求的文本,另一个不包含。

换句话说,不是运行“相似”的命令,而是运行真正的命令,但在“相似”的数据上。

【讨论】:

【参考方案7】:

(不确定这是否是一个真正尝试的好主意!)

例如,您可以将系统提供给用户进行测试,并告诉他们开始使用的密码是“Apple”。

当用户联系您并说密码无效(实际上是“橙色”)时,您知道用户已完全准备好进行测试(一切都已安装并且与数据库的连接正常)。

【讨论】:

以上是关于故意先弄错的例子的主要内容,如果未能解决你的问题,请参考以下文章

sqlite常用语法 增删 修改 例子

Hibernate第一个例子

解决Linux终端乱码的两则例子

MyEclipse 如何用java 开发C/S程序,最好给个简单的例子 先谢谢了

ML-Agents3DBall例子

一个简单的死锁例子