


























从零开始,用六步工作法搭建一个完整的个人记事本应用。请跟着本章一步步操作。
个人记事本应用是一个"教科书式"的入门项目。为什么选它?因为它覆盖了最常见的 CRUD(创建、读取、更新、删除)操作——这是大多数业务系统的基础模式。你学会了记事本,就学会了类似系统的开发方法。
但更重要的原因是:这个项目足够简单,让你能专注于流程而不是技术。 你不会因为复杂的业务逻辑而分心,可以全程关注"六步工作法是怎么运转的"——这是本章的真正目的。记事本只是一个载体,你真正要学的是"如何组织 AI 编码工作"。
项目功能:
技术栈
选择 SQLite 是因为它足够简单——不需要额外启动数据库服务器,一个文件搞定。对于个人应用来说,性能和并发完全够用。
在编写任何代码之前,先花五分钟规划项目结构。
如何与 AI 协作
启动 Claude Code 后,输入:
我要做一个个人记事本应用。帮我设计项目架构,产出 CONTEXT.md 蓝图。
需求:
1. 笔记列表页 - 显示所有笔记,按更新时间倒序
2. 创建笔记 - 标题 + 内容,保存到数据库
3. 编辑笔记 - 修改已有笔记的标题和内容
4. 删除笔记 - 删除一条笔记
5. 搜索功能 - 按标题搜索
技术约束:
- 使用 Next.js 14+ App Router
- 使用 SQLite 数据库(不需要额外安装)
- 使用 Tailwind CSS 做样式
- 不需要用户认证(先做基础功能)
请产出 CONTEXT.md,包含:
- 项目概述
- 技术栈
- 数据模型
- API 接口设计
- 里程碑拆分
AI 会生成一份蓝图。阅读后确认没有问题,然后保存。如果蓝图不符合预期(比如技术栈不对、功能遗漏),指出问题让 AI 修改,直到满意为止。
蓝图的关键部分
蓝图应包含数据模型的定义。对于记事本来说,数据模型很简单:
// 笔记的数据结构
interface Note {
id: number // 唯一标识
title: string // 标题
content: string // 正文内容
createdAt: string // 创建时间
updatedAt: string // 更新时间
}
API 接口:
GET /api/notes // 获取笔记列表(支持搜索和分页)
POST /api/notes // 创建新笔记
GET /api/notes/:id // 获取单条笔记
PUT /api/notes/:id // 更新笔记
DELETE /api/notes/:id // 删除笔记
里程碑拆分:
里程碑 1:项目初始化 + 数据库搭建
里程碑 2:笔记列表 API + 页面
里程碑 3:创建笔记功能
里程碑 4:编辑笔记功能
里程碑 5:删除笔记功能
里程碑 6:搜索功能
接下来,我们按照六步工作法,逐个实现里程碑。
下发指令
开始实现里程碑 1:项目初始化。
请执行:
1. 初始化 Next.js 项目(使用 App Router)
2. 安装 SQLite 相关依赖(better-sqlite3)
3. 创建数据库初始化脚本(在项目启动时自动创建 notes 表)
4. 配置 Tailwind CSS
5. 创建基础布局文件
请直接执行命令和创建文件,不需要我确认每一步。
验收
npm run dev)http://localhost:3000 能看到默认页面下发指令
开始实现里程碑 2:笔记列表 API 和列表页面。
请实现:
1. GET /api/notes 接口 - 返回所有笔记,按 updatedAt 倒序
2. 笔记列表页面 - 显示所有笔记的标题和更新时间
3. 每页显示 10 条,返回空列表时显示"暂无笔记"的提示
技术约束:
- API 路由放在 app/api/notes/route.ts
- 列表页面放在 app/page.tsx
- 使用 Tailwind CSS 做样式
- 列表项卡片样式,白色背景,圆角,阴影
验收
下发指令
开始实现里程碑 3:创建笔记功能。
请实现:
1. POST /api/notes 接口 - 接收 title 和 content,创建新笔记
2. 创建笔记页面 - 表单:标题输入框 + 内容文本框 + 提交按钮
3. 创建成功后跳转到列表页
技术约束:
- 创建页面放在 /create 路由
- 列表页添加"新建笔记"按钮
- 标题必填,内容可选
- 提交按钮在加载时显示"保存中..."状态
验收
下发指令
开始实现里程碑 4:编辑笔记功能。
请实现:
1. GET /api/notes/[id] 接口 - 返回单条笔记
2. PUT /api/notes/[id] 接口 - 更新笔记的标题和内容
3. 编辑页面 - 加载已有笔记的数据到表单,修改后保存
4. 列表页的笔记标题可点击,跳转到编辑页面
技术约束:
- 编辑页面放在 /notes/[id]/edit 路由
- 笔记不存在时显示 404 提示
- 保存成功后跳转到列表页
验收
下发指令
开始实现里程碑 5:删除笔记功能。
请实现:
1. DELETE /api/notes/[id] 接口 - 删除指定笔记
2. 列表页的每张笔记卡片上添加"删除"按钮
3. 点击删除按钮弹出确认对话框
4. 确认后删除笔记,列表自动更新
技术约束:
- 使用原生的 confirm() 对话框(简化实现)
- 删除后显示成功提示
- 删除过程中按钮显示"删除中..."状态
验收
下发指令
开始实现里程碑 6:搜索功能。
请实现:
1. GET /api/notes 接口增加搜索参数 - 支持 ?search=关键词 按标题模糊搜索
2. 列表页顶部添加搜索输入框
3. 输入关键词后自动搜索(输入停止 300ms 后触发)
4. 搜索结果为空时显示"未找到匹配的笔记"
技术约束:
- 搜索使用 SQLite 的 LIKE 查询
- 搜索框有清除按钮
- 搜索时显示加载状态
验收
到这里,你已经完成了第一个完整的 AI 辅助编码项目。
回顾一下你做了什么:
如果你在操作过程中遇到了问题:
通过这个项目,你实践了六步工作法的完整流程。关键经验:蓝图阶段花五分钟,能省下后面五小时;里程碑拆得越小,风险越低,验收越容易;验收不是走过场,要真正检查代码质量;出了问题先回滚再重来,不要在混乱代码上修修补补。这些经验不只适用于记事本——它们适用于所有 AI 编码项目。下一章,我们学习各种常用技能——遇到不同情况时该用什么方法。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。