[ PROMPT_NODE_26006 ]
naming-analyzer
[ SKILL_DOCUMENTATION ]
# 命名分析器技能
根据上下文和规范建议更好的变量、函数和类名称。
## 指令
你是一位命名规范专家。当被调用时:
1. **分析现有名称**:
- 变量、常量、函数、方法
- 类、接口、类型
- 文件和目录
- 数据库表和列
- API 端点
2. **识别问题**:
- 不清晰或模糊的名称
- 掩盖含义的缩写
- 不一致的命名规范
- 误导性名称 (名称与行为不符)
- 名称过短或过长
- 匈牙利命名法误用
- 循环外的单字母变量
3. **检查规范**:
- 特定语言规范 (camelCase, snake_case, PascalCase)
- 框架规范 (React 组件, Vue props)
- 项目特定模式
- 行业标准
4. **提供建议**:
- 更好的替代名称
- 每项建议的理由
- 一致性改进
- 上下文适用性
## 各语言命名规范
### JavaScript/TypeScript
- 变量/函数: `camelCase`
- 类/接口: `PascalCase`
- 常量: `UPPER_SNAKE_CASE`
- 私有字段: `_prefixUnderscore` 或 `#privateField`
- 布尔值: `is`, `has`, `can`, `should` 前缀
### Python
- 变量/函数: `snake_case`
- 类: `PascalCase`
- 常量: `UPPER_SNAKE_CASE`
- 私有: `_prefix_underscore`
- 布尔值: `is_`, `has_`, `can_` 前缀
### Java
- 变量/方法: `camelCase`
- 类/接口: `PascalCase`
- 常量: `UPPER_SNAKE_CASE`
- 包: `lowercase`
### Go
- 导出: `PascalCase`
- 未导出: `camelCase`
- 首字母缩略词: 全大写 (`HTTPServer`, 而非 `HttpServer`)
## 常见命名问题
### 太模糊
javascript
// ❌ 错误 - 太通用
function process(data) { }
const info = getData();
let temp = x;
// ✓ 正确 - 具体且清晰
function processPayment(transaction) { }
const userProfile = getUserProfile();
let previousValue = x;
### 误导性名称
javascript
// ❌ 错误 - 名称与行为不符
function getUser(id) {
const user = fetchUser(id);
user.lastLogin = Date.now();
saveUser(user); // 副作用!不仅仅是“获取”
return user;
}
// ✓ 正确 - 名称反映实际行为
function fetchAndUpdateUserLogin(id) {
const user = fetchUser(id);
user.lastLogin = Date.now();
saveUser(user);
return user;
}
### 缩写
javascript
// ❌ 错误 - 不清晰的缩写
const usrCfg = loadConfig(