news 2026/5/1 11:35:54

AI 辅助开发实战:基于大模型高效完成购物网站毕业设计报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI 辅助开发实战:基于大模型高效完成购物网站毕业设计报告


1. 痛点:代码+报告,时间只有四周

大四下学期,白天实习、晚上论文,老师还催着“系统要演示、报告要胶装”。典型的一天是这样循环的:

  • 上午调通支付接口,下午发现字段命名全乱,改到半夜;
  • 凌晨两点对着空白 Word 写“5.1 系统架构”,结果只憋出三行字;
  • 第二天早八答辩彩排,PPT 里还缺一张 ER 图。

编码和文档双重压力,本质上是“上下文切换”太频繁:刚进入代码区,又被格式、字号、引用文献拉回写作区,效率自然腰斩。

2. AI 工具怎么选?一张表看懂

场景GitHub Copilot通义灵码Claude 3.5
需求→用户故事补全快、中文提示弱中文需求理解好长文本梳理清晰
数据库建模靠注释猜字段ER 图一键生成可输出 PlantUML
API 开发实时补全,Clean Code 风格好注释→代码同步适合写复杂业务注释
报告生成不适合长文模板多,可直接出章节逻辑段落最自然

我的组合打法:

  1. 用 Claude 先出“系统总体结构”文字稿;
  2. 把文字稿粘到通义灵码生成对应 ER 图、时序图;
  3. 编码阶段让 Copilot 补 JWT、订单状态机,省掉 40% 敲代码时间。

3. 最小可行购物网站(Spring Boot + Vue)

功能边界:注册登录、商品列表、下单、支付回调、后台改状态。只保留毕业设计必考的核心链路,方便写报告时“有图有真相”。

3.1 项目骨架

shopping-mini/ ├── back/ (Spring Boot 33.1) └── front/ (Vue3 + Vite)

3.2 JWT 鉴权过滤器(back)

@Component @RequiredArgsConstructor public class JwtFilter extends OncePerRequestFilter { private final JwtUtil jwtUtil; private final UserService userService; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { String token = resolveToken(request); if (token != null && jwtUtil.validate(token)) { String username = jwtUtil.getUsername(token); UserDetails user = userService.loadUserByUsername(username); UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( user, null, user.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(auth); } chain.doFilter(request, response); } private String resolveToken(HttpServletRequest req) { String bearer = req.getHeader("Authorization"); if (bearer != null && bearer.startsWith("Bearer ")) { return bearer.substring(7); } return null; } }

要点:

  • 利用OncePerRequestFilter保证一次请求只过滤一次;
  • 失败直接放行,后续接口用@PreAuthorize兜底,逻辑更干净。

3.3 订单状态机(back)

public enum OrderState { PENDING_PAY, PAID, SHIPPED, COMPLETED, CANCELLED; public boolean canPay() { return this == PENDING_PAY; } public boolean canShip() { return this == PAID; } public boolean canComplete() { return this == SHIPPED; } public boolean canCancel() { return this == PENDING_PAY || this == PAID; } } @Service @RequiredArgsConstructor public class OrderService { private final OrderRepo repo; @Transactional public void pay(Long orderId) { Order o = repo.findById(orderId).orElseThrow(); if (!o.getState().canPay()) throw new BizException("非法支付"); o.setState(OrderState.PAID); } @Transactional public void ship(Long orderId) { Order o = repo.findById(orderId).orElseThrow(); if (!o.getState().canShip()) throw new BizException("非法发货"); o.setState(OrderState.SHIPPED); } }

状态机把“能不能做”封装进枚举,Service 只看业务,不写if-else堆成山。

3.4 Vue 端调用示例(front)

// api/order.js import axios from '@/utils/request' export function payOrder(id) { return axios.post(`/order/${id}/pay`) } // views/Order.vue const handlePay = async () => { await payOrder(props.orderId) ElMessage.success('支付成功') emit('refresh') }

4. 让 AI 帮你写报告,但别当甩手掌柜

步骤拆解:

  1. 把“需求段落”喂给 Claude,让它先生成 300 字中文概述;
  2. 将概述粘到通义灵码“论文助手”,选“系统设计”模板,自动生成 4 级标题:架构图、时序图、类图、数据库设计;
  3. 把生成的 PlantUML 粘到 PlantUML 在线 导出高清 PNG,插回 Word;
  4. 测试用例、安全性分析同理,先给 AI 关键词“输入合法性、越权、SQL 注入、XSS”,让它按学校格式列 1.2.3.,再人工补真实数据。

这样,报告 80% 框架 AI 搞定,留下 20% 人工润色,既保证学术规范,也避免“查重”飘红。

5. 性能与安全:AI 写的代码也要过安检

