拦截了 198 次。我却以为它在“正常工作”。

我构建了一个拦截门来阻挡不良代码。它拦截了 198 段代码。我当时以为这意味着拦截门工作得很好。看到如此高的拦截次数,我感到很成功。

随后我查看了实际案例。我意识到其中许多拦截都是错误的。拦截门正在拒绝好的代码。它拒绝了那些完全符合要求的工作,仅仅是因为其结构看起来有些不同寻常。

我犯了一个常见的错误:我将“活跃度”与“正确性”混为一谈。

拦截门可以同时表现得非常“活跃”且非常“错误”。高拦截次数并不代表价值,它只证明了拦截门正在触发。

以下是我学到的判断拦截门是否真正发挥作用的方法:

  • 查看拦截原因。它们捕捉到的是真正的缺陷吗?还是仅仅因为相同的表面模式而误报?
  • 观察重试情况。重试是否解决了实际问题?还是代码仅仅为了迎合拦截门而改变了形态?如果代码只是在不改进的情况下改变形态,那么拦截门本身就是问题所在。
  • 检查最终的收敛情况。工作最终是否凭其自身的价值通过了?如果你不得不放宽拦截门的标准才能让工作通过,那么拦截门就是错误的。

一个运行良好的拦截门会让系统变得更好。而一个糟糕的拦截门只会让系统去适应拦截门。最终,你得到的代码是为了迎合校验器而设计的,而不是真正优秀的逻辑代码。

不要只盯着总数看。总数展示的是活跃度,而样本展示的是真相。

对你的拦截门、linter 或过滤器所拦截的内容进行抽样审计。如果你只用错误输入来测试你的防护机制,你只是在问一些“讨好”自己的问题。你还必须测试它们是否允许良好但非典型的输入通过。

你会审计你的拦截次数吗?你如何判断一次拒绝是否合理?

Source: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk

Optional learning community: https://t.me/GyaanSetuAi