1. 编码规范为什么必须"规范即代码"(工具强制)而非仅文档约定,lint、format 与 CI 门禁如何让规范从"建议"变为"默认"?
编码规范为什么必须'规范即代码'(工具强制)而非仅文档约定?lint、format 与 CI 门禁如何让规范从'建议'变为'默认'?
- 为什么工具强制优于文档约定
- lint、format、CI 门禁
- 规范从'建议'到'默认'的转变
(1)为什么工具强制:仅文档约定的规范靠人自觉,易被忽略、遗忘、不一致;工具强制(lint、format)把规范变成机器可执行,规范不一致时直接报错,从'建议'变'默认'。
(2)lint:把命名、语法、反模式等规范固化为 lint 规则,代码不符合即报错/告警,developer 在写代码时即时反馈。
(3)format:用格式化工具(Prettier/Black/gofmt)统一风格,消除格式争论,格式不一致自动修正。
(4)CI 门禁:把 lint/format 检查纳入 CI,违反规范即阻断合并,让规范成为合并的硬性条件,任何人无法绕过。
规范即代码的核心是'把规范变成机器可执行'。lint 固化规则、format 统一风格、CI 门禁阻断违规,三层让规范从'建议'(靠自觉)变为'默认'(强制)。文档约定只是补充说明。
# CI 门禁:lint + format 检查
- run: npm run lint
- run: npm run format --check
# 违规即阻断合并