NAC_Blockchain/memory/decisions/D001_OpCode_Naming.json

91 lines
2.4 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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"
]
}