Compact合约设计与架构审查技能 compact-reviewer:design-architecture

这是一个用于审查和评估Compact智能合约设计与架构的专业技能。它提供了一套系统化的评估框架,帮助开发者检查合约的结构合理性、设计模式应用、模块化程度、API设计质量以及代码组织。关键词:智能合约设计、架构审查、设计模式、模块化、API设计、代码组织、区块链开发、Compact合约。

智能合约 0 次安装 0 次浏览 更新于 2/26/2026

name: compact-reviewer:design-architecture description: 用于审查Compact合约架构、评估设计模式、评估模块化程度或分析API设计和代码组织质量时使用。

设计与架构技能

评估合约结构、设计模式和架构质量。

何时使用

此技能在以下查询时激活:

  • 合约架构与结构
  • Compact中的设计模式
  • 模块化与组织
  • API设计
  • 代码组织

触发词:架构、设计模式、结构、模块化、组织、布局、API设计

快速参考

架构检查清单

方面 检查项 严重性
关注点分离 每个电路只有一个职责 🟡 中等
状态封装 账本访问受控 🟠 高
清晰接口 导出电路有明确目的 🟡 中等
命名约定 电路/账本命名清晰 🟢 低
文档 公共接口有文档 🟢 低

良好架构模式

// ✅ 单一职责电路
export circuit deposit(amount: Uint<64>): [] { }
export circuit withdraw(amount: Uint<64>): [] { }
export circuit get_balance(): Uint<64> { }

// ✅ 用于可重用逻辑的辅助电路
circuit verify_owner(): [] {
    const caller = get_caller_secret();
    assert hash(caller) == owner_hash.read();
}

// ✅ 清晰的状态组织
ledger balances: Map<Bytes<32>, Uint<64>>;
ledger config: Cell<Config>;
ledger admin: Cell<Bytes<32>>;

反模式

// ❌ 上帝电路 - 做太多事
export circuit do_everything(
    action: Uint<8>,
    arg1: Field,
    arg2: Field,
    arg3: Field
): Field {
    if action == 0 { /* 存款 */ }
    if action == 1 { /* 取款 */ }
    if action == 2 { /* 转账 */ }
    // ...
}

// ❌ 不清晰的命名
export circuit proc(x: Field): Field { }
ledger d: Map<Bytes<32>, Uint<64>>;

审查流程

1. 结构分析

评估整体组织:

1. 统计导出的电路数量 - 过多(>10)建议拆分
2. 检查电路大小 - >50行可能过于复杂
3. 验证辅助电路使用是否恰当
4. 确认账本声明是否按逻辑分组

2. 模式识别

识别常见模式:

模式 指标 质量
所有者模式 owner_hash, verify_owner() ✅ 良好
访问控制 基于角色的检查 ✅ 良好
升级模式 implementation 账本 ⚠️ 复杂
多重签名 需要多个签名 ✅ 良好
状态机 基于枚举的状态 ✅ 良好

3. 接口设计

检查公共API:

1. 电路名称是否具有描述性?
2. 参数是否最少且清晰?
3. 返回类型是否合适?
4. 相关操作是否分组?

4. 模块化评估

评估分离程度:

1. 逻辑能否独立测试?
2. 关注点是否分离?
3. 状态访问是否受控?
4. 依赖关系是否明确?

参考资料

相关技能