{ "decision_id": "D001", "date": "2026-01-15", "title": "OpCode命名统一为UPPER_CASE", "category": "coding_standard", "status": "implemented", "context": { "problem": "NVM OpCode命名不统一,有PascalCase和UPPER_CASE混用", "examples": [ "PascalCase: Push1, SStore, JumpDest, CrCreate", "UPPER_CASE: PUSH1, SSTORE, JUMP_DEST, CR_CREATE" ], "impact": "代码可读性差,不符合行业标准" }, "decision": { "statement": "所有OpCode统一使用UPPER_CASE命名", "rules": [ "单个单词:全大写(如PUSH1, SSTORE)", "多个单词:使用下划线分隔(如JUMP_DEST, CR_CREATE)", "保持与EVM兼容的OpCode名称一致" ], "examples": [ "PUSH1(不是Push1)", "SSTORE(不是SStore)", "JUMP_DEST(不是JumpDest)", "CR_CREATE(不是CrCreate)" ] }, "rationale": [ "符合区块链行业标准:EVM使用UPPER_CASE命名", "提高代码可读性:统一的命名风格", "便于识别:OpCode一眼就能识别出来", "与Rust常量命名一致:Rust常量也使用UPPER_CASE" ], "alternatives": [ { "option": "保持PascalCase", "pros": ["符合Rust enum variant命名惯例"], "cons": ["不符合区块链行业标准", "与EVM不一致"], "rejected_reason": "行业标准更重要" }, { "option": "使用snake_case", "pros": ["符合Rust函数命名惯例"], "cons": ["不符合区块链行业标准", "OpCode不是函数"], "rejected_reason": "OpCode是常量,不是函数" } ], "impact": { "scope": "需要修改162个OpCode定义", "files_affected": [ "nac-udm/src/l1_protocol/nvm/opcode.rs" ], "breaking_change": false, "migration_needed": false }, "implementation": { "date": "2026-01-15", "method": "批量重命名所有OpCode定义", "verification": "运行cargo test确保所有测试通过", "result": "成功修改162个OpCode,所有测试通过" }, "related_files": [ "nac-udm/src/l1_protocol/nvm/opcode.rs" ], "related_principles": [ "ARCH_002" ], "lessons_learned": [ "命名规范要在项目早期确定", "遵循行业标准比遵循语言惯例更重要", "统一的命名风格提高代码可维护性" ], "tags": [ "naming_convention", "opcode", "nvm", "coding_standard" ] }