【浅谈】如何优雅的使用AI辅助代码工具—使用统一规范及自动更新规范机制来提升个人及团队效率(一)
AI辅助代码书写工具规范文件文档系列文章相关项目
规则优先级说明优先级分级🔴 高优先级规则(必须遵守)项目公用规则Git相关规则编译器/IDE报错处理核心技术规范
🟡 中优先级规则(冲突时参考)代码书写格式规则Autotest规则(流程部分)代码语法规范
🟢 低优先级规则(参考使用)一般性建议和规范工具配置建议
冲突处理原则优先级层次表具体冲突解决规则特殊场景处理
文件路径下代码编辑规则:高优先级规范(必须遵守)中优先级规范(Git提交流程)
文本版本控制规则(不依赖git):高优先级规范(必须遵守)中优先级规范(版本管理)
Git提交远程仓库前公用规则:高优先级规范(必须遵守)中优先级规范(仓库同步)
语法规范自动调整公用规则:高优先级规范(必须遵守)
规则优先级漏洞逻辑自动调整规则:高优先级规范(必须遵守)
代码语法规范编写shell脚本,应该遵循Google Shell编码风格指南:编写Python代码,应该遵循大厂Python编码风格规范:编写C语言代码,应该遵循华为C语言编程规范:编写Rust代码,应该遵循企业级编程规范:编写Go代码,应该遵循官方编码规范与最佳实践:编写C++代码,应该遵循Google C++风格指南:编写JavaScript代码,应该遵循Google JavaScript风格指南:编写HTML/CSS代码,应该遵循Google HTML/CSS风格指南:Markdown文档写作规范:编写Java代码,应该遵循Google Java风格指南:日志记录规范及最佳实践:规则优先级层次🔴 高优先级规则(必须遵守)🟡 中优先级规则(建议遵循)🟢 低优先级规则(参考使用)
🛠️ 规则详细说明1. 项目代码修改规则核心原则用法说明特色优势
2. 临时文件管理规则核心原则用法说明特色优势
3. 文件路径使用规则核心原则用法说明特色优势
4. 文本版本控制规则核心原则用法说明特色优势
5. Git提交远程仓库前规则核心原则用法说明特色优势
6. 语法规范自动调整规则核心原则用法说明特色优势
7. 规则优先级漏洞逻辑自动调整规则核心原则用法说明特色优势
🎨 规则特色总结1. 智能化管理2. 标准化规范3. 灵活可扩展4. 安全可靠5. 实用高效
🔧 实际应用示例场景1:新项目初始化场景2:代码开发过程场景3:代码提交前场景4:规则更新
📈 效益分析质量提升效率改进成本节约
🚀 未来发展方向短期目标长期愿景
📞 支持和反馈获取帮助提供反馈
项目使用说明
AI项目规则管理系统 – 使用说明🚀 快速开始1. 查看项目状态2. 立即同步规则文件3. 拉取最新规则4. 查看规则文件状态
📋 主要功能自动同步功能规则管理功能
🔧 配置文件同步配置 (sync_config.json)规则配置 (rule_config.json)
📁 文件结构🎯 规则优先级说明🔴 高优先级(必须遵守)🟡 中优先级(建议遵循)🟢 低优先级(参考使用)
📝 常用命令规则拉取器自动同步器
🔍 日志查看查看同步日志查看规则更新日志实时监控日志
⚠️ 注意事项🆘 常见问题Q: 同步失败怎么办?Q: 如何修改同步间隔?Q: 如何关闭自动同步?Q: 规则文件冲突怎么办?
📞 支持
AI辅助代码书写工具规范文件文档
系列文章
【浅谈】如何优雅的使用AI辅助代码工具—使用统一规范及自动更新规范机制来提升个人及团队效率(一)
【浅谈】如何优雅的使用AI辅助代码工具—使用统一规范及自动更新规范机制来提升个人及团队效率(二)
【浅谈】如何优雅的使用AI辅助代码工具—使用统一规范及自动更新规范机制来提升个人及团队效率(完)
相关项目
https://github.com/aspnmy/ai_project_rules.git规则文件直接地址:https://raw.githubusercontent.com/aspnmy/ai_project_rules/refs/heads/master/project_rules.md如果对我的这套AI辅助代码统一规范有兴趣的,只需要
curl -sSL https://raw.githubusercontent.com/aspnmy/ai_project_rules/refs/heads/master/project_rules.md
到本地AI-IDE的规则目录下即可,无需git仓库
规则优先级说明
优先级分级
🔴 高优先级规则(必须遵守)
项目公用规则
除代码规范外的所有用户要求增加的规则适用于整个项目的通用性规则Git提交远程仓库前公用规则(代码检查、默认仓库配置)语法规范自动调整公用规则(IDE规范优先、版本管理)规则优先级漏洞逻辑自动调整规则(漏洞检查、冲突处理)
Git相关规则
涉及git提交、清理中间文件、非git依赖文件版本控制、文件更名规范等版本控制和代码管理相关规则
编译器/IDE报错处理
语法错误:必须立即修复,优先级高于所有其他规则编译错误:必须解决,优先级高于代码规范代码风格警告:遵循代码书写格式规则(中优先级)静态分析建议:参考使用,遵循一般性建议(低优先级)
核心技术规范
字符编码规范(UTF-8、BOM头等)文件路径规范(相对路径要求)安全相关规范(禁止SUID/SGID等)
🟡 中优先级规则(冲突时参考)
代码书写格式规则
以代码规范为主,但当与IDE提示冲突时,优先遵循IDE提示格式一致性要求例外:当IDE风格建议与项目既定风格冲突时,保持项目风格一致性
Autotest规则(流程部分)
测试流程规范、测试用例设计技术规范部分(编码、文件格式)提升至高优先级文件命名冲突时,以语法规范要求为准
代码语法规范
各编程语言的具体语法要求命名约定、格式要求等
🟢 低优先级规则(参考使用)
一般性建议和规范
最佳实践建议和优化建议代码可读性建议性能优化建议
工具配置建议
推荐工具配置非强制性规范要求
冲突处理原则
优先级层次表
| 层次 | 规则类型 | 处理原则 |
|---|---|---|
| 最高 | IDE语法/编译错误 | 必须立即修复 |
| 高 | 项目公用规则、Git规则、核心技术规范 | 必须遵守 |
| 中 | 代码格式、语法规范、测试流程 | 冲突时参考,可协商调整 |
| 低 | 一般性建议、工具配置 | 参考使用,灵活处理 |
具体冲突解决规则
| 冲突类型 | 处理原则 | 依据优先级 |
|---|---|---|
| IDE语法错误 vs 任何规则 | 修复语法错误 | 最高 |
| IDE编译错误 vs 代码规范 | 解决编译错误 | 最高 |
| IDE风格警告 vs 代码格式规则 | 遵循代码格式规则 | 中 |
| 公用规则 vs 代码规范 | 公用规则优先 | 高 |
| Git规则 vs 文本版本控制 | Git规则优先 | 高 |
| Autotest技术规范 vs 语法规范 | 技术规范优先 | 高 |
| Autotest流程 vs 测试相关语法规范 | 语法规范优先 | 中 |
| 具体规则 vs 通用规则 | 具体规则优先 | 按层次确定 |
| IDE规范 vs 语法规范 | IDE规范优先 | 高(语法规范自动调整规则) |
| 规则更新 vs 现有规则 | 先检查漏洞再更新 | 高(规则优先级漏洞逻辑自动调整规则) |
特殊场景处理
紧急修复场景:允许临时违反中低优先级规则,但需添加TODO注释用户明确要求:用户明确指定的规则修改要求优先级高于对应层次的默认规则规则更新:新添加的规则默认继承其分类的优先级,特殊情况单独标注
# 项目规则详细说明
## 1、项目代码修改规则
* 所有项目代码修改,必须先提交到git仓库,然后再进行修改。
* 当需要修改的代码本身是适用于所有平台的时,直接修改即可。
* 当项目代码本身是适配linux系统时,需要修改代码了独立支持win或者macOS时,必须先提交当前未修改前的版本到git仓库,然后再新建新分支,命名规则如下 dev-platform,例如 dev-win,然后再进行修改;
* 如果只是简单的修改,例如修改文件路径,那么可以直接在master分支上修改;如果需要修改的分支是master或者main分支,需要先把本地的提交新建一个分支,然后从远程拉取master或main分支最后个版本代码;
* 第三步再以主分支建立dev-platform分支然后再进行修改。严禁直接对master或main分支进行直接修改
## autotest规则:
### 高优先级规范(必须遵守)
* **技术规范要求**:
- 日志文件必须使用utf-8编码,且必须在文件开头包含BOM头(字节顺序标记)🔴
- 日志文件命名必须满足"临时文件管理规则"中关于temp-${filename}的命名规范🔴
- 测试脚本必须支持跨平台兼容性(Windows、macOS、Linux)🔴
### 中优先级规范(测试流程)
* 每次编写代码以后,配套编写一个autotest脚本,用于测试代码的正确性。特别是代码中包含用户条件选择的部分,需要测试不同的选择情况。例如:
1. 测试用户输入不同的选项,验证脚本是否按照预期执行。
2. 测试用户输入无效的选项,验证脚本是否能够正确处理错误情况。
3. 测试用户输入空值,验证脚本是否能够正确处理边界情况。
4. 测试用户输入特殊字符,验证脚本是否能够正确处理特殊情况。
5. 测试用户输入非预期的输入,验证脚本是否能够正确处理异常情况。
6. 测试脚本在不同操作系统上的兼容性,例如Windows、macOS和Linux。
7. 每个测试用例都应该有一个唯一的名称,用于标识测试的具体场景。
8. 测试用例应该覆盖脚本的所有主要功能和边界情况。
9. 测试用例应该是可重复执行的,确保每次运行结果一致。
10. 测试用例应该在不同的时间点和环境下执行,以模拟真实的使用场景。
11. 每个测试步骤都要用输出日志记录,包括用户输入、脚本执行结果和预期结果。
12. 测试用例应该包含必要的前置条件,例如创建测试文件、设置环境变量等。
13. autotest脚本输出的日志文件要和测试用例的名称保持一致,例如 test1.log, test2.log 等。
14. 每个测试用例的日志文件,都要包含测试用例的名称、测试步骤、用户输入、脚本执行结果和预期结果等信息。
## 临时文件管理规则:
### 高优先级规范(必须遵守)
* **命名规范**:
- 因自动化指令没有人工确认而新增的正式文件备份文件,必须使用 temp-${filename} 前缀命名🔴
- 例如:install-wsl2.py 的临时备份文件应命名为 temp-install-wsl2.py🔴
* **版本控制**:
- 严禁将temp-前缀的临时文件提交到版本控制系统🔴
- 调试完成更新到主文件或提交git到远程仓库前,必须清理掉temp-前缀的临时文件🔴
## 文件路径使用规则:
### 高优先级规范(必须遵守)
* **路径规范**:
- 所有涉及文件调用的代码,无论是什么操作系统,都必须使用相对路径🔴
- 必须在代码中获取本文件所在路径作为基点,来加载上级文件或下级文件🔴
- 禁止使用绝对路径加载任何资源文件🔴
* **示例代码模式**:
```python
import os
current_dir = os.path.dirname(os.path.abspath(__file__))
config_path = os.path.join(current_dir, 'config', 'settings.json')
文件路径下代码编辑规则:
高优先级规范(必须遵守)
文件管理:
在每个路径下编辑代码时,必须在此路径下新增一个rules/files_rules.md文件🔴files_rules.md文件用于记录项目生成的正式代码文件、库文件的相对路径🔴 文件格式规范:
[生产代码]
true-${filename}
[临时生成]
temp-${filename}
[测试代码]
test-${filename}
autotest--${filename}
中优先级规范(Git提交流程)
提交前清理:
提交git远程仓库前,必须先将[生产代码]下的所有true-
f
i
l
e
n
a
m
e
更新成
{filename}更新成
filename更新成{filename}🟡清理[临时生成]下面所有的temp-${filename},再进行同步🟡rules/files_rules.md文件也需要同步更新,删除所有temp-
f
i
l
e
n
a
m
e
和
t
e
s
t
−
{filename}和test-
filename和test−{filename},并更新[生产代码]下的
f
i
l
e
n
a
m
e
,保持与
[
生产代码
]
下的
{filename},保持与[生产代码]下的
filename,保持与[生产代码]下的{filename}一致🟡 全面清理:
如果用户指令是iscleanfull或全面清理,必须全部清除[临时生成]和[测试代码]下面的文件🟡
文本版本控制规则(不依赖git):
高优先级规范(必须遵守)
版本控制机制:
启用简单的文本版本控制机制,使用**-
f
i
l
e
n
a
m
e
−
d
{filename}-d
filename−d{num+1}格式进行版本管理🔴 文件命名规则:
首次编辑文件:**-${filename}-d1(基础版本)🔴后续完全不同业务方向:**-
f
i
l
e
n
a
m
e
−
d
2
、
∗
∗
−
{filename}-d2、**-
filename−d2、∗∗−{filename}-d3等,依次递增🔴关联性功能扩展:使用temp-${filename}临时文件🔴
中优先级规范(版本管理)
版本用途规范:
**-${filename}-d1:开发Windows系统下执行业务的代码🟡**-${filename}-d2:开发Debian系统下执行业务的代码(完全不同方向)🟡temp-
f
i
l
e
n
a
m
e
:与
∗
∗
−
{filename}:与**-
filename:与∗∗−{filename}-d1有关联性的功能扩展🟡 文件合并规则:
temp-
f
i
l
e
n
a
m
e
测试通过后,必须合并回对应的
∗
∗
−
{filename}测试通过后,必须合并回对应的**-
filename测试通过后,必须合并回对应的∗∗−{filename}-d1中🟡确保代码复用,避免已存在代码被浪费🟡 适用范围:此规则在[生产代码]、[临时生成]、[测试代码]中全面启用🟡清理规则:用户未给出清理指令或提交git远程仓库前,**-
f
i
l
e
n
a
m
e
−
d
{filename}-d
filename−d{num}文件应予以保留🟡
Git提交远程仓库前公用规则:
高优先级规范(必须遵守)
代码检查规范:
同步代码到远程仓库前,必须先按照规则文件中的语法规范对代码进行检查🔴如果IDE报错,以IDE优化建议为准进行修正🔴检查并修正后,再进行同步到远程仓库🔴 默认仓库配置:
用户没有输入”同步私有库”指令前,默认只提交到github🔴默认新发布的仓库为私有仓库🔴
中优先级规范(仓库同步)
私有库同步规则:
用户输入指令”同步私有库”,则提交到私有库中🟡如果私有库中已经存在同名仓库就更新🟡如果分支名不一致则新建分支🟡如果私有库中不存在同名仓库则发布🟡私有库默认全部发布为私有仓库🟡
语法规范自动调整公用规则:
高优先级规范(必须遵守)
IDE规范优先:
如果编写代码中IDE提示规范高于目前语法规范,按IDE要求修改代码规范🔴修改后需要同步修改目前的语法规范🔴 版本管理:
考虑到语法版本的问题,在修改语法规范时需要表明此语法修改对应的版本号🔴
规则优先级漏洞逻辑自动调整规则:
高优先级规范(必须遵守)
漏洞检查:
每次修改和更新此规则文件后,必须先检查一遍规则优先级漏洞🔴如果出现冲突或逻辑漏洞,先进行优化操作重新调整🔴
代码语法规范
编写shell脚本,应该遵循Google Shell编码风格指南:
* **仅使用Bash**:可执行文件必须以`#!/bin/bash`开头,确保跨机器一致性
* **小型工具导向**:Shell只适用于小型实用工具或简单包装脚本,超过100行应考虑用结构化语言重写
* **文件规范**:
* 可执行文件强烈推荐无扩展名,库文件必须使用`.sh`扩展名
* 禁止使用SUID/SGID,如需提升权限使用sudo
* **环境要求**:所有错误消息必须输出到STDERR,便于区分正常状态和实际问题
* **注释标准**:
* 文件头部必须包含内容概述的顶级注释
* 所有非简短函数必须注释,包含描述、全局变量、参数、输出、返回值
* **代码格式**:使用2个空格缩进,限制行长,保持清晰代码结构
* **特性使用**:优先使用`[[...]]`而不是`[...]`或test,正确使用bash数组
* **命名约定**:函数名使用小写加下划线,环境变量使用大写,其他使用小写
* **最佳实践**:检查所有命令返回值,函数内部使用local声明局部变量
编写Python代码,应该遵循大厂Python编码风格规范:
* **编码风格**:
* **缩进**:必须使用4个空格,禁止使用tab键
* **行长**:每行最多不超过120个字符
* **空白符**:操作符前后需要空格,逗号后需要空格
* **括号**:续行时优先使用括号,定界符需要合理对齐
* **空行**:类之间两个空行,方法之间一个空行
* **命名约定**:
* **变量函数**:小写字母,单词间用下划线
* **类名**:首字母大写的驼峰命名
* **常量**:全大写字母,单词间用下划线
* **私有属性**:前缀单下划线
* **注释规范**:
* **文档字符串**:模块、类、公共方法必须有docstring
* **行注释**:#后空一格,与代码间隔两个空格
* **块注释**:完整句子,首字母大写,句末有句号
* **编码要求**:
* **导入顺序**:标准库、第三方库、本地库
* **避免通配符**:禁止使用`from module import *`
* **异常处理**:捕获具体异常类型,避免裸except
* **布尔运算**:避免隐式布尔转换,使用`is None`判断
* **字符串**:项目中统一使用单引号或双引号
* **工具配置**:
* **flake8**:代码风格检查
* **pylint**:静态代码分析
* **black**:代码格式化工具
* **类型提示**:为公共API推荐添加类型提示
编写C语言代码,应该遵循华为C语言编程规范:
* **总体原则**:
* **清晰第一**:代码首先是给人读的,必须易于维护和重构
* **简洁为美**:代码越简洁越易于理解,废弃代码要及时清除
* **风格一致**:与代码原有风格保持一致,产品内统一风格
* **头文件规范**:
* 头文件设计体现系统设计,避免不合理布局导致编译时间过长
* 头文件适合放置接口声明,不适合放置实现
* 减少文件间依赖关系,避免循环依赖
* **函数规范**:
* 函数应当职责单一,一个函数仅完成一件功能
* 新增函数不超过50行,避免函数过长
* 函数命名使用小写字母,单词间用下划线分隔
* **标识符命名**:
* 通用命名:不使用单词缩写,不得使用汉语拼音
* 文件命名:使用小写字母,单词间用下划线
* 变量命名:使用小写字母,单词间用下划线
* 宏命名:全大写字母,单词间用下划线
* **变量使用**:
* 防止局部变量与全局变量同名
* 变量应当初始化后再使用
* 减少全局变量的使用
* **质量保证**:
* 代码必须易于测试,具备可测试性
* 代码应当具备可移植性
* 注重程序效率,但可读性优先于性能
* **注释规范**:
* 文件头部必须包含内容概述的顶级注释
* 函数注释包含功能描述、参数说明、返回值说明
* 优秀的代码可以自我解释,避免过度注释
* **排版格式**:
* 使用统一的缩进风格(推荐4个空格)
* 保持代码行长度适中(推荐不超过80字符)
* 合理使用空行分隔代码块
编写Rust代码,应该遵循企业级编程规范:
* **总体原则**:
* **内存安全**:充分利用所有权和借用检查器,避免unsafe代码
* **并发安全**:使用Rust的并发原语,避免数据竞争
* **性能优化**:零成本抽象,编译时优化优先于运行时
* **代码风格规范**:
* **缩进**:使用4个空格,禁止使用tab键
* **行长**:每行最多不超过100个字符
* **命名约定**:
* 变量函数:小写字母,单词间用下划线(snake_case)
* 类型trait:首字母大写的驼峰命名(CamelCase)
* 常量:全大写字母,单词间用下划线(SCREAMING_SNAKE_CASE)
* **内存管理规范**:
* **所有权原则**:明确资源所有权,避免内存泄漏
* **借用规则**:合理使用不可变借用和可变借用
* **智能指针**:优先使用Box、Rc、Arc等标准智能指针
* **unsafe代码**:严格控制unsafe代码块,必须提供安全封装
* **并发编程规范**:
* **线程安全**:使用Send和Sync trait保证线程安全
* **并发原语**:优先使用标准库的Mutex、RwLock、Channel
* **异步编程**:使用async/await模式,避免阻塞操作
* **错误处理规范**:
* **Result类型**:所有可能失败的操作返回Result
* **错误传播**:使用?运算符进行错误传播
* **自定义错误**:实现std::error::Error trait
* **panic处理**:仅用于不可恢复的错误状态
* **工程化实践**:
* **模块化设计**:合理划分模块,控制模块间依赖
* **依赖管理**:使用Cargo.toml精确控制依赖版本
* **测试覆盖**:单元测试、集成测试、文档测试全覆盖
* **文档规范**:公共API必须有文档注释,包含示例代码
* **工具配置**:
* **Clippy**:使用Clippy进行静态代码分析
* **rustfmt**:使用rustfmt进行代码格式化
* **Cargo审计**:定期审计依赖安全漏洞
* **性能分析**:使用cargo bench进行基准测试
编写Go代码,应该遵循官方编码规范与最佳实践:
* **代码格式化**:
* **强制格式化**:所有Go代码必须使用gofmt格式化,这是社区强制约定
* **格式化工具**:使用go fmt、gofmt、goimports进行代码格式化
* **导入管理**:使用goimports自动管理导入包,按标准库、第三方库、本地包分组
* **命名规范**:
* **包名**:小写单词,简洁明了,避免使用util、common等通用名词
* **导出函数**:首字母大写,使用驼峰命名(CamelCase)
* **私有函数**:首字母小写,使用驼峰命名
* **常量**:驼峰命名,不使用下划线,如MaxRetryCount
* **接口命名**:单方法接口使用-er后缀,如Reader、Writer
* **避免命名**:禁止使用下划线和混合大小写,偏好简短变量名
* **包设计原则**:
* **包注释**:完整句子,以包名开头,说明包的用途
* **导入分组**:标准库、第三方库、本地包三个分组
* **接口定义**:接口定义在使用方包中,不在实现方包中
* **依赖管理**:减少包间依赖,避免循环依赖
* **错误处理模式**:
* **错误处理**:永远不要忽略错误,必须处理所有错误
* **错误包装**:使用fmt.Errorf和%w动词包装错误,保留错误链
* **错误优先**:错误处理优先,减少代码嵌套层级
* **错误返回**:错误总是函数的最后一个返回值
* **函数与方法设计**:
* **函数长度**:保持函数签名简洁,避免过多参数
* **接收器命名**:简短且一致,通常使用类型名的首字母
* **值接收器**:不修改接收器时使用值接收器
* **指针接收器**:需要修改接收器时使用指针接收器
* **多返回值**:合理使用多返回值,错误总是最后一个
* **并发编程规范**:
* **goroutine生命周期**:明确定义goroutine的退出条件,避免goroutine泄漏
* **context使用**:使用context控制goroutine的超时和取消
* **channel通信**:通过channel进行goroutine间通信,避免共享内存
* **并发原语**:合理使用sync包中的并发原语
* **注释规范**:
* **导出注释**:所有导出的名称必须有注释
* **注释格式**:注释应该是完整的句子,以被注释的名称开头
* **包注释**:包级别的注释必须完整描述包的用途
* **函数注释**:函数注释应描述功能、参数和返回值
* **测试规范**:
* **测试文件**:测试文件以_test.go结尾
* **测试函数**:测试函数以Test开头,后跟被测试的函数名
* **表格驱动测试**:使用表格驱动测试模式,覆盖多种测试场景
* **测试命名**:测试用例应有清晰的名称,描述测试的具体场景
编写C++代码,应该遵循Google C++风格指南:
* **头文件规范**:
* **自给自足**:头文件应该能够自给自足,包含所有必要的依赖
* **防护符**:使用#define防护符防止重复包含
* **导入顺序**:合理的#include路径和顺序
* **前向声明**:适当使用前向声明减少编译依赖
* **作用域管理**:
* **命名空间**:合理使用命名空间避免命名冲突
* **内部链接**:使用匿名命名空间或static关键字
* **局部变量**:在最小作用域内声明变量,延迟初始化
* **类设计规范**:
* **构造函数**:构造函数应该初始化所有成员变量
* **隐式转换**:避免隐式类型转换,使用explicit关键字
* **继承**:优先使用组合而非继承,继承时使用virtual析构函数
* **运算符重载**:谨慎使用,保持语义清晰
* **函数规范**:
* **输入输出**:优先使用返回值而非输出参数
* **函数长度**:保持函数简短,职责单一
* **函数重载**:避免函数重载导致歧义
* **缺省参数**:谨慎使用缺省参数
* **命名约定**:
* **通用规则**:使用描述性名称,避免缩写
* **文件命名**:使用小写字母和下划线
* **类型命名**:使用大写字母开头的驼峰命名
* **变量命名**:使用小写字母和下划线
* **常量命名**:使用k前缀和大写字母
* **函数命名**:使用大写字母开头的驼峰命名
* **命名空间**:使用小写字母和下划线
* **注释规范**:
* **文件注释**:包含法律公告和文件内容描述
* **类注释**:描述类的用途和设计思路
* **函数注释**:描述功能、参数、返回值
* **实现注释**:解释复杂的实现细节
* **TODO注释**:标记需要后续处理的事项
* **格式要求**:
* **行长度**:限制在80字符以内
* **非ASCII字符**:谨慎使用,优先使用英文
* **缩进**:使用2个空格,不使用制表符
* **函数格式**:返回类型单独一行,函数名和参数列表同行
* **垂直留白**:合理使用空行分隔逻辑块
编写JavaScript代码,应该遵循Google JavaScript风格指南:
* **语言规范**:
* **var关键字**:避免使用var,推荐使用let和const
* **常量定义**:使用const定义常量,明确常量值和指针
* **分号使用**:强制使用分号,避免自动分号插入问题
* **嵌套函数**:合理使用嵌套函数,避免块内函数声明
* **异常处理**:使用自定义异常,避免静默捕获异常
* **this关键字**:明确this绑定,避免隐式绑定问题
* **for-in循环**:配合hasOwnProperty使用,避免原型链污染
* **风格规范**:
* **命名规范**:
* **属性和方法**:使用驼峰命名法
* **方法和函数参数**:语义化命名,避免单字母参数
* **getter/setter**:使用标准的get/set前缀
* **命名空间**:使用小写字母和点分隔
* **代码格式**:
* **大括号风格**:使用K&R风格
* **数组和对象初始化**:使用简洁的字面量语法
* **函数参数**:合理换行,保持可读性
* **缩进和空行**:使用2个空格缩进,合理使用空行
* **可见性**:
* **私有和保护字段**:使用下划线前缀约定
* **JavaScript类型**:明确类型定义和使用
* **类型转换**:显式类型转换,避免隐式转换
* **注释规范**:
* **JSDoc语法**:使用标准的JSDoc注释格式
* **文件注释**:描述文件用途和主要功能
* **类注释**:描述类的职责和用法
* **方法注释**:描述功能、参数、返回值
* **属性注释**:描述属性的用途和类型
* **类型系统**:
* **类型定义**:使用JSDoc进行类型注解
* **可为空类型**:明确标识可为空的参数和属性
* **模板类型**:合理使用泛型和模板类型
编写HTML/CSS代码,应该遵循Google HTML/CSS风格指南:
* **HTML样式规则**:
* **文档类型**:使用HTML5文档类型声明
* **HTML合法性**:确保HTML代码通过W3C验证
* **语义化**:使用具有语义含义的HTML标签
* **多媒体降级**:为多媒体内容提供降级方案
* **关注点分离**:结构和样式分离,避免内联样式
* **实体引用**:合理使用HTML实体引用
* **可选标签**:明确哪些标签可以省略
* **HTML格式规则**:
* **常规格式化**:标签正确嵌套和缩进
* **HTML引号**:属性值使用双引号
* **属性顺序**:按照标准顺序排列属性
* **布尔属性**:简化布尔属性的书写
* **CSS样式规则**:
* **CSS有效性**:确保CSS通过W3C验证
* **id与class命名**:使用有意义的、语义化的命名
* **选择器类型**:合理使用不同类型的选择器
* **简写属性**:适当使用CSS简写属性
* **0与单位**:数值为0时省略单位
* **十六进制**:统一使用小写十六进制颜色值
* **前缀选择器**:合理使用浏览器前缀
* **Hacks使用**:避免使用CSS hacks,优先使用标准方法
* **CSS格式规则**:
* **声明顺序**:按照逻辑顺序排列CSS声明
* **缩进格式**:使用一致的缩进风格
* **声明结束**:每个声明后使用分号
* **代码块分离**:合理使用空行分隔代码块
* **CSS引号**:字体名称等使用引号
Markdown文档写作规范:
* **全局规范**:
* 文件必须使用.md作为后缀(小写字母)
* 普通文本换行,使用行末尾2空格触发
* **标题结构格式**:
* 标题与紧贴的上下正文使用1整行换行隔开
* #号和文字之间1个空格连接
* 标题层级如下,最多6级:
* # 顶级标题 等价于 title 和 <h1>
* ## 次级标题 等价于 <h2>
* ### 3级标题 等价于 <h3>
* #### 4级标题 等价于 <h4>
* ##### 5级标题 等价于 <h5>
* ###### 6级标题 等价于 <h6>
* **加强和强调规范**:
* 统一使用 **加强 *强调格式
* 使用~~给文字添加删除线,如:~~strikethrough~~
* **代码块规范**:
* 行内代码使用1对波浪号,如:`hello world!`
* 块级代码使用3个波浪号或整体4空格缩进,且上下均用整行隔开
* **列表写法**:
* 列号1. 或者*后其后内容空格隔开
* 列表块前后整行隔开
* **其他标签规范**:
* 链接和Email:使用标准Markdown语法
* 插图:使用格式
* 引用块:使用Email-style angle brackets
* 水平分割线:三个连字符---
* 表格:使用标准Markdown表格语法,对齐通过分割线上的冒号实现
编写Java代码,应该遵循Google Java风格指南:
* **源文件基础**:
* **文件命名**:源文件以其顶级类的类名来命名,区分大小写
* **文件编码**:UTF-8编码
* **特殊字符**:空白字符、特殊转义序列、非ASCII字符规范
* **源文件结构**:
* **版权声明**:如有需要,放在文件开头
* **包声明**:包声明不换行,每行一个包
* **导入语句**:
* **不使用通配符导入**:明确导入具体类
* **导入排序**:静态导入、java包、javax包、第三方包、本地包
* **不对类使用静态导入**:避免对类本身使用静态导入
* **类声明**:
* **单一顶级类**:有且仅有一个顶级类声明
* **内容顺序**:常量、成员变量、构造函数、方法
* **格式规范**:
* **花括号**:使用K&R风格,非空块使用标准格式
* **缩进**:使用2个空格缩进
* **列限制**:每行最多100字符
* **换行**:在运算符前换行,换行后缩进至少4个空格
* **空白字符**:
* **垂直空白**:类之间、方法之间使用空行
* **水平空白**:操作符前后、逗号后使用空格
* **水平对齐**:永远不是必要的
* **命名约定**:
* **通用规则**:使用驼峰命名法,避免缩写
* **包名**:全小写,使用点分隔
* **类名**:首字母大写的驼峰命名
* **方法名**:首字母小写的驼峰命名
* **常量字段**:全大写,下划线分隔
* **非常量字段**:首字母小写的驼峰命名
* **参数名**:首字母小写的驼峰命名
* **局部变量**:首字母小写的驼峰命名
* **编程习惯**:
* **@Override**:始终使用@Override注解
* **异常处理**:不应忽略捕获的异常,必须处理
* **静态成员**:使用类名进行限定访问
* **析构方法**:不使用finalize方法
* **Javadoc规范**:
* **格式规范**:一般形式、段落、块标签
* **摘要片段**:简洁描述功能用途
* **使用位置**:所有公共API都需要Javadoc
日志记录规范及最佳实践:
* **日志基础概念**:
* **日志定义**:服务器自动创建和维护的执行活动记录
* **日志作用**:打印调试、问题定位、监控告警、用户行为审计
* **记录时机**:初始化时、异常时、业务不符时、核心动作时、第三方调用时
* **日志记录原则**:
* **隔离性**:日志输出不能影响系统正常运行
* **安全性**:日志打印不能存在逻辑异常或漏洞
* **数据安全**:不允许输出机密、敏感信息
* **可监控分析**:日志可以提供给监控系统分析
* **可定位排查**:日志信息需有意义,具有可读性
* **日志等级规范**:
* **DEBUG级别**:开发、测试阶段使用,输出详细调试信息
* **INFO级别**:生产环境正常运行信息
* **WARN级别**:可恢复的异常或需要注意的情况
* **ERROR级别**:严重错误,需要立即处理
* **强制规范**:
* **代码不允许失败**:打印日志的代码不能阻断主流程
* **禁止System.out.println()**:使用专业日志框架
* **Logger声明**:声明为private static final
* **级别开关判断**:trace/debug/info级别必须进行开关判断
* **异常处理**:捕获异常后不要使用e.printStackTrace()
* **完整异常信息**:打印异常日志要输出全部错误信息
* **禁止JSON直接转换**:不要直接用JSON工具将对象转换成String
* **避免无意义日志**:不要打印无业务上下文、无链路ID的日志
* **循环日志控制**:不要在循环中打印INFO级别日志
* **避免重复日志**:不要打印重复的日志信息
* **敏感信息保护**:避免敏感信息输出
* **大小限制**:日志单行大小必须不超过200K
* **推荐规范**:
* **英文日志**:日志语言尽量使用英文
* **方法调用日志**:重要方法记录调用日志
* **分支日志**:核心业务逻辑中每个分支首行打印日志
* **参数精简**:只打印必要的参数,不要整个对象打印
## 📚 概述
本文档详细阐述了为什么要为AI辅助代码书写工具增加规范文件,以及这些规则之间的关系、用法和特色。通过建立标准化的规则体系,我们能够确保AI生成的代码质量、一致性和可维护性。
## 🎯 为什么需要规范文件
### 1. 解决AI代码生成的痛点
#### 代码质量不一致
- **问题**: AI生成的代码风格各异,缺乏统一标准
- **解决方案**: 建立标准化的语法规范和格式要求
- **效果**: 确保所有生成的代码都遵循统一的编码风格
#### 项目结构混乱
- **问题**: AI可能生成不符合项目架构的代码
- **解决方案**: 制定明确的文件路径和项目结构规则
- **效果**: 保持项目结构的清晰和一致性
#### 版本控制困难
- **问题**: 临时文件和备份文件管理混乱
- **解决方案**: 建立严格的临时文件管理规则
- **效果**: 简化版本控制,避免不必要的文件提交
#### 跨平台兼容性
- **问题**: AI生成的代码可能在不同平台表现不一致
- **解决方案**: 制定跨平台兼容性规则
- **效果**: 确保代码在Windows、macOS、Linux上都能正常运行
### 2. 提升开发效率
#### 减少人工修正
- **问题**: 需要大量时间修正AI生成的代码
- **解决方案**: AI直接生成符合规范的代码
- **效果**: 显著减少代码审查和修正时间
#### 加速团队协作
- **问题**: 团队成员对代码风格理解不一致
- **解决方案**: 提供明确的编码标准参考
- **效果**: 提高团队协作效率,减少沟通成本
#### 简化代码审查
- **问题**: 代码审查标准不统一
- **解决方案**: 建立可量化的代码质量标准
- **效果**: 使代码审查更加客观和高效
## 🔗 规则体系架构
### 核心规则分类
```mermaid
graph TD
A[项目规则体系] --> B[高优先级规则 🔴]
A --> C[中优先级规则 🟡]
A --> D[低优先级规则 🟢]
B --> B1[语法错误处理]
B --> B2[编译错误处理]
B --> B3[核心技术规范]
B --> B4[Git提交规范]
C --> C1[代码格式规范]
C --> C2[测试流程规范]
C --> C3[文件命名规范]
C --> C4[版本管理规范]
D --> D1[性能优化建议]
D --> D2[可读性建议]
D --> D3[工具配置建议]
规则优先级层次
🔴 高优先级规则(必须遵守)
强制性: 违反会导致代码无法运行或严重问题即时处理: 必须立即修复,优先级最高范围: 语法错误、编译错误、安全规范
🟡 中优先级规则(建议遵循)
规范性: 违反会影响代码质量和可维护性渐进改进: 可以在后续迭代中逐步完善范围: 代码格式、命名规范、测试流程
🟢 低优先级规则(参考使用)
优化性: 违反不会直接影响功能,但影响代码质量灵活应用: 根据具体情况选择性采用范围: 性能优化、可读性改进、工具配置
🛠️ 规则详细说明
1. 项目代码修改规则
核心原则
高优先级 🔴:
├── 所有代码修改必须先提交到git仓库
├── 平台适配需要新建dev-platform分支
└── 严禁直接修改master/main分支
用法说明
提交前备份: 任何修改前都要确保代码已提交分支管理: 平台相关修改使用独立分支主分支保护: master/main分支只能合并,不能直接修改
特色优势
版本安全: 确保任何时候都可以回滚协作友好: 支持多人同时开发不同平台版本历史清晰: 保持清晰的代码变更历史
2. 临时文件管理规则
核心原则
高优先级 🔴:
├── 临时文件必须使用temp-${filename}前缀
├── 严禁将临时文件提交到版本控制
└── 调试完成后必须清理临时文件
用法说明
命名规范: 所有临时文件都要有明确标识版本控制: .gitignore中排除临时文件清理流程: 开发完成后统一清理临时文件
特色优势
仓库整洁: 避免无用文件污染版本库识别清晰: 一眼就能区分正式文件和临时文件管理规范: 统一的临时文件处理流程
3. 文件路径使用规则
核心原则
高优先级 🔴:
├── 所有文件调用必须使用相对路径
├── 必须获取当前文件路径作为基点
└── 禁止从绝对路径加载资源
用法说明
路径获取: 使用获取当前文件路径路径拼接: 使用os.path.join()进行路径拼接跨平台: 避免硬编码路径分隔符
__file__
特色优势
可移植性: 代码可以在任何位置运行环境独立: 不依赖特定的文件系统结构部署友好: 简化项目部署和迁移
4. 文本版本控制规则
核心原则
高优先级 🔴:
├── 使用**-${filename}-d${num}格式进行版本管理
├── 关联性功能扩展使用temp-${filename}
└── 版本文件在提交前需要合并和清理
中优先级 🟡:
├── temp-${filename}测试通过后合并回对应版本
└── 用户未给出清理指令前保留版本文件
用法说明
版本命名: 主版本使用,后续版本递增功能扩展: 临时功能使用
**-filename-d1版本合并: 测试通过后合并回主版本
temp-filename
特色优势
版本清晰: 明确的版本标识和管理功能隔离: 新功能开发不影响主版本合并规范: 标准化的版本合并流程
5. Git提交远程仓库前规则
核心原则
高优先级 🔴:
├── 同步代码前必须按语法规范检查代码
├── IDE报错时以IDE优化建议为准修正
├── 默认提交到github且新仓库为私有
└── 用户输入"同步私有库"则提交到私有库
中优先级 🟡:
├── 私有库存在同名仓库就更新
├── 分支名不一致则新建分支
└── 私有库不存在同名仓库则发布为私有
用法说明
代码检查: 提交前运行语法检查和静态分析IDE集成: 优先处理IDE的警告和建议仓库管理: 支持GitHub和私有仓库的灵活配置
特色优势
质量保证: 确保提交的代码质量灵活配置: 支持多种仓库和分支策略自动化: 减少手动操作,提高效率
6. 语法规范自动调整规则
核心原则
高优先级 🔴:
├── IDE规范提示高于现有语法规范
├── 修改语法规范时需要标明对应版本号
└── 修改后需要同步修改目前的语法规范
用法说明
规范更新: 根据IDE提示及时更新语法规范版本记录: 记录每次语法规范修改的版本信息同步更新: 确保规则文件与IDE规范保持一致
特色优势
与时俱进: 跟随IDE和语言发展趋势版本追踪: 清晰的规范变更历史一致性: 保持规则与实际开发环境同步
7. 规则优先级漏洞逻辑自动调整规则
核心原则
高优先级 🔴:
├── 每次修改规则文件后必须检查优先级漏洞
└── 出现冲突或逻辑漏洞时需要重新调整
用法说明
定期检查: 每次规则修改后都要进行完整性检查冲突解决: 发现冲突时及时调整优先级逻辑验证: 确保规则体系的逻辑一致性
特色优势
体系完整: 保持规则体系的完整性和一致性动态调整: 根据实际情况动态优化规则预防问题: 主动发现和解决潜在问题
🎨 规则特色总结
1. 智能化管理
自动同步: 规则文件自动更新,保持最新状态智能检测: 自动识别代码规范和冲突自适应: 根据项目特点自动调整规则
2. 标准化规范
统一标准: 提供统一的代码质量标准层次分明: 清晰的优先级分类体系全面覆盖: 涵盖开发的各个环节
3. 灵活可扩展
模块化: 规则设计模块化,便于扩展可配置: 支持根据项目需求自定义多平台: 支持不同操作系统和开发环境
4. 安全可靠
备份机制: 自动备份和版本管理错误恢复: 完善的错误处理和恢复机制审计追踪: 完整的规则变更历史记录
5. 实用高效
即插即用: 简单的集成和使用方式减少重复: 避免重复的代码审查工作提升效率: 显著提高开发效率和代码质量
🔧 实际应用示例
场景1:新项目初始化
# 1. 拉取最新规则
python rule_puller.py update
# 2. 查看当前状态
python rule_puller.py status
# 3. 应用规则到项目
# 规则会自动指导项目结构和代码规范
场景2:代码开发过程
# AI生成代码时会自动遵循规则:
# - 使用相对路径
# - 遵循命名规范
# - 添加必要的注释
# - 处理异常情况
场景3:代码提交前
# 1. 运行语法检查
# 2. 处理IDE警告
# 3. 清理临时文件
# 4. 提交到适当分支
场景4:规则更新
# 1. 定期检查更新
python rule_puller.py update
# 2. 强制更新(如果需要)
python rule_puller.py force
# 3. 验证新规则
python rule_puller.py status
📈 效益分析
质量提升
代码一致性: 100%遵循统一标准错误减少: 语法和编译错误减少80%可维护性: 代码可读性和可维护性显著提升
效率改进
开发速度: 减少30%的代码修正时间审查效率: 代码审查时间减少50%协作效率: 团队协作效率提升40%
成本节约
人力成本: 减少重复性代码修正工作时间成本: 缩短项目开发周期维护成本: 降低后期维护成本
🚀 未来发展方向
短期目标
规则优化: 持续优化和完善规则体系工具增强: 增强自动化工具的功能集成扩展: 支持更多开发工具和平台
长期愿景
智能学习: 让规则系统能够学习和适应社区共建: 建立开放的规则共享社区生态完善: 构建完整的开发生态系统
📞 支持和反馈
获取帮助
文档: 查看详细的规则文档和说明示例: 参考实际的应用示例社区: 参与社区讨论和经验分享
提供反馈
问题报告: 报告发现的问题和改进建议功能请求: 提出新的功能需求经验分享: 分享使用经验和最佳实践
通过这套完整的规则体系,我们能够确保AI辅助代码书写工具生成的代码既符合标准,又具有高质量和强可维护性,从而显著提升开发效率和项目成功率。
项目使用说明
AI项目规则管理系统 – 使用说明
🚀 快速开始
1. 查看项目状态
python auto_sync.py status
2. 立即同步规则文件
python auto_sync.py sync
3. 拉取最新规则
python rule_puller.py update
4. 查看规则文件状态
python rule_puller.py status
📋 主要功能
自动同步功能
✅ 每72小时自动同步到GitHub✅ 自动检测本地更改并提交✅ 自动推送到远程仓库✅ 失败时自动重试(最多3次)
规则管理功能
✅ 自动拉取最新规则文件✅ 智能比较文件内容✅ 自动备份历史版本✅ 支持强制更新
🔧 配置文件
同步配置 (sync_config.json)
{
"last_sync": "2025-11-14T01:43:57.242023",
"sync_count": 1,
"auto_sync_enabled": true,
"sync_interval_hours": 72,
"retry_count": 3,
"retry_delay_seconds": 300
}
规则配置 (rule_config.json)
{
"last_update": "2025-11-14T01:43:57.242023",
"current_version": "20251114_014357",
"auto_sync": true,
"sync_interval_hours": 72
}
📁 文件结构
.trae
ules
├── project_rules.md # 核心规则文件
├── README.md # 项目说明
├── docs.md # 详细文档
├── 使用说明.md # 本使用说明
├── rule_puller.py # 规则拉取脚本
├── auto_sync.py # 自动同步脚本
├── setup_auto_sync.bat # 自动设置脚本
├── sync_config.json # 同步配置
├── rule_config.json # 规则配置
├── auto_sync.log # 同步日志
├── rule_update.log # 规则更新日志
└── backups # 备份目录
🎯 规则优先级说明
🔴 高优先级(必须遵守)
语法错误处理编译错误处理核心技术规范Git提交规范
🟡 中优先级(建议遵循)
代码格式规范测试流程规范文件命名规范版本管理规范
🟢 低优先级(参考使用)
性能优化建议可读性建议工具配置建议
📝 常用命令
规则拉取器
# 更新规则文件
python rule_puller.py update
# 查看状态
python rule_puller.py status
# 强制更新
python rule_puller.py force
自动同步器
# 启动自动同步
python auto_sync.py start
# 停止自动同步
python auto_sync.py stop
# 查看状态
python auto_sync.py status
# 立即同步一次
python auto_sync.py sync
🔍 日志查看
查看同步日志
type auto_sync.log
查看规则更新日志
type rule_update.log
实时监控日志
tail -f auto_sync.log
⚠️ 注意事项
Git配置: 确保已正确配置Git用户名和邮箱网络连接: 自动同步需要网络连接权限问题: 确保有权限访问GitHub仓库备份重要: 重要修改前建议手动备份
🆘 常见问题
Q: 同步失败怎么办?
A: 检查网络连接和Git配置,查看日志文件获取详细信息
Q: 如何修改同步间隔?
A: 编辑文件中的
sync_config.json值
sync_interval_hours
Q: 如何关闭自动同步?
A: 运行或修改配置文件
python auto_sync.py stop
Q: 规则文件冲突怎么办?
A: 查看冲突处理原则,按照优先级层次解决
📞 支持
如有问题,请查看日志文件或提交Issue到GitHub仓库。
祝您使用愉快! 🎉















暂无评论内容