最近我干了一件事:拿手头的飞算 JavaAI,从一个相当“没有想象力”的需求开始——学生成绩管理系统。这个项目在 Java 课程设计里几乎快被写烂了,在 Java 面试八股里也常年出镜,我偏偏想看看,如果连这种需求边界极度清晰的老项目都能被 AI 辅助开发流程跑通,那这套工具的性价比其实就很好估算了。实测下来,30 分钟确实能搞定一个能登录、能录成绩、能统计排名、能拿去答辩演示的系统,但前提是你得先想清楚怎么把需求喂给 AI,以及哪些代码生成之后必须人工兜底。这篇文章就把我整个踩坑和落地的过程拆开讲。
如果你正好在准备 Java 相关的课设或面试项目,或者手里有了一个 AI 编程工具却不知道怎么用出价值,这篇经验可以省下你不少摸索时间。我讲的不只是“给 AI 发一句话然后等结果”,而是从需求拆解、表结构设计、代码生成、接口验收到排错修复的完整链路。
1. 为什么我选“学生成绩管理系统”这种老掉牙项目来测飞算 JavaAI
1.1 一个 CRUD 系统把 Java 后端完整链路都串起来了
很多人觉得学生成绩管理系统太简单,无非是增删改查。可如果你认真拆,它其实覆盖了一个 Java 后端项目里几乎全部的基础组件:用户登录认证、拦截器、实体建模、多表关联、一对多成绩记录、分组聚合统计、按分数排序、分页查询、事务处理、全局异常捕获。这些东西单独看都能找到教程,但要在同一个项目里自然组合出来,并且跑得通、说得清,恰恰是多数初学者和准备面试的人跨不过去的坎。
所以我用“飞算 JavaAI”时,给它定下的第一个目标并不是生成一个花哨的首页,而是让它老老实实把上面这套后端链路完整搭出来。我核心关心的是:它生成的代码是“能跑”还是“能扛”?增删改查看起来简单,可一旦涉及重复学号约束、成绩唯一性、删除策略、统计精度这些细节,AI 是否有能力一次到位?这些疑问不实测,心里永远没底。
1.2 “30分钟”不是噱头,而是一种筛选标准
我以前手工搭过类似系统,连环境配置加前后端调试,怎么也要一整个下午。如果只把 AI 看作自动补全工具,那提升有限;但如果把它看作“能按描述批量产出模块的结对程序员”,那时间账就完全不一样了。
我给这次实战设了一个硬性时间上限:30 分钟。这 30 分钟里包含需求确认、数据库生成、后端代码生成、简单页面联调和演示,不包括我临时去背 Java 语法、去查 Spring Boot 注解怎么写的成本。这个标准比较现实,因为真正限制 AI 项目落地速度的往往不是打字速度,而是你对需求的拆解速度,以及你遇到报错之后的排查速度。这两个能力,AI 不能替你完成,但它能放大你的效率。
1.3 先划清楚 AI 能做什么、不能做什么
实测前我先给自己划了条边界。飞算 JavaAI 这类工具擅长的是在给定技术栈和需求描述后,批量生成稳定、重复、模块化的 Java 代码,比如 Mapper 接口、Service 实现、Controller 路由、基础页面模板。这部分极其省力。
但它不擅长替你拍板,比如“学生被删除后,历史成绩应该怎么处理”“登录用 Session 还是 JWT”“成绩是否允许小数”。如果需求文档里没写清楚,它就会自己按默认习惯猜,猜错以后你反而要花更多时间去返工。所以所谓的“AI 生成”,真正前置工作是“人把需求压缩成 AI 不用猜的规格说明书”。这也是全篇最核心的方法论。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手前 5 分钟,把需求“压实”到 AI 输入框之前
2.1 拆需求先拆角色,别急着拆页面
很多人拿到“学生成绩管理系统”后,第一反应是打开画图工具开始画页面,这就反了。页面是给角色用的,角色没定,页面和接口都会失控。
我这次把角色收敛成两类:
- 管理员:负责学生信息、课程信息、成绩的维护,能查看所有统计结果。
- 学生:登录后只能查看自己的成绩、平均分和课程排名,不能修改任何业务数据。
请注意,我没有加“教师”角色。教师角色会牵扯到“教师管哪些班级、哪些课程”之类的权限模型,对这个 30 分钟项目来说是明显的范围蔓延。真正跑完需求你会发现,学生能看自己的成绩,管理员能维护一切,已经完全能满足演示和答辩需要。系统做得大不是本事,界定清楚不做什么才是本事。
有了角色列表之后,功能清单就顺理成章了:
- 登录与退出,不同角色登录后展示不同菜单。
- 学生信息管理:新增、编辑、删除、按学号/姓名/班级筛选。删除采用逻辑删除。
- 课程信息管理:新增、编辑、删除。
- 成绩管理:录入、修改、删除。同一学生同一课程只能有一条成绩。
- 成绩统计:按课程查看平均分、及格率、分数排名;学生个人查看自己的各科成绩汇总。
2.2 我发给 AI 的“项目开工提示词”长什么样
这一步是整个 30 分钟里最值得投入的 5 分钟。我给 AI 的初始提示词不是一句话,而是一份精简版需求规格书,我会包含背景、技术栈、实体关系、功能边界和数据库要求。下面是我实际使用过的模板,你可以直接复制修改:
text复制请用 Java + Spring Boot + MyBatis-Plus + MySQL + Thymeleaf + Bootstrap 5
帮我生成一个学生成绩管理系统。
用户角色只分两种:管理员和学生。
实体包括学生、课程、成绩。关系:
- 学生表存储学号、姓名、班级、性别、是否逻辑删除;
- 课程表存储课程编号、课程名称、学分;
- 成绩表存储学生ID、课程ID、成绩分数,并且同一学生同一课程最多只能有一条成绩。
功能要求:
1. 管理员登录后可以维护学生、课程和成绩;
2. 学生登录后只能查看自己的成绩列表、个人平均分和单科排名;
3. 所有请求必须做登录校验,未登录跳转登录页;
4. 统计功能需要输出总分、平均分、按分数降序排名;
5. 成绩分数允许 0 到 100 的两位小数;
6. 学生采用逻辑删除,删除后
