Files
2026-06-03 18:17:37 +08:00

64 lines
3.3 KiB
Markdown
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.
# 八字代码命名规则
## 总原则
- 简体中文是概念主键;英文显示名和代码名是派生字段。
- 用户可见文本优先用 `terms.md``标准英文`,例如 `Favourable Element`
- 代码 identifier 优先用 `terms.md``代码名`,例如 `favorableElement`
- 项目内已有统一拼写时先保持一致;没有统一拼写时,代码默认美式 spelling,显示文本可保留书中英式 spelling。
- 类型名用 PascalCase`HeavenlyStem``EarthlyBranch``FiveElement`
- 变量、字段、函数用 camelCase:`dayMaster``luckPillar``getDayMaster()`
- 枚举值建议用稳定拼音或大写常量:`jia`/`JIA``zi`/`ZI`,避免把 enum value 写成解释句。
## 高风险混淆
| 中文 | 正确用法 | 避免 | 原因 |
|---|---|---|---|
| 日主 | `dayMaster` | `dayOwner`, `dayLord`, `sunOwner` | 八字固定术语是 Day Master |
| 天干 | `heavenlyStem` | `skyStem`, `celestialTrunk` | Heavenly Stem 是标准术语 |
| 地支 | `earthlyBranch` | `groundBranch`, `terrestrialBranch` | Earthly Branch 是标准术语 |
| 大运 | `luckPillar` | `fortuneColumn`, `bigLuck` | 书中使用 Luck Pillar |
| 用神 | `usefulGod` | `useGod` | Useful God 是术语,不是动词短语 |
| 有利元素 | `favorableElement` | `luckyElement`, `goodElement` | 表示平衡元素,不只是好运元素 |
| 冲 | `clash` | `crash`, `rush` | `crash` 在程序里会误读为崩溃 |
| 金 | `metal` | `gold` | 五行金通常是 Metal,不是黄金 |
| 阴阳 | `yin`/`yang``polarity` | `negative`/`positive` | 阴阳不是正负数 |
## Review 流程
1. 先找项目中已有的 BaZi 词汇:`bazi``stem``branch``pillar``luck``god``wealth``resource``officer`
2. 对照 `terms.md``代码名`,列出不一致项。
3. 优先修正公共 API、数据库字段、模型属性、文件名和 UI label。
4. 如果发现一个中文概念有多个英文名,选择一个保留,其余写迁移说明。
5. 如果发现英文名可能对应多个中文概念,不要直接重命名;先补 `pending-terms.md`
## 输出格式
命名 review 应该直接给替换建议:
```text
path/to/file.ts:42 dayOwner -> dayMaster
原因:日主的标准术语是 Day Master,代码名为 dayMaster。
```
需要批量改名时,先列影响面:
```text
dayOwner appears in API response fields and tests; rename requires migration.
skyStem appears only in local variables; safe to replace with heavenlyStem.
```
## 可接受的项目差异
- 如果项目已经全部使用 `favourableElement`,可以保持英式拼写,但不要和 `favorableElement` 混用。
- 如果 enum 已经使用中文字符值,例如 `stem: "甲"`,可以保留;代码侧仍应把类型命名为 `HeavenlyStem`
- 如果 UI 面向中文用户,label 可以用中文,但代码仍应使用 approved code name。
- 如果系统同时支持紫微斗数,不要复用 BaZi 的 `chart``pillar``star` 类型名,避免跨体系污染。
## 什么时候不要自动改
- `用神``喜神``忌神` 在不同流派和层级中含义可能不同。
- `透干``通根``合化` 牵涉具体算法定义。
- `空亡``神煞``格局` 类术语需要先确认项目采用的体系。
- 已发布 API、数据库列、序列化字段需要兼容策略,不应只改源代码 identifier。