91 lines
2.4 KiB
JSON
91 lines
2.4 KiB
JSON
{
|
||
"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"
|
||
]
|
||
}
|