AI辅助开发的迭代记录与心得
从需求到验收:AI 辅助开发校园消费记账工具的迭代记录
一、项目需求与目标
本次作业中,我选择了“个人校园消费记账 GUI”作为开发主题,希望通过一个简单直观的界面,帮助大学生记录日常消费、了解支出结构,并合理安排生活费。
在开始开发之前,我先将需求细化为五个部分:
- 日常记账:记录消费金额、日期、分类和备注。
- 记录管理:查看消费明细,支持删除错误记录。
- 消费统计:展示本月总支出和各分类支出。
- 预算提醒:设置月度预算,提示预算使用情况。
- 本地保存:刷新页面后保留已有记录。
技术实现采用 HTML、CSS 和 JavaScript,通过 localStorage 保存数据。整体过程分为初版生成、问题检查、三次迭代修改和最终验收。
二、第 1 轮:生成初版
我给 AI 的提示词
请使用 HTML、CSS 和 JavaScript 开发一个校园消费记账 GUI,使用中文界面。用户可以输入消费金额、日期、分类和备注,分类包括餐饮、交通、学习、购物、娱乐和其他。页面需要展示消费记录、本月总支出和分类统计,支持新增、删除记录,并使用 localStorage 保存数据。请说明主要代码的作用。
AI 生成的初版要点
AI 生成了包含录入表单、消费列表和统计区域的页面,实现了新增记录、删除记录和本地保存等基本功能。页面结构与需求基本一致,能够完成一次完整的记账操作。
我阅读了表单提交、数据保存和统计更新部分的代码,重点检查数据从输入到展示的处理过程。这一轮让我确认,初版已经具备基本功能,但输入限制和边界处理还需要完善。
三、第 2 轮:第一次迭代,完善输入校验
发现的问题
初版对输入是否合法的检查不够完整,金额为零、负数或小数位过多时,缺少明确的处理规则。直接保存这些数据会影响统计结果,因此我优先修改了输入校验。
我给 AI 的修改要求
请完善表单校验:金额必须是大于 0 的有效数字,最多保留两位小数;日期和分类不能为空;备注不能超过 100 字。输入不合法时,在对应字段附近说明错误原因,不新增记录,并保留已输入内容。金额请转换为整数“分”后存储和计算,展示时统一保留两位小数。
AI 实际修改了什么
AI 增加了统一的表单校验逻辑,只有全部字段通过检查后才保存记录。金额计算改为使用整数分,展示时再转换为元,同时补充了具体的错误提示。
修改后,我检查了空值、零、负数和超过两位小数的输入,确认这些情况都会被拦截,错误记录不会进入列表和统计。
四、第 3 轮:第二次迭代,补充月份筛选与预算提醒
发现的问题
基础统计能够展示支出,但还需要明确月份范围,避免不同月份的数据混在一起。另外,单独展示消费金额不能直接反映预算是否充足,因此我补充了预算管理功能。
我给 AI 的修改要求
请增加月份选择功能,默认显示当前月份,消费列表、总支出和分类统计都按照所选月份更新。允许按月份设置预算,预算必须大于 0,最多两位小数。支出达到预算的 80% 时提示“接近预算”,达到 100% 时提示“预算已用完”,超过后显示超支金额。未设置预算时显示“未设置预算”,不要计算使用比例。
AI 实际修改了什么
AI 增加了月份筛选,将列表和统计统一建立在筛选后的记录上,并按月份保存预算。页面补充了预算金额、剩余额度和状态提示,预算判断优先处理超支和预算用完的情况。
修改后,我通过切换月份检查数据范围,并检查了预算临界值附近的提示,确认不同状态能够正确区分。
五、第 4 轮:第三次迭代,改善删除流程和异常处理
发现的问题
在继续检查时,我发现删除操作需要增加确认步骤,避免误操作;没有记录时也应该提供明确的空状态。此外,本地数据读取和保存失败时,应让用户知道发生了什么。
我给 AI 的修改要求
请为每条消费记录生成唯一 ID,删除时按 ID 定位并弹出确认提示。取消删除时不改变数据,确认后同步更新列表、统计和本地存储。没有记录时显示“暂无消费记录”。读取本地数据失败时显示错误提示,不要直接覆盖原始内容;保存失败时也要提示,不能显示保存成功。
AI 实际修改了什么
AI 调整了删除流程,使用唯一 ID 定位记录,并增加确认操作。页面补充了空状态展示、本地数据解析异常处理和保存失败提示。
修改后,删除操作对统计和预算的影响能够同步体现,取消删除也不会改变已有记录。
六、我的检查与验证说明
我采用了正常流程检查、边界输入检查和人工计算对照三种方式进行验收。验证时,我没有只看页面是否显示结果,还检查了结果之间是否一致。
| 验证项目 | 检查方法 | 验证结果 |
|---|---|---|
| 新增记录 | 输入合法的金额、日期和分类后提交 | 记录正常加入列表,统计同步更新 |
| 非法输入 | 分别输入空金额、零、负数和超过两位小数的金额 | 显示对应错误提示,不生成记录 |
| 金额统计 | 手工计算多条记录的合计,与页面结果比较 | 总支出与人工计算一致 |
| 分类统计 | 将各分类金额相加,并与总支出比较 | 分类合计与总支出一致 |
| 月份筛选 | 添加不同月份的记录,再切换月份 | 列表和统计只包含所选月份的数据 |
| 预算提醒 | 检查接近预算、恰好用完和超支三个状态 | 提示内容与当前支出情况一致 |
| 删除操作 | 分别执行取消删除和确认删除 | 取消后数据不变,确认后各区域同步更新 |
| 数据持久化 | 新增记录、设置预算后刷新页面 | 消费记录和预算正常保留 |
| 空状态与异常 | 清空记录,并检查本地数据异常情况 | 页面显示相应提示,没有静默覆盖异常数据 |
交叉验证时,我重点检查了三个关系:消费明细之和是否等于总支出,各分类支出之和是否等于总支出,以及删除一条记录后总额的减少值是否等于该记录金额。
这些检查帮助我确认,页面各部分使用的是一致的数据,而不只是各自显示一个看起来合理的数字。
七、验收自评
本次作业完成了校园消费记账工具的基本功能,能够演示新增、删除、统计、预算提醒和数据保存的完整流程。初版之后进行了三次修改,每轮均记录了发现的问题、给 AI 的修改要求和实际改动,并通过运行样例、边界检查和人工计算进行了验证。
目前的数据保存在当前浏览器中,适合个人日常使用。跨设备同步、数据导出等功能可以作为后续扩展方向。
八、心得体会
这次实践中,我最大的感受是:与 AI 协作的效果,很大程度上取决于需求是否表达清楚,以及反馈是否足够具体。
第一轮提出基本需求后,AI 能较快生成完整的界面和代码结构,这一点让我感到惊喜。但初版对输入边界、预算状态和异常情况的处理不够周全,也让我认识到,生成了代码并不意味着完成了任务。
在后续修改中,我逐渐把“完善一下功能”换成了明确的描述,例如指出不合法的输入有哪些、错误时应显示什么,以及哪些数据不能发生变化。这样的反馈更容易让 AI 理解问题,也让我能够直接判断修改是否符合预期。
这次作业也加深了我对软件工程的理解。一个软件是否可靠,取决于需求、实现、测试和维护等多个环节。开发者需要明确规则,检查代码,并为结果负责。AI 可以提高实现效率,而我需要通过持续审查和验证,把这些输出逐步完善为能够正确工作的软件。

浙公网安备 33010602011771号