与自身计算器不一致的算例

我经营着一个提供家居装修成本计算器的网站。

每个页面都在四个不同的地方显示相同的成本:

我发现了一个 Bug。一个书面示例说项目成本为 $62,300。而计算器小部件却说同一个项目的成本为 $56,779。

差额为 $5,500。

出错的原因是我手动输入了数字。我在文本中使用的假设与代码中的假设不同。文本假设更换了新的 HVAC 设备,而代码则假设使用现有系统。两者都是合理的,但它们并不匹配。

这是一个常见的失败案例。当你将同一个事实存储在两个地方时,它们就会产生偏差。

我通过两条规则解决了这个问题。

规则 1:源头优先逻辑。

计算器函数是数字诞生的唯一场所。我不再手动将数字输入到表格或段落中。相反,我在构建时使用该函数来生成表格和示例。

如果函数发生变化,整个页面都会随之改变。表格和小部件将始终保持一致,因为它们使用相同的逻辑。

规则 2:添加溯源信息。

只有当你知道数字的来源时,它才是有用的。现在的每次计算都包含:

成本数据不是永久性的事实,而是具有时效性的事实。添加复核日期可以提醒我在数据出错之前对其进行更新。

单一事实来源 (Single source of truth) 让你保持一致。添加溯源信息让你保持诚实。

如果你在两个地方显示同一个数字,不要重新输入,而是要导入它。让你的构建流程来处理重复问题。

来源:https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9