AI 能写代码了,还要学设计模式、Spring 源码和 JVM 吗?

AI 能写代码了,还要学设计模式、Spring 源码和 JVM 吗?

Scroll Down

AI 帮我五分钟写完一个订单模块。同事问:「设计模式还要背吗?Spring 源码还有人看吗?JVM 是不是交给运维就行了?」

我的答案:都要,但不用像以前那样学。 AI 替掉的是「手写重复实现」,没替掉「判断对不对、出问题能不能查」。这三块,正好对应 选型、边界、排障——AI 写得越多,你越缺不得。


一、先搞清:AI 替掉的是什么

AI 很擅长 仍然是人负责的
CRUD、配置、常见样板代码 复杂 bug、性能、并发、内存
拼出「像 Spring 的代码」 事务为什么失效、Bean 为什么没注入
快速解释概念(表面) 线上 OOM、假死、Full GC 定位
一次生成大量代码 Review:能不能合、能不能上

一句话:日常「写」可以交给 AI,「懂」和「担责」还是你的。


二、设计模式:要会「认和选」,不必背完 23 种

还要学吗?

要。 但目标从「全会实现」变成「会识别、会选型、会识破过度设计」。

深度 干什么用 AI 时代还要不要
知道常见模式名 看懂 AI 生成的 Strategy、Factory ✅ 要
会选型 扩展点、解耦时选对工具,而不是堆 if-else ✅ 要
手写每种模式实现 面试、框架开发 ⚠️ 按岗位,不必全员

AI 写代码时怎么处理?

AI 爱「为了模式而模式」——简单业务套三层抽象,Review 时问三句:

  1. 这个模式解决什么问题
  2. 不用它代码会不会更简单?
  3. 团队其他人(和半年后的你)读得懂吗
// AI 常生成:为策略而策略
public interface DiscountStrategy { BigDecimal calc(Order o); }
// ... 三个实现类 + 工厂 + 上下文 ...

// 很多时候够用:清晰的分支 + 抽方法
public BigDecimal calcDiscount(Order order) {
    return switch (order.getType()) {
        case VIP -> vipDiscount(order);
        case NEW -> newUserDiscount(order);
        default -> BigDecimal.ZERO;
    };
}

个人建议: 掌握 8~10 个高频(单例、工厂、策略、模板、观察者、装饰、适配、责任链等),其余当手册查阅。


三、Spring:懂原理和边界,源码当字典查

还要学吗?

做 Java 后端,Spring 原理比逐行啃源码 ROI 更高

深度 干什么用
会用注解开发 日常 + 让 AI 写 Controller/Service
懂 IoC、AOP、事务传播、MVC 链路 Review AI 稿、解释「为什么失效」
读关键源码 遇到怪问题时查入口,而非通读

AI 写代码时常见坑(不懂 Spring 看不出来)

AI 常犯的错 你需要懂的点
@Transactional 包 Feign/HTTP 事务边界、同类自调用不走代理
同类内自调用加事务 代理机制,事务不生效
@Async、乱 @Autowired 字段注入 生命周期、循环依赖
在 Controller 写 SQL / 业务逻辑 分层边界
// AI 爱这么写——能编译,上线才爆
@Transactional
public void cancel(OrderId id) {
    orderRepo.updateStatus(id, CANCELLED);
    paymentClient.refund(id);  // 远程调用在事务里,连接占着等 HTTP
}

个人建议:

  • 不必脱产三个月通读 Spring 全家桶源码
  • 维护一份「失效场景清单」,遇问题再查对应源码类(如 TransactionInterceptor
  • 你定 Spec,AI 填实现,Spring 边界你来守

四、JVM:基础和排查必会,内核按岗位再深

还要学吗?

要对线上负责,就要会排查;不必人人成为 GC 算法专家。

深度 干什么用
堆栈、GC 种类、类加载、OOM 类型 听懂告警、看懂日志
jstack、jmap、MAT、Arthas 假死、OOM、内存泄漏定位
GC 调优、底层实现 中间件、大规模性能优化岗位

AI 写代码时怎么处理?

AI 容易写出:无界缓存、线程池乱建、大对象循环 new。代码能跑,压测或上线一周才爆。

你不需要每次都手写 JVM 参数,但需要:

AI 出稿 → 问:有没有静态 Map 只增不减?线程池谁关?
         → 上压测 / 看监控
         → 出问题:jstack 先看,再决定是否 heap dump

个人建议: 内存模型 + GC 基础 + 排查工具 必须会;G1/ZGC 调优细节、字节码级优化 按兴趣/岗位


五、一张表:学到哪一层够用

方向 还要学吗 推荐深度 别花时间
设计模式 会认、会选、识过度设计 背 23 种手写实现
Spring 原理 + 失效清单 + 按需查源码 通读全家桶源码
JVM 基础 + 排查工具 + OOM/GC 场景 非岗位相关内核论文级

六、AI 日常写代码,这些知识怎么接上去

可以记这个流程:

AI 出稿
  ↓ 设计模式:模式用对了吗?是否 over-engineering?
  ↓ Spring:事务、代理、分层、异步边界 OK 吗?
  ↓ 运行:压测 / 监控有没有异常信号?
  ↓ JVM:慢、OOM、假死 → 线程 Dump / Heap Dump
  ↓ 只有这时,才需要「很深」的那一层

平时 80%: 原理 + Review 级
20%: 线上出问题,再深挖源码 / JVM


七、时间怎么分配(参考)

占比 投在哪
40% AI 协作:Rules、Spec、Review 清单
30% Spring 原理 + 工程化(测试、CI、分层)
20% 设计模式(问题驱动,用到再学)
10% JVM 排查实战(结合线上/压测)

不必跟 AI 抢「写实现」;把省下的时间,补在 AI 替不了的地方。


八、还要不要「专门深入研究」?

我踩过一次:AI 给折扣逻辑生成了 Strategy + Factory + Context 三件套,我差点照单全收。后来对照业务——就 VIP 和新客两种,改成 switch 抽方法,少 4 个类,测试也好写。设计模式那节不是白学,是用来 拦住 AI 过度设计 的。

你的方向 建议
业务开发 + AI 提效 广度优先,不专门脱产深挖
架构 / Tech Lead 一条纵轴 深挖(性能→JVM;平台→Spring/中间件)
纯靠 AI 出活、自己 Review 弱 危险——至少 Spring 边界 + 基本排查要有

三句话收束:

  1. 设计模式——要,用来 Review AI,不是炫技。
  2. Spring——原理和边界必会,源码当字典。
  3. JVM——排查必会,内核看岗位。

AI 没有替你承担线上责任。这三块,就是「为什么这样写」和「错了怎么查」的底子。


参考内容