Update from Sync Service

This commit is contained in:
FNS Service
2026-06-22 11:30:51 +08:00
parent eb80b7a8c1
commit 682e3e52df
52 changed files with 10099 additions and 191 deletions

View File

@@ -0,0 +1,315 @@
# 第9-15页开发实现篇
> 章节02 开发实现
> 核心问题:如何让 AI 听话?如何构建 AI 上下文体系?如何调用外部工具?
---
## 第9页分隔页02 开发实现)
### 原文内容
章节分隔页,标志进入"开发实现"部分
### 研究要点
- 这是4个核心问题中的第2个
- 开发实现是整个流程中最关键的环节
- 核心目标:让 AI 生成高质量、符合规范的代码
---
## 第10页如何让 AI 听话 - 规则、规格、技能
### 原文内容
**三要素模型**
| 要素 | 定义 | 示例 |
|------|------|------|
| **规则 Rules** | 约束 AI 行为的边界,定义能做什么、不能做什么 | "请做一个登录注册页面,需要能实现邮箱验证" |
| **规格 Specification** | 把模糊的需求收敛为结构化的内容,甚至通过 DSL 描述 | 用户故事 + 验收标准 |
| **技能 Skill** | 通过打包提示词、脚本、模版,进一步精确拓展 AI 的能力 | 提示词 + 规格文档 |
**规则示例Java 代码风格)**
```markdown
# Java 代码风格 Rules
1. 使用 Java 17 语法,不使用已废弃 API
2. 类名使用大驼峰PascalCase方法名和变量名使用小驼峰camelCase
3. 常量使用全大写下划线分隔UPPER_SNAKE_CASE
4. 单行代码不超过 120 字符,超过则换行
5. 大括号采用 Egyptian 风格(左括号不换行)
6. 禁止使用 @Autowired 字段注入,改用构造器注入
```
**规格示例(用户故事 + 验收标准)**
```markdown
作为一个新用户或现有用户,我想要一个同时支持注册和登录的页面,
并且在注册时能通过邮箱完成身份验证,以便安全地创建账户并登录系统。
验收标准AC
1. 用户可以输入邮箱、密码等必要信息进行注册。注册提交后,
系统向用户邮箱发送验证链接(或验证码)。用户点击链接
(或输入验证码)后,账户状态变为"已验证"。
2. 已验证用户可使用邮箱和密码登录系统。未验证邮箱的用户
尝试登录时,系统提示"请先完成邮箱验证"。
3. 邮箱格式不正确或已被注册时,系统给出明确提示。验证链
接过期或无效时,支持重新发送验证邮件。
```
### 深入解读
**规则 Rules 的本质**
- 作用:约束 AI 的行为边界
- 载体:
- Cursor`.cursor/rules/` 目录
- Claude Code`CLAUDE.md` 文件
- OpenCode`.opencode/config.json`
- 通用:`AGENTS.md` 文件
**规则的分类**
1. 代码风格规则:命名规范、格式规范
2. 架构规则:分层架构、依赖方向
3. 安全规则:敏感数据处理、权限控制
4. 性能规则:数据库查询优化、缓存策略
**规格 Specification 的价值**
- 消除歧义:将模糊需求转化为明确定义
- 可验证性:验收标准可以直接转化为测试用例
- 可追溯性:需求变更有历史记录
**规格的格式**
1. 用户故事格式As a... I want... So that...
2. Given-When-Then 格式行为驱动开发BDD
3. 表格格式:字段清单、业务规则
4. DSL 格式:领域特定语言
**技能 Skill 的概念**
- 定义:打包的可复用能力单元
- 组成:提示词模版、脚本工具、文档模版、配置文件
- 复用性:可以在多个项目中使用
### 实践建议
- 建立规则库:将常用的规则沉淀下来
- 使用规格模版:统一需求文档格式
- 开发技能包:将常用的能力封装成技能
---
## 第11页构建 AI 上下文体系
### 原文内容
**核心理念**:使用完整的文档来描述上下文和约束体系,区分过程方案和事实方案,减少维护成本。
**文档分层结构**
```
AGENTS.md ← 宪法
docs/
├── standards/ ← 标准规格(架构/命名/API/安全规范)
├── features/ ← 需求规格(产品/BA维护
├── plans/ ← 计划规格(过程方案)
├── designs/ ← 设计规格事实方案Source of Truth
└── others/ ← 架构决策、Release、测试用例等
```
**规格流转**
- 追加Plans每次创建新文件细微修改不再更新
- 变更Designs每次以最终态更新作为下一次 Plan 的事实依据
### 深入解读
**AGENTS.md 的内容**
```markdown
# 项目基本信息
- 项目名称:示例项目
- 技术栈Java 17, Spring Boot 3.x, MySQL 8.0
- 代码规范:阿里巴巴 Java 开发手册
# AI 行为规则
1. 生成代码必须符合代码规范
2. 数据库表必须包含 created_at, updated_at 字段
3. API 接口必须使用 RESTful 风格
4. 敏感数据必须加密存储
```
**过程方案 vs 事实方案详细对比**
| 维度 | 过程方案Plans | 事实方案Designs |
|------|------------------|-------------------|
| 目的 | 记录实现过程 | 记录当前状态 |
| 更新方式 | 追加新文件 | 覆盖更新 |
| 生命周期 | 短期(任务完成后归档) | 长期(持续维护) |
| 维护成本 | 低(不修改旧文件) | 高(必须保持最新) |
| 使用场景 | 任务执行、问题排查 | 新功能开发、架构决策 |
| 示例 | plan-2026-06-20-feature-x.md | database-schema.md |
**Plans 最佳实践**
- 命名规范:`plan-YYYY-MM-DD-feature-name.md`
- 内容结构:目标、方案、任务列表、状态、问题记录
- 归档策略:任务完成后移动到 `archive/` 目录
**Designs 最佳实践**
- 命名规范:使用功能名称,如 `database-schema.md`
- 内容结构:概述、详细设计、变更历史
- 更新策略:每次变更必须更新文档,保持最新
---
## 第12页如何让 AI 调用外部工具?
### 原文内容
**三种方式**
**1. MCPModel Context Protocol**
- AI 与外部系统通信的标准协议
- 标准化接口、双向通信、即插即用
```json
{
"mcpServers": {
"database": {
"command": "node",
"args": ["mcp-server-sqlite"]
}
}
}
```
**2. Skills**
- 将开源工具用脚本封装成 AI 可直接调用的能力单元
- 脚本封装、触发词驱动、可复用
```markdown
# Commit & Push Skill
## 触发词: commit, push
## 执行
git add -A
git commit -m "{message}"
git push
## 规则
- 提交前检查 lint
- 信息遵循 conventional commit
```
**3. CommandsCLI**
- 通过 CLI 命令让 AI 直接调用外部工具
- 即时执行、管道组合、权限可控
```bash
# AI 通过 CLI 调用工具
> 部署到生产环境
npm run build
npx vercel --prod
```
### 深入解读
**MCP 详解**
- Anthropic 提出的开放标准协议
- Client-Server 架构
- 常用 MCP Server
- 数据库mcp-server-sqlite、mcp-server-postgres
- 文件系统mcp-server-filesystem
- Web 搜索mcp-server-brave-search
- GitHubmcp-server-github
- 浏览器mcp-server-playwright
**Skills 详解**
- 可复用的能力单元
- 组成:触发词、执行逻辑、参数、规则
- 开发流程:需求分析 → 脚本开发 → 触发词定义 → 测试验证 → 文档编写
**CLI 安全考虑**
- 白名单机制:只允许执行特定的命令
- 沙箱环境:在隔离环境中执行
- 审计日志:记录所有执行的命令
---
## 第13页用什么 AI 编程工具?
### 原文内容
**三类工具**
**1. 命令行类**AI 优先,人辅助)
- Claude Code、Codex CLI、OpenCode
**2. AI IDE**(人掌控感更强)
- Cursor、Kiro、Trae
**3. 增强插件**(预制辅助工具集)
- Superpower、oh-my-opencode、oh-my-codex
### 工具对比表
| 工具 | 类型 | 价格 | AI 模型 | 适用场景 |
|------|------|------|---------|---------|
| Claude Code | CLI | 按 Token | Claude | 复杂逻辑 |
| Codex CLI | CLI | 按 Token | GPT-4 | 快速原型 |
| OpenCode | CLI | 免费 | 多模型 | 预算有限 |
| Cursor | IDE | $20/月 | 多模型 | 日常开发 |
| Kiro | IDE | 免费+付费 | Claude | AWS 项目 |
| Trae | IDE | 免费+付费 | 豆包 | 中文项目 |
### 各工具详解
**Claude Code**
- 强大的推理能力,支持长上下文
- 内置 MCP 支持Loop 模式
- 适合复杂逻辑开发、架构设计
**Cursor**
- 基于 VS CodeAI 优先设计
- 强大的代码补全Composer 模式
- 适合日常开发
**KiroAWS**
- 深度集成 AWS 服务
- 支持 Spec 驱动开发
- 自动化测试生成
**Trae字节跳动**
- 集成豆包大模型
- 中文支持好
- 适合中文项目
---
## 第14页用什么 SDD 框架比较好?
### 原文内容
**SDDSpec-Driven Development框架对比**
Spec = 单一事实来源SSoT甚至可以直接生成代码
| 维度 | BMAD | Spec Kit | OpenSpec | Kiro |
| --------- | ------------------------ | ---------------------- | ----------------- | ------------------ |
| 方法定位 | 企业级 SDD 操作系统 | 工程化 Spec 工作流 | 轻量 Spec 层 | IDE 原生 SDD |
| 核心理念 | Spec = 治理体系 + 多 Agent 编排 | Spec = 开发入口 + Git 生命周期 | Spec = 变更单元(持续演化) | Spec = 可执行源(代码与测试) |
| Spec 生命周期 | 全生命周期 | 与分支绑定(短生命周期) | 长期存在(持续演化) | 持续驱动 |
| Spec 粒度 | 大(系统/模块级) | 中Feature级 | 小(变更/Patch级 | 中Feature+行为) |
| 可执行能力 | 通过流程驱动 | 驱动开发流程 | 类 Prompt | 可生成代码+测试并自动校验 |
| 流程控制 | 强(阶段+审批+Agent | 中Plan→Spec→Tasks | 弱(自由演化) | 强(闭环) |
| 自动验证 | 无 | 无 | 弱 | 强(内建) |
| 与代码关系 | 间接 | 半耦合 | 弱耦合 | 强耦合 |
| 适用场景 | 大型系统/多团队 | 新项目0→1 | 存量项目/快速迭代 | 小团队/高自动化 |
| 失控风险 | 低 | 中 | 高 | 中 |
### 框架选择指南
| 团队规模 | 项目类型 | 推荐框架 |
| ---- | ----- | -------- |
| 大型团队 | 企业级项目 | BMAD |
| 中型团队 | 新项目 | Spec Kit |
| 小型团队 | 存量项目 | OpenSpec |
| 个人开发 | 快速迭代 | Kiro |
---
## 第15页一个新星Superpower
### 原文内容
- 提供了一些内置的 skills
- 方便开箱即用
- 缺点是不太方便精细调整
### 深入解读
- 为 AI 编程工具提供增强功能的插件集合
- 内置 Skills预制的常用能力
- 优势:快速上手、功能丰富、社区支持
- 劣势:不够灵活、黑盒、依赖性强
- 适合快速原型和学习,不适合深度定制