大家好,我是码农架构师,致力于长期分享,欢迎探讨、指正,觉得不错的,帮点赞加关。
AI时代程序员的焦虑
最近跟不少同行聊天,绕来绕去总会聊到同一个话题:AI会不会把我们干掉?
这种焦虑不是空穴来风。以前写一个增删改查,从建表、写接口到调前端,怎么也得大半天;现在把需求丢给AI,几分钟就能生成一版能跑的代码。写正则、写单测、翻译一段陌生语言的代码,AI比大多数人都快。再加上各家公司裁员、降本增效的消息一波接一波,很容易让人产生一种感觉:程序员是不是要变成"通用工种"了,谁都能靠AI糊一段代码出来,那我们这些年攒下的手艺还值几个钱?
我的看法是:会写代码这件事本身,确实越来越不值钱了;但"知道该写什么代码、代码该长成什么样"这件事,反而越来越值钱。
AI很强,但它有一个绕不过去的短板——它只对当下的、明确写出来的信息负责。你给它什么现状,它就基于什么现状作答;你没告诉它的业务规划、没写进需求的历史包袱、藏在团队脑子里的未来方向,它一概不知道。它能把一件事做对,却很难判断"这件事现在该不该这么做、以后会不会后悔"。
而这,恰恰是架构能力的用武之地。所以我的结论很简单:不被AI淘汰的秘诀,不是比AI打字快,而是比AI更懂架构、更懂代码。 AI负责把活干出来,我们负责决定这活儿往哪个方向干、干成什么骨架——把AI当成一个手很快但缺乏全局观的实习生来用。
如何破局
先上一张破局攻略图,把思路摊开:

