金融科技工程手册

手册的总体反馈

  • 许多有金融科技经验的读者表示,这些建议符合真实世界的实践,对新人很有帮助。
  • 也有人觉得某些地方比较浅,或者遗漏了重要的注意事项(外汇、账本、合规)。
  • 一些人对 AI 署名持怀疑态度;作者澄清说,大部分内容来自自身经验,只是在编辑上借助了一些 AI。
  • 还有几位强调,任何通用手册都无法取代由律师和合规要求塑造的、公司特定的指导。

幂等性、重试、审计轨迹和 Webhook

  • 大家普遍认同幂等键、谨慎的重试语义以及有序事件至关重要,尤其是在支付和 Webhook 场景中。
  • 良好的审计轨迹被描述为既是调试工具,也是核心合规后盾;一些工程师甚至把“只有审计轨迹”作为主要数据源。
  • Webhook 在支付中被广泛使用(例如确认交易状态),但并非所有行业都通用。

如何表示金钱:整数、十进制、浮点数、字符串

  • 基于 int 的“最小单位”表示法(例如分)被辩护为许多领域的行业标准(HFT、支付、消费银行)。
  • 批评者认为,在以下情况下,采用“最小单位 + 整数”会变得脆弱:
    • 不同货币的小数位数不同,
    • 稳定币/加密货币具有不同精度,
    • 伙伴系统会默认假设不同的指数而不显式说明。
  • 讨论的替代方案包括:
    • 任意精度十进制,或语言原生的 decimal 类型。
    • 基于字符串的 JSON 表示,以避免浮点解析问题。
    • 整数尾数 + 整数指数(十进制浮点)。
    • 定点方案(例如按 10^n 缩放)。
  • 一个强势少数派观点认为,只要你:
    • 尊重精度限制,
    • 在每次操作后保持一致地四舍五入,
    • 使用专门的会计数学,
      那么 double 是可以接受且很常见的。
  • 其他人坚持认为,浮点数绝不应用于托管/记账余额;近似值只适用于建模/量化语境。
  • 大家一致认为,无论采用哪种表示法,明确的舍入规则和对账都至关重要。

账本、不可变性、事件溯源和数据建模

  • 大家同意核心货币状态应该是不可变的,并且应由变动推导而来,但:
    • 一些人更偏好完整的事件溯源;
    • 另一些人则倾向更简单的仅追加审计日志,以避免复杂的状态回放。
  • 关于“余额永远不存储”是否可行存在争议;有些人认为这几乎是糟糕建议。
  • 有人指出,外汇和复杂金融工具需要比手册给出的更细致的处理(汇率、舍入策略、法律上的精度规则)。
  • 数据血缘以及外部/供应商数据的版本管理被强调为缺失但重要的话题。

合规、PII 和组织约束

  • 一种观点支持将 PII 与金融记录分离,以便在保留所需金融历史的同时支持删除。
  • 另一种观点警告说,这可能与 KYC/AML 以及调查要求冲突;他们强调应遵循内部、按司法辖区制定的政策,而不是泛泛而谈的建议。
  • 有人认为,受监管公司的工程师大多应该遵循既有的内部标准,而不是在网上“找模式”;也有人反驳说,为了现代化遗留实践,需要借鉴外部思路。

“金融科技”的范围与领域特定权衡

  • 多位评论者指出,“金融科技”涵盖了非常不同的子领域:
    • HFT 和低延迟交易,
    • 消费者支付和银行,
    • 加密钱包和区块链,
    • 风险/量化建模。
  • 什么是“正确”的做法(整数 vs 十进制、事件溯源的深度、精度水平)会因子领域以及性能/合规约束而有很大不同。
  • 几位评论者强调,学习会计和账本原理,以及数据库基础知识,比任何特定技术选择都更重要。

其他实用说明和资源

  • ACH/Plaid 的余额检查并不能保证资金安全;在结算前,资金可能会消失。
  • 透支处理以及“提交后才知道是否成功”的语义都被承认为现实存在。
  • 提到的进一步学习资源包括面向开发者的会计指南、账本扩展文章、数据密集型系统书籍,以及资本市场和固定收益的标准读物。