与自身计算器不一致的算例
我经营着一个提供家居装修成本计算器的网站。
每个页面都在四个不同的地方显示相同的成本:
- 一个交互式小部件。
- 一个静态参考表。
- 书面文字示例。
- 一个常见问题解答 (FAQ) 部分。
我发现了一个 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