一句话总结这张图:凡是"当下、明确、有标准答案"的部分,交给AI;凡是"面向未来、依赖判断、没有标准答案"的部分,人来兜底。 架构和代码这两条线,都遵循这个规律。下面分开说。
比AI更懂架构 - 目标架构演进
架构有三个核心原则:简单、适用、演进。这三个词按难度从低到高排列,也正好对应AI能帮到你的程度。
简单。 AI有丰富的知识储备,各种设计模式、主流方案信手拈来,让它给一个"教科书式"的简单方案,是它最擅长的事。这一层基本可以放手让它做。
适用。 适用意味着方案要贴合你的实际场景,而不是拿一套标准答案硬套。AI实现起来会稍微复杂一些,因为它不了解你的现状——你用的什么技术栈、现有代码怎么组织、有哪些历史约束。你得把这些现状信息足够充分地喂给它,它才能给出真正"适用"的方案,而不是一个漂亮但落不了地的方案。
演进。 这是AI最难、也是最考验人的一层。演进要求你不只看当下这个需求,还要看这个系统未来会长成什么样、业务接下来往哪走。AI没有你的业务规划,也不知道半年后要上的新功能,所以它默认只会为"眼前这个需求"作最优解,很难主动为未来预留扩展空间。这一层必须由人来把关:你要心里先有一张目标架构的蓝图,知道系统最终应该演进成什么样,然后在每一次需求里,推动它一点点向那张蓝图靠拢。
说白了,AI能帮你把每一步走稳,但"往哪个方向走、走成什么形状"这张地图,得攥在你自己手里。后面的案例,讲的就是演进这一层怎么和AI配合。
比AI更懂代码
聊完架构这个"面",再落到代码这个"点"。代码同样有三个核心:可读性、复用性、扩展性。规律和架构如出一辙——越靠近"标准答案"的,AI越擅长;越依赖全局判断的,越需要人。
可读性。 AI见过海量优秀代码库,命名规范、注释清晰、结构工整,这些日常的可读性需求它基本都能满足,甚至比不少人写得还整齐。这一层交给它,放心。
复用性。 AI实现复用其实不难,难在它"不知道你已经有什么"。它默认在自己的一亩三分地里干活,很容易顺手又造一个已经存在的轮子。所以你要特别跟它交代:先看看现有的工具类、公共方法、已有组件,能复用的别重写。把项目里可复用的家底告诉它,它就能用得很好。
扩展性。 这是代码层面最难的一环,一般要靠合理的代码分层来实现。它要求你对整个系统有全局视角:哪里该抽象、哪里该留接口、哪里将来会变。AI缺乏这种全局观,也不具备"陪着这个系统迭代好几个版本"的历史记忆,所以很难主动设计出好的扩展点。这里同样得由人来设计骨架、把握分层,再让AI去填充血肉。
规律很清楚:AI是把好用的凿子,但图纸得我们画。接下来用一个真实改造案例,把"演进"和"扩展"这两件最难的事,落到实处。
案例 - 基于演进对AI进行架构调整
光讲原则容易空,下面这个案例是实打实的一次改造,你会看到同一个需求,只因为我给AI的信息不同,它给出了三版完全不同的方案——而真正决定方案好坏的,不是AI,是我喂给它的"演进视角"。
【背景】
公司业务发展需要,要维护公司自己的银行账号信息,用于对外付款、凭证制作等场景。
【现状】
公司银行账号信息以前维护过,但它没有独立,而是和"用户银行卡绑定表"揉在了一起,靠一个"用户类型"字段来区分是公司账号还是个人账号。更麻烦的是,这份银行账号信息已经被多个场景用起来了——付款要用、页面展示要用,牵一发而动全身。
【需求】
要做一个独立页面来维护公司银行账户信息,维护的内容包括三块:
1、付款配置:是否支持银企直连、日限额、月限额、是否默认付款卡等。
2、基本信息:银行卡号码、银行卡归属名称、联行号、银行名称、开户行所在地(这些现状已有),以及银行卡性质、开通日期、银行卡账号类型、有效期、开户行、开户时间等(这些是新增的)。
3、主体信息:所属公司主体编码、公司主体名称等。
【方案设计】
同一个需求,我分三次、每次多给AI一点信息,得到了三版方案。
AI第一版设计(只读取需求、分析现状代码后完成设计):
新建一张独立的"公司银行卡信息表",把上面所有银行信息都搬进去,干干净净。
问题:这版方案看着最"标准",却踩了最大的坑——它没考虑到原有数据已经被付款、展示等多个场景用着。一旦新建表另起炉灶,这些老场景全都要跟着改造,工作量巨大,风险也高。AI不知道这些历史包袱,因为我没告诉它。
AI第二版设计(补充告知:现有表中的数据已经有多个场景在用,不能轻易搬走):
那就不动老数据了。直接在现有的"用户银行卡绑定表"里,把新增字段加上去,设计完成,老功能一行都不用改。
问题:这版解决了改造成本,却又走向了另一个极端——它只顾着"当下不出事",完全没给未来留余地。可从业务方向上看,公司银行账号管理和用户绑卡本就是两码事,未来一定要拆开独立维护。全堆在一张表里,等于把包袱越滚越大。AI依然不知道这个未来规划,因为我还是没告诉它。
AI第三版设计(再补充告知未来规划:公司账号和用户绑卡终将分开,让它把本次新增信息单独建表维护,原有信息仍留在用户绑卡表中):
新建一张"公司信息表",专门放本次新增的字段;已有的那部分信息,暂时仍维护在用户绑卡表里。这样一来,老功能不用改造,成本可控;同时新表已经独立出来,为未来"彻底拆分"埋好了伏笔,是一个可以平滑演进的中间态。
到这一版,方案才算真正落地:既没有第一版的高改造成本,也没有第二版的无扩展性,卡在了"当下能上、未来能走"的那个恰到好处的位置。
回过头看这三版的差别,AI的能力从头到尾没变,变的只是我给它的信息量:
第一版,它只知道需求,于是给了个理论最优、现实最差的方案;
第二版,我补上了现状约束,它学会了控制成本,但还是短视;
第三版,我补上了未来规划,它才终于设计出一个能演进的架构。
这就是"比AI更懂架构"最真实的样子:AI负责在你划定的框框里给出最优解,而那个框框——现状的约束、未来的方向——得由你来划。 现状信息决定了方案"适不适用",未来规划决定了方案"能不能演进",这两样恰恰是AI最缺、也最需要人补的东西。
写在最后
回到最初那个焦虑:AI会不会淘汰程序员?
我的答案是,它会淘汰那些只会"把需求翻译成代码"的人,因为这件事AI确实越做越好;但它淘汰不了那些"知道系统该往哪长、代码该怎么分层"的人,因为这件事依赖的是对业务的理解、对未来的判断、对全局的把控,而这些都建立在AI拿不到的信息之上。
所以别急着焦虑,也别把AI当对手。把它当成一个手快、知识广、但缺乏全局观和历史记忆的实习生:简单、标准的活儿放手让它干,涉及现状适配的活儿把信息喂足了让它干,而涉及演进方向和扩展骨架的活儿——你自己拿主意,让它执行。
比AI更懂架构、更懂代码,你就永远是那个划框框、画图纸的人。而这,就是不被AI淘汰的秘诀。
夜雨聆风