紧凑型代码审查最佳实践Skill compact-reviewer:best-practices

本技能提供Midnight区块链上Compact智能合约开发的代码审查指导。它专注于识别和推广惯用的编程模式、推荐的最佳实践,并指出开发过程中应避免的常见错误。关键词:智能合约开发,Compact语言,最佳实践,代码审查,Midnight区块链,编程模式,常见错误。

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

名称: 紧凑型代码审查最佳实践 描述: 在审查Compact合约的惯用模式、学习推荐实践或识别Midnight智能合约开发中应避免的常见错误时使用。

最佳实践技能

关于惯用Compact模式及应避免的常见错误的指导。

何时使用

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

  • 惯用的Compact代码
  • 最佳实践与约定
  • 常见错误
  • 推荐模式
  • 库的使用

触发词: 最佳实践, 惯用, 约定, 模式, 推荐, 应该, 应当

快速参考

惯用模式

模式 推荐做法 应避免做法
授权 require_owner() 辅助函数 在每个电路中内联授权检查
常量 命名常量 魔法数字
错误处理 描述性断言 静默失败
状态访问 通过辅助函数控制 到处直接访问账本
命名 电路使用 动词_名词 格式 晦涩的缩写

常见错误

// ❌ 缺少语言编译指示
// 应位于每个文件的顶部
export circuit example(): [] { }

// ✅ 带有编译指示
pragma language_version >= 0.18.0;
export circuit example(): [] { }
// ❌ 未使用Counter进行计数
ledger count: Cell<Uint<64>>;
export circuit increment(): [] {
    count.write(count.read() + 1);
}

// ✅ 使用Counter抽象数据类型
ledger count: Counter;
export circuit increment(): [] {
    count.increment(1);
}

审查流程

1. 编译指示与导入

检查文件结构:

  • 存在编译指示并指定了版本
  • 导入语句在顶部(当支持时)
  • 声明的逻辑顺序

2. 类型选择

验证类型是否合适:

  • 计数使用Counter
  • 键值对使用Map
  • 成员关系使用Set
  • 单一值使用Cell
  • 固定大小数组使用Vector

3. 模式合规性

对照惯用法检查:

  • 授权提取到辅助函数
  • 常量在顶部定义
  • 命名一致
  • 公共接口有文档说明

参考资料

相关技能