7.7
深览指数
科技Bestblogs·Javeed Shaik··AI 生成
当代码中的常量来自外部法律时,该如何应对
合规软件(如税务、薪资系统)中,常量可能不是程序员自己的决定,而是来自外部法律规则,后者可能在无预警时更改。这种系统的独特失败模式是:不会崩溃,而是静默产生看似正确但实际偏离的结果。文章基于印度财务计算器开发经验,提出三个反直觉的工程实践:参数名必须引用法规来源以消除歧义、法定数值应设可配置选项而非不可变常量、验证逻辑必须内嵌于核心库函数而非仅依赖前端表单。适合后端开发、金融系统架构师及需要对接法律合规的工程师阅读。原文 ↗
核心观点
- ▍合规软件中的常量是外部法律决策的体现,其独特的失败模式是非显式的静默错误:产生数量级正确但数值偏差的数据,且相同错误的自动化测试难以发现。
- 01像「amount」这样宽泛的参数名,容易混淆「总负债」与「实际已支付现金」这两个不同概念,导致利息计算错误。
- 02法定上限和费率(如税收减免额)往往针对不同用户群体设有例外,且其变更独立于软件部署周期,硬编码常量会导致系统无法及时响应。
- 03当核心逻辑被抽取为库时,原UI层面的前端输入验证(如字段长度、数值范围)会丢失;如果库函数内部缺乏边界守卫,极端输入将直接导致下游系统崩溃。
- 04作者指出,普通的软件Bug会产生堆栈跟踪或明显异常的数字;合规Bug产生的数字「结构正确、数量级正确,但错得十分自信」。
反方 / 局限
- — 文章暗示但未完全展开的一个局限是:将法定数值设计为「可配置选项」虽解决了灵活性问题,但也可能引入新的合规风险——如果调用方未经充分了解就修改默认值,可能导致系统整体偏离法规要求。
4 分钟 · 3 卡片 · 6 资料
读原文 →