规则深度解析
ByteBuddy 的规则系统允许您定义 AI 助手的行为准则、代码标准和工作流程,确保生成的代码符合项目要求。
规则类型
代码质量规则
定义代码质量标准和最佳实践。
示例配置
在 config.yaml 中配置模型时,可以引用规则文件:
yaml
models:
- name: "quality-aware-assistant"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.5
maxTokens: 4000规则通常在单独的文件中定义,如 .bytebuddy/rules/code-quality.md:
markdown
# 代码质量规则
## 命名规范
- 使用有意义的变量名
- 类名使用 PascalCase
- 函数名使用 camelCase
- 常量使用 UPPER_SNAKE_CASE
## 代码结构
- 函数不超过 50 行
- 文件不超过 500 行
- 避免深层嵌套 (最多 3 层)
- 使用早返回模式
## 注释要求
- 公共 API 必须有文档注释
- 复杂逻辑需要解释性注释
- 使用 TODO 标记待办事项安全规则
定义安全编码标准。
示例规则
.bytebuddy/rules/security.md:
markdown
# 安全规则
## 输入验证
- 验证所有用户输入
- 使用白名单而非黑名单
- 转义特殊字符
- 限制输入长度
## 认证授权
- 使用强密码策略
- 实施多因素认证
- 最小权限原则
- 定期轮换密钥
## 数据保护
- 加密敏感数据
- 使用环境变量存储密钥
- 不在代码中硬编码密码
- 实施数据脱敏性能规则
定义性能优化标准。
示例规则
.bytebuddy/rules/performance.md:
markdown
# 性能规则
## 数据库查询
- 避免 N+1 查询
- 使用索引优化查询
- 限制查询结果数量
- 使用连接池
## 缓存策略
- 缓存频繁访问的数据
- 设置合理的过期时间
- 使用缓存失效策略
- 避免缓存雪崩
## 资源管理
- 及时释放资源
- 使用连接池
- 避免内存泄漏
- 实施速率限制项目特定规则
技术栈规则
React 项目规则
.bytebuddy/rules/react.md:
markdown
# React 项目规则
## 组件规范
- 使用函数组件和 Hooks
- Props 使用 TypeScript 类型定义
- 使用 memo 优化性能
- 遵循单一职责原则
## 状态管理
- 优先使用 useState 和 useReducer
- 复杂状态使用 Context
- 避免 prop drilling
- 使用不可变更新
## 样式规范
- 使用 CSS Modules 或 styled-components
- 遵循 BEM 命名规范
- 使用设计系统变量
- 支持响应式设计Node.js 项目规则
.bytebuddy/rules/nodejs.md:
markdown
# Node.js 项目规则
## 异步处理
- 使用 async/await 而非回调
- 正确处理 Promise 错误
- 避免阻塞事件循环
- 使用 Promise.all 并行处理
## 错误处理
- 使用集中式错误处理
- 记录详细错误信息
- 提供有意义的错误消息
- 实施错误恢复机制
## 模块化
- 使用 ES Modules
- 明确的导出接口
- 避免循环依赖
- 合理的文件组织规则配置
模型配置引用规则
yaml
models:
# 通用开发助手
- name: "general-assistant"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.6
maxTokens: 4000
# 代码审查助手 - 需要严格遵守规则
- name: "code-reviewer"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${ANTHROPIC_API_KEY}"
roles: ["edit", "apply"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 4000
# 安全审查助手
- name: "security-reviewer"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.2
maxTokens: 4000规则文件组织
推荐的规则文件结构:
.bytebuddy/
├── rules/
│ ├── code-quality.md
│ ├── security.md
│ ├── performance.md
│ ├── testing.md
│ ├── documentation.md
│ └── react.md
└── config.yaml规则应用场景
代码生成
在生成代码时应用规则:
yaml
models:
- name: "code-generator"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["apply"]
defaultCompletionOptions:
temperature: 0.4
maxTokens: 4096规则确保:
- 代码符合项目标准
- 遵循命名规范
- 包含必要的注释
- 实施错误处理
代码审查
审查代码时应用规则:
yaml
models:
- name: "code-reviewer"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${ANTHROPIC_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 4000检查项目:
- 代码质量问题
- 安全漏洞
- 性能问题
- 最佳实践违规
重构建议
提供重构建议时应用规则:
yaml
models:
- name: "refactor-assistant"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${ANTHROPIC_API_KEY}"
roles: ["edit"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 4000重构方向:
- 提高代码可读性
- 改善代码结构
- 优化性能
- 增强可维护性
自定义规则
创建自定义规则
.bytebuddy/rules/custom.md:
markdown
# 自定义项目规则
## 业务逻辑规则
- 订单金额必须验证
- 用户操作需要审计日志
- 支付操作必须幂等
- 关键操作需要二次确认
## API 设计规则
- 使用 RESTful 风格
- 统一的错误响应格式
- 版本化 API
- 完善的 API 文档
## 数据库规则
- 所有表必须有主键
- 使用软删除
- 添加创建和更新时间戳
- 外键约束保证数据完整性团队协作规则
.bytebuddy/rules/collaboration.md:
markdown
# 团队协作规则
## Git 工作流
- 使用功能分支开发
- 提交信息遵循约定
- PR 需要代码审查
- 合并前通过 CI/CD
## 代码审查
- 审查者在 24 小时内响应
- 至少一个批准才能合并
- 关注代码逻辑和设计
- 提供建设性反馈
## 文档要求
- README 包含项目概述
- API 变更更新文档
- 复杂功能提供示例
- 维护变更日志规则优先级
规则层次
- 强制规则: 必须遵守 (安全、法规)
- 推荐规则: 应该遵守 (最佳实践)
- 建议规则: 可以遵守 (优化建议)
规则冲突处理
当规则冲突时:
- 安全规则优先级最高
- 法规合规次之
- 团队标准第三
- 个人偏好最低
最佳实践
1. 规则文档化
- 清晰描述规则内容
- 提供示例和反例
- 说明规则原因
- 定期更新规则
2. 规则可执行
- 使用 linter 工具
- 集成 CI/CD 检查
- 自动化代码审查
- 提供即时反馈
3. 规则演进
- 定期审查规则
- 根据反馈调整
- 记录规则变更
- 团队共识决策
4. 规则培训
- 新成员培训
- 定期分享会
- 文档易于访问
- 鼓励提问讨论
工具集成
ESLint 集成
yaml
models:
- name: "linter-aware-assistant"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["edit"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 4000确保生成的代码:
- 通过 ESLint 检查
- 符合配置的规则
- 自动修复可修复问题
Prettier 集成
自动格式化:
- 统一代码格式
- 减少格式争论
- 提高可读性
环境变量配置
bash
# ~/.bashrc 或 ~/.zshrc
export OPENAI_API_KEY="your-openai-api-key"
export ANTHROPIC_API_KEY="your-anthropic-api-key"通过完善的规则系统,ByteBuddy 可以生成高质量、符合标准的代码,提升整个团队的开发效率。