本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
氛围编程在 2025 年极为流行,以至于不少程序员出去面试,必谈氛围编程。
这不,最近就有网友私信我,说让我写写氛围编程。这期中不少人还不知道如何入门,也有人已经魔怔了,觉得程序员都可以裁掉了……
不管别人如何理解,但我觉得氛围编程并不是一个高大尚的东西。只要你开始用了,那你就已经在路上了。下面,我将抽出一点时间,深入探讨一下什么是氛围编程?它的起源?以及如何利用氛围编程在 Java 项目中实践。
我这里特别准备了 3 个从零开始的实战案例,尽量让大家 5 分钟上手!
什么是氛围编程?
以前我们是面向经验编程,面向百度编程,编写对象编程。现在又流行了一个氛围编程,那什么是氛围编程?为什么它如此火爆?
这一切都要从 Andrej Karpathy 等老外程序员说起了。
氛围编程的核心定义
氛围编程,英文称为 Vibe Coding,具体是谁第一个这么叫的,不好查证。也有人说是由 OpenAI 联合创始人、前特斯拉 AI 负责人Andrej Karpathy在 2025 年 2 月首次提出的编程范式。我们姑且也就这样认为吧。
它的核心理念是:开发者通过自然语言描述意图(“氛围”),由 AI 负责生成、完善和调试代码,从而将注意力从代码细节转移到创意和架构设计上。
这里的氛围,就是 Vibe 的直译。我认为这个词这样翻译一点也不好。不如叫做描述性编程、会话编程、意图编程等,这个氛围编程,太过陌生,这个词就能拦住不少人。
与传统编码相比,我认为氛围编程有四大核心特征。
- 意图驱动:用自然语言描述需求,而非编写精确语法
- AI 作为执行代理:AI 承担编码职责,开发者转为
产品经理 + 架构师角色 - 信任运行:通过执行结果验证代码,而非逐行审查
- 快速迭代:“描述-生成-运行-反馈”的高速循环
正如 Karpathy 所说:“使用现代 AI 工具编码,并不是真正的编码,我只是看到一些事物,并对它们进行描述,然后运行 AI 工具,最后复制粘贴,它大部分都能正确实现。”
技术演进历程
氛围编程并非凭空出现,而是 AI 技术发展的必然结果。
- 2010 年代:低代码/无代码平台萌芽
- 2021 年:GitHub Copilot 开启 AI 代码助手时代
- 2022 年底:ChatGPT 标志着会话式编码时代到来
- 2025 年:氛围编程从边缘实验变为主流趋势
有人预估,到 2025 年 12 月,基于氛围编程概念的 AI 编程工具活跃用户已超 1000 多万,年化订阅收入超过 1 亿美元甚至更多的厂商不在少数!
小白如何开始氛围编程?
或者说产品、测试、程序员等如何入门氛围编程?
不要认为只有程序员需要会氛围编程,测试等也需要的,尤其是自动化、安全性等领域的测试。产品人员也需要,哪怕是写写文档等。
环境准备三步走
对于 Java 开发者来说,开启氛围编程之旅只需简单三步。
- 选择 IDE 插件等工具:安装阿里 Qoder、GitHub Copilot 或通义灵码、Trae、CodeBuddy 等
- 配置 API 密钥或登录账号:连接大模型服务(如通义千问、GPT-4 等)
- 创建或打开项目:从简单的 Maven/Gradle Java 项目开始
Vibe Coding 提示词黄金法则
氛围编程的成败关键在于提示词质量。经过多数社区的实践,我总结出以下五大原则。
原则一:清晰描述意图。比如,看下面这个对比。
不好:“写一个排序”
好:“创建一个 Java 工具类,包含快速排序算法,要求:1. 支持泛型 2. 有详细的 Javadoc 注释 3. 包含单元测试”
原则二:提供充分的上下文,可以具体具体再具体些。
不好:“连接数据库”
好:“在 Spring Boot 项目中,创建一个 UserRepository 接口,使用 JPA 连接 MySQL 数据库,表结构包含 id、username、email 三个字段,需要实现根据 email 查询用户的方法”
原则三:迭代优化。不要一口吃个胖子。
1. 先生成基础版本
2. 运行测试,发现问题
3. 反馈错误信息给 AI:“运行报错 NullPointerException,在第 23 行,请修复”
4. AI 自动修正并优化
原则四:结构化表达。
使用以下模板:
【角色】你是一位经验丰富的 Java 架构师
【任务】创建一个 RESTful API
【要求】1. 使用 Spring Boot 3.x 2. 返回 JSON 格式 3. 包含 Swagger 文档
【约束】避免使用 Deprecated API
原则五:文档优先。
对于复杂的业务功能或项目,可以让 AI 先生成需求文档或项目目录、功能文档等。再让 AI 根据对应的文档,实现对应的模块或功能。这一条其实和原则二类似,提供充分的上下文。
即使再不济,让 AI 写写程序员厌烦的文档,也没问题吧。
3 个 Java 案例从 0 到 1
这里以阿里 Qoder 为例进行实战。或者我就不截图了,因为每个 AI 编程工具都大差不差,核心是氛围编程,工具不是唯一。
Qoder 核心功能介绍
阿里 Qoder 是氛围编程领域的代表性工具,提供四大核心能力。
- Spec 驱动的 Quest Mode:通过规格说明驱动 AI 完成任务。符合原则二和原则五。
- Repo Wiki:构建项目知识库,增强 AI 上下文理解。同上。
- 云端沙箱:安全执行和测试生成的代码。
- 多智能体并行:多个 AI Agent 协作完成复杂任务等。
案例 1
接下来,我们利用 5 分钟左右的时间,创建一个 Spring Boot RESTful API。
场景:快速搭建用户管理系统 API。
操作步骤如下。
一、在 Qoder 中打开新项目,输入提示词。
创建一个 Spring Boot 3.x 项目,包含 User 实体类(id, name, email, createdAt),
使用 JPA 进行数据持久化,提供完整的 CRUD RESTful API,
使用 H2 内存数据库,自动生成 Swagger API 文档
二、Qoder 自动生成项目结构和代码。
// User.java
@Entity
@Table(name = "users")
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(unique = true, nullable = false)
private String email;
@Column(name = "created_at")
private LocalDateTime createdAt;
}
// UserController.java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.findAll());
}
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
return ResponseEntity.status(HttpStatus.CREATED).body(userService.save(user));
}
}
三、运行验证。
mvn spring-boot:run,访问http://localhost:8080/swagger-ui.html。
最终的效果是,传统方式需要 30 分钟,使用 Qoder 仅 3 分钟不到即可完成!
案例 2
现有项目,智能工具类生成。比如,Java 日期处理工具。
场景:老项目中需要处理各种日期格式转换。
提示词设计如下。
创建一个名为 DateTimeUtils 的 Java 工具类,要求。
1. 包含字符串转 LocalDateTime 的方法,支持 yyyy-MM-dd HH:mm:ss 和 ISO 8601 两种格式
2. 包含计算两个日期相差天数的方法
3. 包含获取本月第一天和最后一天的方法
4. 所有方法必须是静态方法
5. 使用 DateTimeFormatter 线程安全
6. 包含完整的单元测试,使用 JUnit 5
7. 添加详细的注释和异常处理
Qoder 生成代码示例大致如下所示。
public class DateTimeUtils {
private static final DateTimeFormatter DEFAULT_FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter ISO_FORMATTER =
DateTimeFormatter.ISO_LOCAL_DATE_TIME;
/**
* 将字符串解析为LocalDateTime
* @param dateTimeStr 日期时间字符串
* @param pattern 格式模式,如果为null则尝试ISO格式
* @return LocalDateTime对象
* @throws DateTimeParseException 解析失败时抛出
*/
public static LocalDateTime parse(String dateTimeStr, String pattern) {
if (StringUtils.isBlank(dateTimeStr)) {
throw new IllegalArgumentException("日期字符串不能为空");
}
try {
if (pattern == null) {
return LocalDateTime.parse(dateTimeStr, ISO_FORMATTER);
} else {
return LocalDateTime.parse(dateTimeStr,
DateTimeFormatter.ofPattern(pattern));
}
} catch (DateTimeParseException e) {
throw new DateTimeParseException(
"无法解析日期: " + dateTimeStr, dateTimeStr, 0);
}
}
// 自动生成单元测试
@Test
void testParseWithDefaultPattern() {
LocalDateTime result = DateTimeUtils.parse("2025-01-15 14:30:00", null);
assertNotNull(result);
assertEquals(2025, result.getYear());
}
}
开发效率大大提升。传统方式需要 30 分钟编码左右的编码 + 10 分钟左右的测试,在使用 Qoder 工具后,2 分钟左右的时间就完成了,且测试覆盖率 100%!
案例 3
复杂业务逻辑,订单折扣计算系统。如果是更复杂的场景,可以要求 AI 使用规则引擎。
场景:电商系统中的促销规则引擎。
复杂的场景,建议使用分步提示词策略。
第一步:设计整体架构。
创建一个订单折扣计算系统,使用策略模式实现不同促销规则:
- 满减优惠(满 100 减 10)
- 会员折扣(VIP 8折)
- 优惠券抵扣(固定金额)
使用 Spring Boot 实现,支持规则链式组合
第二步:在第一步的基础上优化具体实现。
在 DiscountStrategy 接口中添加 calculate 方法的 Javadoc,
要求返回 BigDecimal 避免精度丢失,
并添加 @Transactional 注解保证数据一致性
第三步:生成单元测试。
为 DiscountService 生成边界条件测试:
1. 订单金额恰好满足门槛值
2. 多个优惠组合使用
3. 优惠金额超过订单总额的情况
如果单元测试有问题,可以继续会话交流,提供多轮修正。
最终生成核心代码大致如下所示。
public interface DiscountStrategy {
/**
* 计算折扣金额
* @param order 订单信息
* @return 折扣金额,使用BigDecimal保证精度
*/
BigDecimal calculate(Order order);
}
@Service
public class DiscountService {
private final List<DiscountStrategy> strategies;
public BigDecimal calculateTotalDiscount(Order order) {
return strategies.stream()
.map(strategy -> strategy.calculate(order))
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
}
氛围编程的最佳实践与避坑指南
不少人看到别人都是从一个新项目开始,老项目或现有项目无从下手。其实,完全没必要。
针对具体的函数、方法,甚至是加某些字段,改某些逻辑,都可以让 AI 生成。
下面是我总结的一些氛围编程的最佳实践与避坑指南,工大家参考!
黄金比例:人机协作
根据社区实践,推荐以下工作模式:
- 纯 Vibe 模式(20%):用于快速原型、周末项目、技术调研
- 负责任 AI 辅助(80%):生产代码必须经过审查、测试和理解
总之就是 AI 生成的代码,自己一定要 codereview 一遍。
风险提示与规避
常见陷阱如下。
- 代码质量债务:AI 生成的代码可能包含隐藏 bug。建议严格执行代码审查,使用 SonarQube 静态分析。
- 安全漏洞:敏感数据处理不当。建议,避免在提示词中暴露 API 密钥,使用环境变量。
- 知识产权风险:代码可能被上传到云端。建议使用企业私有化部署的 AI 服务。
- 技术能力退化:过度依赖导致基本功生疏。建议定期手写核心算法等,保持编程手感。
Java 开发者专属建议
- 结合 Javadoc:要求 AI 生成详细的 API 文档
- 利用 Lombok:减少样板代码,token 等,让 AI 专注于业务逻辑
- JUnit 5 最佳实践:强制 AI 使用 Assertions 和 ParameterizedTest
- SonarLint 集成:实时检测代码坏味道
总结
氛围编程正在推动开发者从代码工匠向架构设计师转变。2025 年,Java 开发者的核心竞争力不再是语法熟练度,而是:
- 需求洞察能力
- 系统设计思维
- AI 协作技巧
- 质量把控能力
氛围编程不是取代程序员,而是解放程序员。它让我们从重复劳动中解脱,专注于真正创造价值的设计和思考。
最好的氛围编程实践者,一定是理解代码背后原理的人。到目前为止,AI 还只是工具,让 AI 成为我们的超能力,而不是替代品!

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!