  • SQL 注入:让 AI 用 JPA / MyBatis-Plus 的Example@Query写法,禁止拼接字符串;
  • XSS:Vue 默认转义,后台富文本用 Jsoup 白名单过滤;
  • 状态机幂等:在OrderState加锁版本号,AI 容易忽略,需要手动补上;
  • 性能:AI 常给出 N+1 查询,打开spring.jpa.properties.hibernate.show_sql=true,看到多余语句就加@EntityGraph
  • 敏感操作日志:AI 不记得写“谁点了发货”,在OrderService.ship()里手动加@Log("订单发货")

一句话:AI 是高速打字机,安全与性能仍是程序员的责任。

6. 避坑指南

  • 人工 Review 不可省:AI 会把别人的 GitHub 代码原样拼过来,查重系统一眼识破;
  • 逻辑一致性检查:AI 可能前端给你axios.put,后端却生成@PostMapping,跑不通还找不到原因;
  • 引用文献自己找:AI 会“编”出一篇看起来正规的论文,其实 DOI 不存在;
  • 别让 AI 决定架构:它爱用“微服务”这个词,毕业设计真拆成 5 个服务,服务器跑不动,老师也不会给你高分;
  • 每完成一个模块,git commit 写清楚“AI 生成 / 人工修改”,方便回滚,也体现过程分。

7. 交付演示:把 AI 当 Pair,而不是枪手

答辩时老师最爱问:“这段订单状态为什么要加版本号?”
如果你一句“AI 写的”甩锅,现场气氛直接零下。
正确姿势是:先让 AI 给出方案,自己再查《Java 并发实践》补理论,最后把“乐观锁防止并发修改”写在报告里——既展示工程能力,也体现你理解原理。

8. 思考题:AI 生成的毕业设计,如何体现个人工程能力?

  1. 重构一个 AI 生成的模块,比如把“一口价”改成“阶梯优惠”,用策略模式替换if-else
  2. 在报告里加“迭代记录”附录,放三张截图:AI 初版 → 你的重构 → 单元测试通过;
  3. 性能压测:把 AI 写的联表查询从 1200 ms 压到 180 ms,写清加索引、改 SQL、缓存三步曲。

动手改一行代码,比让 AI 写十页报告更能证明你是合格工程师。

祝各位毕业顺利,把 AI 当加速器,别当驾驶座。代码跑通、报告胶装那一刻,你会感谢那个“又写又改”的自己。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:57:53

bge-large-zh-v1.5入门必看:Jupyter调用OpenAI兼容API完整步骤

bge-large-zh-v1.5入门必看:Jupyter调用OpenAI兼容API完整步骤 1. 为什么你需要了解bge-large-zh-v1.5 在做中文搜索、知识库问答、文档相似度匹配这些事情时,你有没有遇到过这样的问题:关键词搜不到相关内容,或者两个意思差不多…

作者头像 李华
网站建设 2026/5/1 6:15:56

Chatbot 客户端性能优化实战:从并发瓶颈到高效响应

Chatbot 客户端性能优化实战:从并发瓶颈到高效响应 线上客服机器人高峰期卡顿?本地 CPU 飙到 80 % 用户还在抱怨“转圈圈”?本文把最近落地的 chatbot 客户端性能翻新过程拆成 5 个阶段,既讲思路也给代码,最后附上可复…

作者头像 李华
网站建设 2026/5/1 7:17:53

网页内容永久保存:WebSite-Downloader探索指南

网页内容永久保存:WebSite-Downloader探索指南 【免费下载链接】WebSite-Downloader 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 当你需要永久保存网页内容时,是否遇到过这些难题?重要的在线资料突然失效、学…

作者头像 李华
网站建设 2026/5/1 7:38:42

HeyGem为何选Gradio做界面?轻量交互优势分析

HeyGem为何选Gradio做界面?轻量交互优势分析 HeyGem数字人视频生成系统批量版WebUI版,由开发者“科哥”基于主流AI模型二次开发构建,已在实际内容生产场景中稳定运行。它不依赖复杂工程架构,却能完成高质量口型同步视频的批量合成…

作者头像 李华
网站建设 2026/5/1 9:56:45

Clawdbot容器化部署:Docker与K8s实践指南

Clawdbot容器化部署:Docker与K8s实践指南 1. 引言 在当今云原生技术蓬勃发展的背景下,容器化部署已成为AI应用交付的标准方式。Clawdbot作为一款功能强大的开源AI助手,通过容器化部署可以显著提升其可移植性、可扩展性和运维效率。本文将手…

作者头像 李华
网站建设 2026/5/1 7:36:31

LabNote深度测评:解决科研数据碎片化的协作式实验记录方案

LabNote深度测评:解决科研数据碎片化的协作式实验记录方案 【免费下载链接】zenodo Research. Shared. 项目地址: https://gitcode.com/gh_mirrors/ze/zenodo 在科研活动中,实验数据的产生、管理与共享始终是研究工作的核心环节。然而&#xff0c…

作者头像 李华