SuperAPI AI 工具集

domain-fintech

编程与开发

查看项目

更新于 10-15 08:18

技能介绍

该技能定位于 Rust 金融科技(FinTech)开发中的第三层——领域约束(Layer 3: Domain Constraints),目标是把金融业务的领域规则转化为具体的设计约束与 Rust 实现方式。

用途 当开发者正在构建金融科技类应用(如交易、支付、账本、汇率等场景)时,该技能用于提醒并指导如何满足金融领域的硬性约束,避免因实现不当导致精度丢失、审计断链或资金账目不一致等问题。

主要能力

  1. 金融精度:明确规则是“绝不用 f64 表示金钱”,原因是浮点数会丢失精度;对应做法是使用 rust_decimal::Decimal。
  2. 审计要求:所有交易必须不可变且可追溯,以满足监管合规和争议解决;实现上使用 Arc<T> 共享不可变数据,并采用事件溯源模式。
  3. 一致性:资金不能消失也不能凭空出现,遵循复式记账原则;实现上使用带总额校验的交易类型。
  4. 领域规则到设计约束的映射:如“需要不可变交易记录”推导为值对象建模与 Arc 共享不可变数据;“需要精确十进制运算”推导为用 newtype 封装货币/金额并使用 Decimal;“需要交易边界”推导为用 RAII 管理交易作用域与聚合边界。
  5. 关键 crate 推荐:rust_decimal(十进制运算)、chrono/time(日期时间)、uuid、serde、validator。
  6. 设计模式:货币 newtype(如 struct Amount(Decimal);)、交易(原子操作、事件溯源)、审计日志(结构化日志加 trace ID)、账本(复式记账的借贷平衡)。
  7. 常见错误与修复:使用 f64 导致精度丢失(改用 rust_decimal);可变交易记录破坏审计追踪(改为不可变加事件);用字符串表示金额缺乏校验(改为经过校验的 newtype);静默溢出导致资金消失(使用检查算术)。
  8. 与相邻技能的关系:值对象设计参见 m09-domain;不可变的所有权处理参见 m01-ownership;共享用 Arc 参见 m02-resource;错误处理参见 m13-domain-error。

使用方式 该技能以约束清单、映射表、代码模式和错误对照表的形式呈现。文中的代码模式展示了如何用 rust_decimal::Decimal 定义 Amount 结构体,其中包含 value 与 currency 字段,并提供 new 与 add 方法;add 方法在货币不一致时返回 CurrencyMismatch 错误,货币一致时返回新的相加结果。开发者可据此在自己的金融 Rust 项目中套用相应模式。

适用场景 适用于构建金融科技应用,关键词包括 fintech、trading、decimal、currency、financial、money、transaction、ledger、payment、exchange rate、precision 等,即涉及交易、货币、金额、账本、支付和汇率精度要求的 Rust 开发场景。

限制 资料未提供该技能的收费、价格、平台限制或具体安装步骤等信息,这些内容暂未提供。资料也未给出完整的端到端示例或性能数据。