Skip to content

规则深度解析

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. 推荐规则: 应该遵守 (最佳实践)
  3. 建议规则: 可以遵守 (优化建议)

规则冲突处理

当规则冲突时:

  1. 安全规则优先级最高
  2. 法规合规次之
  3. 团队标准第三
  4. 个人偏好最低

最佳实践

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 可以生成高质量、符合标准的代码,提升整个团队的开发效率。