Sooua
登录
返回文章列表
OpenCode··6 分钟阅读

基础工作流

flowchart TD

目标:掌握提问 → 计划 → 构建 → 审查 → 迭代的完整开发流程


工作流总览


场景一:添加回收站功能(完整工作流)

步骤 1:提问(明确需求)

切换到计划模式(按 Tab),描述需求:

当用户删除笔记时,希望将其标记为已删除而不是永久删除。
然后创建一个页面展示最近删除的笔记。
在这个页面,用户可以恢复笔记或永久删除。

需求描述技巧

要素示例
功能描述删除 → 软删除 → 回收站展示
业务规则30 天后自动清理、恢复后回到原位置
参考示例参考 Gmail 回收站或 macOS 废纸篓
边界条件已删除笔记的搜索、权限处理

步骤 2:计划(AI 分析)

AI 输出执行计划:

你可以反馈:

  • "第 3 步,恢复接口需要验证用户权限"
  • "先做 1-4 步,定时任务后续再加"
  • "UI 参考 @src/components/Trash/ 目录下的现有组件风格"

步骤 3:构建(执行修改)

确认计划后按 Tab 切换构建模式

Sounds good! Go ahead and make the changes.

AI 执行过程可视化:

步骤 4:审查(验收结果)

检查维度:

检查项通过标准
代码质量符合 TypeScript 严格模式
功能正确性删除后可在回收站看到
无副作用未影响正常笔记列表
测试覆盖新增单元测试通过

✅ 满意

git add -A
git commit -m "feat: add trash/recycle bin feature"

❌ 不满意 — 撤销与重做

/undo

撤销机制详解

多次撤销:

/undo    ← 撤销第 3 次修改
/undo    ← 撤销第 2 次修改
/redo    ← 重做第 2 次修改(如果撤销多了)

场景二:直接修改(简单任务)

对于简单修改,跳过计划模式:

给 /settings 路由添加认证检查,参考 /notes 路由的实现。
文件: @src/app/settings/page.tsx 和 @src/app/notes/page.tsx

适用直接修改的场景

场景示例
简单重构回调改 async/await
添加注释为复杂函数添加 JSDoc
样式调整修改按钮颜色、间距
复制模式已有类似实现,直接复用

场景三:代码解释与学习

遇到不熟悉的代码?

请详细解释 @src/lib/auth.ts 中 verifyToken 函数的:
1. 整体逻辑流程
2. 每个条件分支的意图
3. 潜在的安全问题
4. 如何改进

AI 会返回结构化分析:

## 逻辑流程
1. 提取 Bearer token
2. 使用 jwt.verify 解码
3. 检查过期时间
4. 查询数据库验证用户存在
 
## 安全问题
- ❌ 未处理 jwt malformed 错误
- ❌ 缺少速率限制
 
## 改进建议
...

Git 集成工作流

实用 Git 命令配合

# 开发前创建分支
git checkout -b feature/opencode-trash
 
# 每个功能点提交一次(方便撤销)
git add src/lib/db.ts
git commit -m "db: add deletedAt field to Note model"
 
# OpenCode 修改后查看 diff
git diff
 
# 不满意时回退到上次提交
git reset --hard HEAD~1

最佳实践速查表

DO ✅

实践说明
小步快跑每次一个功能点,不要一次性要求太多
明确上下文引用相关文件(@文件名
迭代优化不满意就 /undo 重来
及时提交满意的修改及时 git commit
使用计划模式复杂任务先规划再执行
提供示例"参考 X 文件的做法"

DON'T ❌

反模式后果
模糊描述"帮我优化代码" → AI 不知道优化什么
忽视 diff可能引入意料之外的修改
生产环境直接运行可能造成线上事故
一次要求过多AI 容易遗漏或出错
不验证结果功能可能不符合预期

练习任务

  1. 解释代码 — 让 AI 解释项目中任意一个你不熟悉的函数,要求它画出执行流程
  2. 添加注释 — 让 AI 给某个复杂文件添加 JSDoc 注释,审查是否符合规范
  3. 小重构 — 让 AI 将某个回调函数改为 async/await,观察 diff
  4. 添加功能 — 用计划模式设计一个新功能,体验完整工作流
  5. 撤销重做 — 故意让 AI 做一个错误修改,练习 /undo/redo

FAQ

Q: 计划模式和构建模式有什么区别?

计划模式只分析不修改,输出方案;构建模式直接执行文件修改。复杂任务先用计划,简单任务直接构建。

Q: /undo 能撤销多少次?

理论上无限次,直到回到会话开始状态。

Q: 如何让 AI 更好地理解我的需求?

  1. 提供具体文件引用 @file.ts 2) 给出业务背景 3) 提供参考示例 4) 说明验收标准

Q: AI 修改的文件需要手动保存吗?

不需要,OpenCode 直接编辑文件系统。但建议及时 git commit


下一篇:06. 常用内置命令

分享

评论

登录 后参与讨论。

加载中…

相关文章