主线课程/3

3 课:用 AI 辅助搭 Spring Boot 工程骨架

生成最小可维护骨架,而不是最大模板工程

Spring Boot脚手架模块边界2h

脚手架阶段很容易让人产生一种错觉:AI 几分钟就能生成目录、依赖、配置和样板代码,所以这里应该是最容易提效的地方。事实正好相反。骨架一旦搭歪,后面所有需求、实现、测试和文档都会沿着歪掉的结构继续累积成本。

真实研发场景

新服务启动时,最容易高估“以后可能会用到什么”

一个常见的新项目启动画面是:还没确定第一版要交付哪些能力,就已经开始讨论要不要先建 apiapplicationdomaininfraadapter 多层目录,要不要把消息队列、缓存、搜索、异步任务、审计日志一次性接好。AI 非常擅长把这些“以后可能会用到”的想法快速生成成一个很大的骨架。

问题在于,大骨架并不等于好骨架。对于一个刚起步的 Spring Boot 服务,真正重要的是:第一版要解决什么问题、最少要有哪些依赖、哪些模块现在不建也完全不影响后续扩展。

本课的核心不是“搭得快”,而是“搭得轻”

骨架设计阶段最值得问的问题不是“还可以再补什么”,而是“哪些结构现在不需要存在”。AI 在这里应该扮演候选方案生成器和清单整理器,而不是一次性把终态架构全搭出来。

传统做法的痛点

过度脚手架会把未来的自由度提前锁死

表面收益实际代价
目录很多,看起来很专业新人根本不知道哪些包真的有职责
依赖一次性配齐项目一开始就背上不必要复杂度
配置项准备得很全维护者不清楚哪些配置已生效、哪些只是预留
所有层都先建好后续为了“符合结构”而不是“符合需求”写代码

AI 会把这种倾向放大,因为模型天然偏向给出“看起来完整”的结果。

脚手架阶段最常见的三个错误

  • 为未来可能存在的能力提前建模块
  • 把依赖和配置一次性拉满,缺少最小可运行基线
  • 目录是按理论分层建的,但和实际职责没有对应关系

AI 能提效到哪一步

AI 适合帮你快速起草这些内容

  • 最小模块候选:第一版需要哪几个包或职责区域
  • 依赖清单草稿:真正会被当前版本使用到的 starter 或库
  • 配置对象草稿:哪些环境参数现在就需要抽出来
  • 样板入口代码:应用启动类、配置绑定类、基础 health 接口

但这些事仍然要人工收口

内容必须人工判断的原因
模块边界取决于当前版本范围,不是理论最优图
依赖是否引入影响构建速度、维护成本和后续演化
目录颗粒度取决于团队规模和当前复杂度
预留能力预留过多会制造“空架构”

一个实用标准是:如果某个目录、配置或依赖在第一版没有直接被使用,就默认先不要加。

推荐工作流

从 MVP 倒推骨架,而不是从理想架构正推

推荐先写一份最小范围清单:

  • 第一版要暴露哪些接口
  • 第一版一定会访问哪些基础设施
  • 第一版需要哪些测试或启动验证
  • 第一版暂时明确不做什么

在这份清单基础上,再让 AI 起草骨架,效果会稳定得多。

五步最小骨架法

步骤AI 产出人工要做什么验证方式
1. 列 MVP 范围模块候选清单删除“以后再说”的内容是否能用一句话说清每个模块职责
2. 起依赖草稿pom.xml 依赖候选砍掉当前版本用不到的依赖项目依赖是否仍然最小
3. 起配置草稿application.yml 与配置对象草稿统一命名和前缀配置是否与代码绑定一致
4. 起入口样板启动类、基础 controller、配置类确认不引入无用抽象是否能快速读懂启动路径
5. 校验基线构建、测试、启动检查清单删除未使用结构是否形成可运行最小基线

一个避免“脚手架垃圾”的检查清单

  • 这个目录如果删掉,第一版是否仍可交付
  • 这个依赖有没有立即使用的代码
  • 这个配置项是否已经被绑定和读取
  • 这个抽象层是不是为真实复杂度服务,而不是为想象中的未来服务

与仓库代码和模板的映射

常见误用与风险

误用一:让 AI 一次性生成“企业级骨架”

结果通常是目录很多、职责很空、未来没来,维护成本先来了。

误用二:把预留能力当成已知需求

缓存、消息队列、搜索、异步任务都可能有价值,但不代表第一版都要先建。

误用三:有配置文件,却没有配置绑定和使用路径

这类“假配置”会让团队误以为某项能力已经接好。

误用四:骨架验收只看目录,不看可运行基线

真正应该检查的是能否构建、能否测试、能否启动,而不是目录树是否漂亮。

课后练习

建议直接在 ../课后练习/第3课/练习.md 中完成本课练习,并使用 ../课后练习/通用提交模板.md 保留 AI 输入、人工删改和验证结果。

如果你只做最小版交付,也至少保留四样东西:结构化输入、AI 产出摘要、人工判断记录、最终验证结果。

基础题

为一个新的后端小服务写一份 MVP 范围说明,只保留第一版真正需要的能力。

进阶题

让 AI 起一版最小 pom.xml 和模块清单,再人工删除你认为多余的依赖和目录,并解释原因。

挑战题

对照 demo/ 的配置与启动结构,设计一个“最小可运行骨架检查表”,用于你团队后续新服务启动。