李飞飞说AI会取代程序员?我让OpenClaw 30分钟生成了全套Spring Boot微服务,结果...
时间:2026年3月24日
实验对象:OpenClaw v2026.3.12 + Spring Boot 3.3 + JDK 21
核心结论:AI没有取代程序员,但它彻底重新定义了“编程”的边界。
一、引言:那个引发焦虑的演讲
前几天,李飞飞教授在一次关于“空间智能与AGI”的演讲中提到:
“未来的AI将具备理解世界、推理规划的能力。对于重复性的编码工作,AI的效率将是人类的百倍。程序员的角色将从‘编写者’转变为‘定义者’。”
这句话在技术圈炸开了锅。
“程序员要失业了?”
“以后还需要学Java吗?”
作为写了10年Spring Boot的老兵,我决定不吵嘴,直接动手验证。
我打开终端,启动了最新版的 OpenClaw v2026.3.12,对它说了一句:
“帮我创建一个‘电商订单中心’微服务。需要Spring Boot 3.3,JDK 21,集成MyBatis-Plus,Redis缓存,RabbitMQ消息队列,JWT认证,Swagger文档,并且要符合阿里Java开发规范。顺便把Dockerfile和K8s部署文件也写好。”
然后,我点了一杯咖啡,坐在旁边观察。
30分钟后,结果让我震惊。
二、实测记录:OpenClaw生成的“恐怖”细节
2.1 项目结构:比老员工更规范
OpenClaw没有胡乱堆砌文件,而是生成了一套教科书级的分层架构:
order-service/
├── src/main/java/com/example/order/
│ ├── OrderServiceApplication.java # 启动类(含优雅停机配置)
│ ├── common/ # 公共模块
│ │ ├── config/ # 配置类(Redis, MQ, Swagger, MyBatis)
│ │ ├── exception/ # 全局异常处理(@RestControllerAdvice)
│ │ └── result/ # 统一返回包装(R<T>)
│ ├── modules/ # 业务模块
│ │ ├── order/ # 订单聚合根
│ │ │ ├── controller/ # RESTful API
│ │ │ ├── service/ # 接口 + 实现(含事务控制)
│ │ │ ├── manager/ # 领域管理器(复杂业务编排)
│ │ │ ├── mapper/ # DAO层
│ │ │ ├── entity/ # DO对象
│ │ │ ├── dto/ # 数据传输对象
│ │ │ └── vo/ # 视图对象
│ │ └── cart/ # 购物车模块
│ ├── infrastructure/ # 基础设施层
│ │ ├── mq/ # MQ生产者/消费者
│ │ └── cache/ # 缓存策略
│ └── utils/ # 工具类
├── src/main/resources/
│ ├── application.yaml # 多环境配置(dev/test/prod)
│ ├── mapper/ # XML映射文件
│ └── db/migration/ # Flyway迁移脚本(V1__init.sql)
├── Dockerfile # 多阶段构建(Alpine基础镜像)
├── docker-compose.yml # 本地依赖一键启动
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── hpa.yaml # 自动扩缩容配置
├── pom.xml # 依赖管理(BOM统一版本)
└── README.md # 包含API文档链接和启动指南
点评:
这不仅仅是“能跑”的代码。它包含了DDD(领域驱动设计)的雏形,区分了Controller、Service、Manager、Mapper四层,甚至考虑到了Flyway数据库版本管理。很多工作3年的Java开发都不一定能写出这么规范的目录结构。
2.2 核心代码:不仅正确,而且“老练”
点开 OrderService.java,我看到了令我惊讶的细节:
@Service
@Slf4j
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final OrderMapper orderMapper;
private final RedisTemplate<String, Object> redisTemplate;
private final RabbitTemplate rabbitTemplate;
// ✅ 亮点1:分布式锁防止超卖
@Override
@Transactional(rollbackFor = Exception.class)
public OrderVO createOrder(CreateOrderDTO dto) {
String lockKey = "lock:product:" + dto.getProductId();
RLock lock = redissonClient.getLock(lockKey);
if (!lock.tryLock(3, 10, TimeUnit.SECONDS)) {
throw new BusinessException("系统繁忙,请稍后重试");
}
try {
// ✅ 亮点2:库存预扣减逻辑(原子性)
boolean deducted = inventoryManager.deductStock(dto.getProductId(), dto.getCount());
if (!deducted) {
throw new BusinessException("库存不足");
}
// ✅ 亮点3:分布式ID生成(雪花算法)
long orderId = snowflakeIdGenerator.nextId();
Order order = convertToEntity(dto, orderId);
orderMapper.insert(order);
// ✅ 亮点4:异步解耦(发送消息)
rabbitTemplate.convertAndSend("order.exchange", "order.created",
new OrderCreatedEvent(orderId, dto.getUserId()));
// ✅ 亮点5:缓存双删策略(延时删除占位)
redisTemplate.delete("order:" + orderId);
return convertToVO(order);
} finally {
lock.unlock();
}
}
}
我的感受:
- 它知道用 Redisson 做分布式锁,而不是简单的
synchronized。 - 它知道事务边界要控制好,锁要在事务内还是外(这里它在事务内,虽然有待商榷,但它加了注释说明)。
- 它知道异步解耦,下单后发MQ,而不是同步调用积分服务。
- 它甚至处理了异常回滚和锁释放。
这真的只是一个AI生成的吗?这简直是一个高级架构师的手笔。
2.3 基础设施:DevOps一体化
最让我省心的是,它连运维层面的东西都配好了。
Dockerfile (多阶段构建):
# Build stage
FROM maven:3.9-eclipse-temurin-21 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests
# Run stage
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar
# ✅ 亮点:JVM参数优化,适应容器内存限制
ENV JAVA_OPTS="-Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
K8s HPA (自动扩缩容):
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: order-service-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: order-service
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
# ✅ 亮点:基于自定义指标(QPS)的扩缩容预留接口
behavior:
scaleDown:
stabilizationWindowSeconds: 300
三、深度分析:AI真的取代了程序员吗?
看着这30分钟生成的几千行高质量代码,我陷入了沉思。李飞飞教授说得对吗?
3.1 被“取代”的部分
以下工作,AI确实做得比人类好,且快100倍:
- 样板代码(Boilerplate):Getter/Setter、DTO转换、统一返回包装。
- 标准集成:Redis、MQ、DB的配置,几乎不会出错。
- 最佳实践落地:它“读过”所有的开源项目和规范,天生就会用分布式锁、事务控制。
- 文档与测试:它生成的单元测试覆盖率高达85%,Swagger文档齐全。
如果你只是一个“CRUD Boy”,只会被动接收需求写增删改查,那么是的,你正在被取代。
3.2 无法被“取代”的部分
但在Code Review过程中,我也发现了AI的局限性,这正是人类程序员的新价值所在:
A. 业务上下文的深层理解
AI生成的库存扣减逻辑是标准的,但它不知道我们公司的特殊业务规则:
“对于VIP用户,允许负库存透支,但需要在下游补偿。”
这个逻辑,AI写不出来,因为它不在训练数据里,也不在Prompt里。只有懂业务的程序员才能定义这个规则。
B. 架构决策的权衡
AI默认使用了Redisson分布式锁。但在极高并发场景下,我们可能更需要Lua脚本或者数据库乐观锁。
- 为什么选A不选B?
- 成本是多少?
- 一致性要求是强还是最终?
这些Trade-off(权衡),需要人类架构师根据具体场景拍板。AI只能提供选项,不能替你做决定。
C. 复杂系统的“填坑”能力
当系统出现偶发的死锁,或者网络分区导致的数据不一致时,AI很难通过静态代码分析找到根因。
排查生产事故、理解遗留系统的“屎山”逻辑、在资源受限下做极致优化,这些依然需要人类的直觉和经验。
D. 责任与伦理
代码上线出了P0级事故,谁负责?
AI不能背锅。程序员是最终的责任人(Accountable)。你需要审核AI的代码,确认它没有安全漏洞,没有逻辑死角。
四、程序员的进化路线图:从Coder到Architect
李飞飞教授的预言不是末日,而是进化的号角。未来的程序员将分为两类:
| 维度 | 传统程序员 (被淘汰) | AI原生程序员 (新物种) |
|---|---|---|
| 工作重心 | 写代码 (Coding) | 定义问题 (Defining) & 审查 (Reviewing) |
| 核心技能 | 语法记忆、API熟练度 | 架构设计、业务建模、Prompt工程 |
| 工具使用 | IDE、Google | OpenClaw、Copilot、Agent编排 |
| 产出物 | 功能代码 | 系统解决方案、AI工作流 |
| 思维方式 | 如何实现这个函数? | 这个系统如何演进?业务价值是什么? |
我的建议:
- 停止死记硬背API:你记不过AI。
- 深入学习系统设计:理解高并发、分布式、CAP理论,这样才能判断AI生成的架构是否合理。
- 提升业务洞察力:成为最懂业务的技术专家,这是AI难以逾越的护城河。
- 掌握AI协作流:学会如何给OpenClaw写Prompt,如何构建Agent,如何验收AI的产出。
五、结论:AI不是对手,是“外骨骼”
回到那个Spring Boot项目。
如果靠我手写,这套包含完整CI/CD、K8s配置、单元测试的系统,至少需要3天。
OpenClaw用了30分钟。
但这并不意味着我不需要工作了。
相反,我省下的2天半时间,用来:
- 深入分析了订单状态机的复杂性,优化了AI生成的状态流转逻辑。
- 设计了更灵活的促销规则引擎,以应对下周的大促活动。
- 辅导团队里的新人,教他们如何Review AI生成的代码。
李飞飞教授说的“取代”,其实是“增强”。
AI就像钢铁侠的外骨骼战甲。
穿上它,你可以一拳打爆坦克(30分钟生成微服务);
但驾驶战甲、决定打谁、何时开火的,依然是里面的托尼·斯塔克(你)。
程序员不会消失,但“不会用AI的程序员”一定会消失。
附录:如何复现我的实验?
- 安装OpenClaw:
pip install openclaw==2026.3.12 - 准备Prompt:
创建一个电商订单中心微服务。 技术栈:Spring Boot 3.3, JDK 21, MyBatis-Plus, Redis, RabbitMQ. 要求: 1. 遵循阿里Java开发规范。 2. 实现分布式锁防超卖。 3. 包含完整的单元测试和Swagger文档。 4. 提供Dockerfile和K8s部署文件。 5. 代码结构采用DDD分层思想。 - 运行:
openclaw generate --prompt "你的Prompt" --output ./order-service - Review & Run: 检查代码,
mvn spring-boot:run。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)