终极目标: 让 AI 能轻松维护框架,同时程序员也能看懂
版本: v1.0
日期: 2025-01-20
┌─────────────────────────────────────────┐
│ xb 代码分级 │
├─────────────────────────────────────────┤
│ Level 1: 80% - AI 独立维护 ✅ │
│ Level 2: 15% - AI 辅助维护 ⚠️ │
│ Level 3: 5% - 人类主导维护 🔴 │
└─────────────────────────────────────────┘
特点: 简单、清晰、模式统一
| 文件 | 行数 | 复杂度 | AI 能力 |
|---|---|---|---|
bb.go |
25 | ⭐ | ✅ 完全理解 |
oper.go |
82 | ⭐ | ✅ 完全理解 |
po.go |
30 | ⭐ | ✅ 完全理解 |
sort.go |
38 | ⭐ | ✅ 完全理解 |
nil_able.go |
211 | ⭐⭐ | ✅ 完全理解 |
vector_types.go |
169 | ⭐⭐ | ✅ 完全理解 |
cond_builder_vector.go |
136 | ⭐⭐ | ✅ 完全理解 |
builder_vector.go |
56 | ⭐⭐ | ✅ 完全理解 |
to_vector_sql.go |
195 | ⭐⭐⭐ | ✅ 完全理解 |
vector_test.go |
203 | ⭐⭐ | ✅ 完全理解 |
AI 权限:
特点: 中等复杂度,需要人类审查
| 文件 | 行数 | 复杂度 | AI 能力 |
|---|---|---|---|
cond_builder.go |
265 | ⭐⭐⭐ | ⚠️ 需审查 |
builder_x.go |
310 | ⭐⭐⭐ | ⚠️ 需审查 |
builder_update.go |
111 | ⭐⭐⭐ | ⚠️ 需审查 |
builder_insert.go |
80 | ⭐⭐⭐ | ⚠️ 需审查 |
to_sql.go |
405 | ⭐⭐⭐⭐ | ⚠️ 需审查 |
from_builder.go |
102 | ⭐⭐⭐ | ⚠️ 需审查 |
AI 权限:
审查流程:
1. AI 分析问题
2. AI 提供方案(含风险分析)
3. 人类审查(1-2 工作日)
4. 人类批准或要求调整
5. AI 执行修改
6. CI/CD 自动测试
7. 人类最终确认
特点: 极度复杂,性能关键,风险高
| 文件 | 行数 | 复杂度 | AI 能力 |
|---|---|---|---|
from_builder_optimization.go |
132 | ⭐⭐⭐⭐⭐ | ❌ 不建议修改 |
AI 权限:
修改流程:
1. AI 深入分析问题
2. AI 提供详细报告(包括根因分析)
3. AI 提供多个解决方案
4. AI 列出每个方案的风险和收益
5. 人类技术委员会讨论
6. 人类决策
7. 人类执行修改(或批准 AI 执行)
8. 充分测试(单元 + 集成 + 性能)
9. Code Review(至少 2 位资深工程师)
10. 金丝雀发布
11. 监控观察(2 周)
// AI-MAINTAINABLE: Level 1
// This file is simple and can be maintained by AI independently.
// AI-MAINTAINABLE: Level 2
// This file requires human review for modifications.
// ⚠️ AI-MAINTAINABLE: Level 3 - CRITICAL CODE ⚠️
//
// DO NOT modify algorithm without human approval.
// Complexity: ⭐⭐⭐⭐⭐
//
// AI can: Add comments, tests, report issues
// AI should NOT: Modify algorithm, refactor logic
# .github/CODEOWNERS
# Level 3 文件(必须人类审批)
from_builder_optimization.go @senior-maintainer @architect
# Level 2 文件(需要审查)
to_sql.go @code-reviewer
builder_x.go @code-reviewer
cond_builder.go @code-reviewer
# Level 1 文件(AI 可自由修改,但需 CI 测试)
vector_*.go @ai-maintainer
oper.go @ai-maintainer
bb.go @ai-maintainer
# 文档(AI 可自由修改)
*.md @ai-maintainer
# .github/workflows/ai-check.yml
name: AI Modification Check
on: [pull_request]
jobs:
check-level3:
runs-on: ubuntu-latest
steps:
- name: Check Level 3 modifications
run: |
# 检查是否修改了 Level 3 文件
if git diff --name-only | grep -E "from_builder_optimization.go"; then
echo "⚠️ Level 3 file modified!"
echo "Requires senior maintainer approval"
# 自动添加标签
gh pr edit $ --add-label "level-3-review-required"
fi
- name: Require approvals
if: contains(github.event.pull_request.labels.*.name, 'level-3-review-required')
run: |
echo "This PR requires 2 senior maintainer approvals"
// from_builder_optimization_test.go
// 黄金测试(Golden Test)
// 保护现有行为不被意外改变
func TestJoinOptimization_GoldenCases(t *testing.T) {
goldenCases := []struct{
name string
input string
expected string
}{
// 50+ 真实案例,覆盖所有边界情况
}
for _, tc := range goldenCases {
t.Run(tc.name, func(t *testing.T) {
// 如果输出改变,测试失败
// 保护现有行为
})
}
}
AI 流程:
1. 分析 Bug 根因
2. 定位到具体代码行
3. 提供修复方案(2-3 个备选)
4. 分析每个方案的风险
5. 写成详细报告
6. 提交给人类决策
输出示例:
---
Bug Report: JOIN optimization removes required table
Root Cause:
- Line 45: Check for table usage is insufficient
- Missing case: Table used in HAVING clause
Proposed Solutions:
Option 1 (Conservative): Disable optimization for queries with HAVING
- Risk: Low
- Impact: Performance slightly reduced
- Complexity: Low
Option 2 (Comprehensive): Add HAVING clause check
- Risk: Medium
- Impact: Full functionality
- Complexity: Medium
Option 3 (Radical): Rewrite algorithm
- Risk: High
- Impact: Unknown
- Complexity: High
Recommendation: Option 1 (safest)
Requires: Human decision
---
AI 流程:
1. 性能分析
2. 识别瓶颈
3. 提供优化方案
4. 风险评估
5. 人类决策
如果瓶颈在 Level 3 代码:
- AI 提供分析
- AI 不执行修改
- 人类决策是否值得优化
AI 流程:
1. 评估影响范围
2. 如果影响 Level 3:
- 提供详细设计
- 人类审查批准
- AI 辅助实现
3. 如果不影响 Level 3:
- AI 独立实现
- CI/CD 自动测试
设计原则:
✅ 简单逻辑(无复杂算法)
✅ 模式统一(复用现有模式)
✅ 充分测试(7 个测试用例)
✅ 清晰文档(80+ 页文档)
✅ 零破坏性(只添加不修改)
结果:
✅ AI 完全理解
✅ AI 可独立维护
✅ 人类容易理解
✅ 质量优秀
证明: AI-First 设计成功 ✅
1. 优先简单设计
- 避免复杂算法
- 模式清晰统一
- 逻辑易于理解
2. 充分测试驱动
- 先写测试
- 测试即文档
- 100% 覆盖
3. 文档先行
- 设计文档
- API 文档
- 使用示例
4. 向后兼容
- 只添加不修改
- 不破坏现有 API
- 平滑升级
结果: 新功能都是 Level 1(AI 可维护)✅
Level 1 代码:
✅ 保持简洁
✅ AI 持续改进
Level 2 代码:
⚠️ 逐步简化
⚠️ 添加测试
⚠️ 改进文档
Level 3 代码:
🔴 保持稳定
🔴 用文档和测试保护
🔴 除非必要,不主动改动
AI 自动:
□ 运行所有测试
□ 检查代码质量
□ 更新依赖
□ 生成测试报告
人类审查:
□ 检查 AI 的修改(Level 1)
□ 审批 AI 的方案(Level 2)
□ 确认无异常
AI 生成:
□ 性能基准报告
□ 代码质量报告
□ 依赖安全报告
□ 改进建议
人类决策:
□ 是否采纳改进建议
□ 是否升级依赖
□ 是否发布新版本
技术委员会:
□ 审查 Level 3 代码
□ 评估 AI 维护效果
□ 调整维护策略
□ 规划新功能
核心理念:
- AI 维护大部分代码(80%)
- 人类保护关键代码(5%)
- 两者协作维护复杂代码(15%)
结果:
✅ 效率高(AI 自动化)
✅ 质量高(人类保护关键部分)
✅ 风险低(分级审批)
✅ 可持续(平衡 AI 和人类)
1. 承认复杂性
- 不是所有代码都能简化
- from_builder_optimization.go 是 5%
2. 分级保护
- Level 1: AI 自由
- Level 2: AI 辅助
- Level 3: 人类主导
3. 面向未来
- 新功能优先简单设计
- 让 AI 能轻松维护
- 向量功能是典范
向量功能实施:
✅ 完全遵循 AI-First 原则
✅ 简单清晰(Level 1)
✅ AI 独立完成
✅ 质量优秀(10/10 测试通过)
✅ 文档完善(80+ 页)
证明: AI 维护框架可行 ✅
xb = AI-First ORM,但不是 AI-Only ORM
人类 + AI = 最强组合! 🚀
文档版本: v1.0
创建日期: 2025-01-20
适用范围: xb 及所有 AI 维护的项目
License: Apache 2.0