AI写不出可用产品,开发者的工作并未消失

被夸大的"AI自动生成产品"神话
随着大语言模型和各类AI编程助手的爆发式增长,一种颇具诱惑力的叙事正在业界流行:只要给AI一句提示词,它就能"生成"一个完整、可用的产品。从落地页到全栈应用,从原型到上线,仿佛开发者只需动动嘴皮子。
当前主流的大语言模型(LLM)如GPT-4、Claude、Gemini等基于Transformer架构,通过在海量代码和文本语料上进行预训练,学习到了代码模式、语法规则和常见编程范式。Transformer架构由Google在2017年的论文《Attention Is All You Need》中提出,其核心创新在于自注意力机制(Self-Attention),允许模型在处理序列数据时同时关注输入的所有位置,而非像传统RNN那样逐步处理。具体而言,自注意力通过计算Query、Key、Value三个矩阵的点积注意力权重,使得序列中任意两个位置之间的信息传递路径长度降为O(1),而传统LSTM/GRU的路径长度为O(n)。对于代码生成而言,这意味着模型能够捕捉到函数定义与调用之间的长距离依赖关系,比如在第500行调用的函数能"看到"第50行的函数签名定义。但它本质上是在学习token之间的统计共现概率——即给定前文token序列后,下一个token出现的条件概率分布——而非建立代码的抽象语法树(AST)级别的语义理解。AST是编译器前端将源代码解析后形成的树状结构,其中每个节点代表一个语法结构(如条件语句、循环、函数声明),节点之间的关系代表嵌套和组合规则。真正的语义分析需要理解类型系统、作用域规则、控制流和数据流,而LLM仅凭统计模式无法可靠地推断这些属性。这就导致AI可能生成语法正确但语义错误的代码——比如正确使用了API的调用格式,却传入了逻辑上不合理的参数组合,或者生成了类型检查能通过但运行时必然抛出异常的代码。
而GitHub Copilot、Cursor、Windsurf等AI编程助手则在此基础上进行了针对代码生成场景的微调和工程优化。以GitHub Copilot为例,其底层最初基于OpenAI Codex模型(GPT-3的代码微调版本),后演进为基于GPT-4系列。这些工具采用了多种工程策略来提升代码生成质量:Fill-in-the-Middle(FIM)训练目标让模型不仅能续写代码,还能根据上下文填充中间空缺;检索增强生成(RAG)机制通过索引当前项目文件来提供更相关的上下文;而Cursor等工具还引入了整文件编辑的diff生成模式。然而,这些工具的核心能力本质上仍是"模式匹配与续写"——根据上下文预测最可能的下一段代码,而非真正理解代码的语义和运行时行为。它们无法执行代码、无法观察运行时状态、无法进行形式化验证,其"理解"完全建立在训练数据中的统计规律之上。这一技术特性,决定了它们的输出天然存在局限性。
然而,冷静审视后会发现——AI并不能生成可用的产品,那依然是你的工作。
这个观点看似朴素,却直指当下AI工具热潮中最容易被忽视的现实:AI生成的是"代码片段"或"看起来能跑的Demo",而不是经得起真实用户、真实数据、真实边界条件考验的"产品"。二者之间横亘着巨大的鸿沟,而填平这道鸿沟的,仍然是人类工程师的判断力与责任感。

AI生成代码与可用产品之间的距离
很多开发者都有过类似体验:用AI生成一段代码,第一眼看上去逻辑通顺、语法正确,甚至能在示例场景下正常运行。但一旦投入真实环境,问题就接踵而至——未处理的异常、被忽略的边界情况、脆弱的错误处理、被硬编码的假设、以及潜在的安全漏洞。
在软件工程中,从Demo到Production-ready产品之间存在一个被称为"最后90%"的工程鸿沟。这一概念与Tom Cargill提出的"90-90法则"一脉相承:前90%的代码花费90%的开发时间,剩下10%的代码花费另外90%的开发时间。业界的经验法则告诉我们:实现核心功能只占总工作量的10%,而错误处理、日志监控、性能优化、安全加固、数据迁移、部署流水线、可观测性等"非功能性需求"占据了剩余90%的工作量。这些非功能性需求可以进一步细分为多个维度:运维就绪性(部署自动化、回滚机制、蓝绿发布)、韧性工程(熔断器、限流、优雅降级、混沌工程测试)、合规性(数据隐私法规如GDPR/CCPA的技术实现、审计日志)、以及性能工程(负载测试、容量规划、缓存策略、数据库查询优化)。AI工具目前主要擅长的是前10%的功能实现,对后90%的系统工程工作缺乏整体把控能力。这也解释了为什么AI生成的Demo看起来令人印象深刻,但距离可上线的产品仍有漫长的路要走。
产品不等于功能的堆砌
一个真正可用的产品,远不止于"实现了某个功能"。它需要考虑:
- 可靠性:在网络抖动、数据异常、并发冲突时是否依然稳定;
- 安全性:用户输入是否被正确校验,权限边界是否清晰;
- 可维护性:代码结构是否便于后续迭代,而不是一堆"能跑但没人敢改"的黑盒;
- 用户体验:交互是否符合真实用户的心智模型,而非机械地满足需求描述。
关于安全性,值得特别展开说明。AI生成的代码中常见的安全问题包括SQL注入(未使用参数化查询)、XSS攻击(未转义用户输入)、不安全的反序列化、密钥明文存储等OWASP Top 10漏洞。OWASP(开放式Web应用安全项目)Top 10是全球公认的Web应用十大安全风险清单,每隔数年更新一次。2021年版本中,Broken Access Control(访问控制失效)跃居首位,其次是加密机制失效和注入攻击。斯坦福大学2022年的一项研究发现,使用AI编程助手的开发者编写的代码在安全性上显著低于不使用AI助手的对照组,且使用AI的开发者对自己代码安全性的信心反而更高——这形成了一种危险的"虚假安全感"。AI生成代码中频繁出现这些漏洞的根本原因在于:训练语料中大量来自Stack Overflow、GitHub公开仓库的代码本身就包含安全缺陷——据研究统计,GitHub上公开的代码仓库中约有超过10%包含已知的安全反模式——而模型在生成时倾向于复现高频出现的模式,无法区分"流行的代码"与"安全的代码"。更关键的是,安全性往往是上下文相关的——同一段代码在内部微服务间调用时可能无害,但暴露给外部用户时就构成严重漏洞,而AI缺乏对部署环境的感知能力。例如,一个内部服务间的HTTP调用可能不需要身份验证,但如果AI将相同模式应用到面向公网的API端点,就构成了未授权访问漏洞。
同样,所谓"硬编码假设"是指在代码中将本应可配置或动态获取的值直接写死——例如假定数据库连接永远可用、用户输入永远合法、API响应格式永远不变、时区永远是UTC、列表永远非空。这在Demo中无害,但在生产环境中会导致系统极其脆弱。生产环境的本质特征是"一切皆可失败"——网络分区、磁盘满、DNS解析超时、第三方API限流、时钟漂移等问题不是"是否会发生"的问题,而是"何时发生"的问题。这正是分布式系统中"八大谬误"(Fallacies of Distributed Computing)所警告的:网络是可靠的、延迟为零、带宽无限、网络是安全的……这些假设在本地开发时成立,但在分布式生产环境中全部不成立。
AI擅长的是"根据模式生成看似合理的输出",但它并不真正理解你的业务上下文,也无法为线上事故负责。这些恰恰是决定一个产品成败的关键,也正是人类开发者不可替代的价值所在。
AI是开发加速器,而非开发者替代者
承认AI无法独立造出产品,并不意味着否定它的价值。恰恰相反,AI在开发流程中扮演着越来越重要的"加速器"角色:
- 极大缩短样板代码的编写时间
- 帮助开发者快速探索技术方案
- 充当随叫随到的"结对编程"伙伴
- 在文档查询、单元测试生成、代码解释等方面显著提升效率
提到"结对编程",这个类比值得深入理解。结对编程(Pair Programming)是极限编程(XP)中的核心实践,由两位开发者共同工作,一人编写代码(Driver),另一人审查和思考(Navigator)。这一实践由Kent Beck在1999年的《Extreme Programming Explained》中系统化提出,其核心价值在于实时的知识共享和缺陷拦截——研究表明,结对编程虽然短期看似降低了个人产出效率,但能将缺陷率降低15%-60%,且显著提高代码的设计质量。AI编程助手在形式上模拟了Navigator的角色,但存在本质差异:人类结对伙伴能质疑需求的合理性("这个功能用户真的需要吗?")、指出架构层面的隐患("这样做会导致N+1查询问题")、分享跨项目的领域经验("上次我们在另一个项目中用过这种模式,后来发现在高并发下有问题"),甚至能说"等一下,我觉得我们解决的根本就不是正确的问题"。而AI只能在给定上下文内进行代码层面的建议,缺乏对业务全局、团队约定和组织文化的理解。它不知道你的团队有一个约定俗成的错误处理模式,不知道上周的事故复盘决定了不再使用某个库,也不知道产品经理刚刚在Slack里改变了需求优先级。因此,AI是一个优秀的"加速器",但它替代不了真正的工程协作。
开发者的责任转移,而非消失
有意思的是,当AI承担了大量"编写"工作后,开发者的角色重心正在从"写代码"向"审查、集成、判断"转移。你需要:
- 判断AI输出是否正确——这要求你对领域知识比以往更加精通,而不是更少;
- 将碎片整合成系统——AI给你的是零件,架构与集成仍需人来完成;
- 对最终结果负责——无论代码由谁写下,产品出问题时,承担后果的永远是团队和工程师。
认知心理学研究表明,代码审查(Code Review)所需的认知负荷往往高于代码编写本身,因为审查者需要在脑中模拟代码执行路径、评估边界条件、判断架构适配性。认知负荷理论(Cognitive Load Theory)由John Sweller在1988年提出,将人类工作记忆的负担分为三类:内在负荷(任务本身的复杂性)、外在负荷(信息呈现方式造成的额外负担)和相关负荷(建构知识结构的有益投入)。代码审查的内在负荷极高,因为审查者需要同时在工作记忆中保持多层抽象:代码的字面含义、其在系统中的角色、可能的执行路径、潜在的并发问题、以及与既有架构的一致性。而人类工作记忆的容量是有限的——Miller's Law指出工作记忆约能同时处理7±2个信息块。
这里涉及到人因工程学中的一个经典概念——"自动化悖论"(Automation Paradox):当系统自动化程度越高时,人类操作者越难以在自动化失效时及时有效地介入。这一悖论最初由Lisanne Bainbridge在1983年的经典论文《The Ironies of Automation》中系统阐述。在航空领域,过度依赖自动驾驶导致飞行员手动操作能力退化的案例已有充分记录——法航447航班(2009年)的空难调查报告明确指出,当自动驾驶因皮托管结冰而断开后,飞行员因长期依赖自动化而丧失了对飞机状态的正确判断能力。美国FAA随后发布了多项关于"手动飞行技能保持"的指导文件。软件开发中正在出现类似现象:当开发者习惯了AI生成代码后,其手动编写和调试代码的能力可能会逐渐退化——特别是对底层数据结构、算法复杂度和系统调用的直觉理解。但恰恰是在AI出错时(而AI必然会出错),才最需要这些能力。Daniel Kahneman在《思考,快与慢》中描述的System 1(快速直觉)与System 2(慢速审慎)思维框架也适用于此:AI鼓励了System 1式的快速接受——当AI生成的代码看起来"差不多对"时,开发者的大脑倾向于节省认知资源而选择直接接受,而非费力地进行深度审查。但代码审查本质上需要System 2式的深度分析——刻意激活慢速思维来质疑每一个假设和边界条件。
当AI大量生成代码后,开发者面临的实际上是持续高强度的审查任务。这也是为什么一些研究显示,使用AI编程助手后虽然代码产出量显著增加,但缺陷引入率也可能上升——GitClear在2024年的分析报告指出,自GitHub Copilot广泛使用以来,代码变更中"moved code"和"copy-pasted code"的比例显著上升,而经过深思熟虑的重构比例下降。如果开发者的审查能力跟不上AI的生产速度,质量债务会快速累积,最终在生产环境中以故障的形式爆发。这类似于金融领域的杠杆效应:放大了收益(生产速度)的同时也放大了风险(缺陷累积),而风险的暴露往往具有突然性和不可预测性。
换句话说,AI降低了"生产"的门槛,却抬高了"判断"的门槛。那些以为可以借此偷懒的人,往往会在生产环境中付出代价。
AI时代对开发者与团队的启示
对于开发者而言,与其焦虑"AI会不会取代我",不如认清一个更务实的现实:AI重塑了工作的构成,但没有取消工作本身。
保持技术深度依然重要
如果你把AI当作免除思考的借口,放弃对底层原理的理解,那么你将逐渐失去判断AI输出好坏的能力,最终沦为一个只会复制粘贴、却不知对错的"提示词操作员"。
相反,真正能在AI时代脱颖而出的,是那些既能高效驾驭工具、又对系统有深刻理解的工程师。这里的"系统理解"不仅指代码层面,还包括对分布式系统可观测性的认知——现代软件产品运行在复杂的分布式环境中,需要完善的可观测性(Observability)体系,包括日志(Logging)、指标(Metrics)、链路追踪(Tracing)三大支柱。可观测性这一概念源自控制理论,由Rudolf E. Kálmán在1960年提出,原始定义是:如果一个系统的任意内部状态都可以通过其有限时间内的外部输出来唯一确定,则该系统是可观测的。在现代分布式系统中,这一概念被重新诠释为:能否仅通过系统产生的遥测数据(Telemetry)来诊断任何未预见的生产问题,而无需部署新代码或新的检测手段。
日志记录离散事件,适合事后分析和审计——结构化日志(如JSON格式)配合集中式日志平台(如ELK Stack或Loki)使得跨服务的日志关联查询成为可能;指标是随时间变化的数值聚合,适合设置告警阈值和趋势分析——Prometheus的多维数据模型和PromQL查询语言已成为业界标准,而RED方法(Rate、Errors、Duration)和USE方法(Utilization、Saturation、Errors)提供了系统化的指标设计框架;链路追踪则记录单个请求在多个微服务间的完整调用链路,适合定位延迟瓶颈和故障传播路径——每个请求被分配唯一的Trace ID,沿调用链传播,使得工程师能看到一个用户请求从网关到数据库再到响应的完整路径和各环节耗时。
OpenTelemetry(由OpenTracing和OpenCensus合并而成)已成为这一领域的事实标准,提供了跨语言的统一API和SDK来生产、收集和导出遥测数据。但正确实施可观测性需要对业务语义的深刻理解——比如哪些指标真正反映用户体验(如P99延迟而非平均延迟,因为平均值会掩盖长尾用户的糟糕体验)、如何设置有意义的告警而避免告警疲劳(研究表明,当告警噪声率超过50%时,运维团队会开始忽略所有告警)、如何在日志中携带足够的上下文信息而不泄露敏感数据(需要在可诊断性和数据隐私之间找到平衡)。这些决策高度依赖领域知识和运维经验,远非AI自动生成所能覆盖。
当生产环境出现故障时,工程师需要通过这些信号快速定位根因并修复——这个过程通常涉及假设-验证循环:观察异常指标→查看相关日志→追踪具体请求→形成假设→验证或排除→缩小范围→定位根因。这个诊断过程需要对系统架构的全局认知、对近期变更的了解、以及对故障模式的经验积累。AI生成的代码通常不会主动考虑这些运维需求,也不了解团队的告警策略、SLA承诺和故障响应流程。它不知道你的团队约定了P99延迟不超过200ms、服务可用性需达到99.95%、以及每次部署后需观察30分钟的金丝雀指标。这意味着即使AI写出了"能跑"的代码,将其变成"可运维"的生产系统仍需要大量人工设计和工程投入。
产品思维比以往更值钱
当"写出代码"变得越来越廉价,"知道该写什么、为谁写、如何验证它真的解决了问题"就变得愈发珍贵。理解用户、把握需求、权衡取舍、对质量负责——这些围绕"产品"而非"代码"的能力,正是AI短期内难以触及的护城河。
这也引出了一个更深层的思考:当代码生成的边际成本趋近于零时,软件行业的价值创造将越来越集中在"决策层"——决定做什么、不做什么、何时发布、如何衡量成功。从经济学角度看,当某一生产要素的成本急剧下降时,价值链会发生结构性迁移——价值从该要素转移到与之互补的稀缺要素上。这一原理可以用互补品经济学来理解:当互补品价格下降时,其互补物的需求和价值上升。Joel Spolsky早在2002年就在其著名文章《Strategy Letter V》中阐述了这一策略——"聪明的公司试图将其产品的互补品商品化"。
历史上,当存储成本趋近于零时(从2000年的每GB约10美元降至2024年的不到2美分),数据管理和分析能力变得更值钱,催生了大数据和数据工程的整个行业;当计算成本大幅下降时(云计算按需付费模式使计算资源几乎无限弹性供给),算法设计和架构能力的价值上升,催生了机器学习工程师这一角色;当网络带宽成本趋近于零时,内容创作和分发策略变得更值钱,催生了整个内容经济。同理,当代码编写成本趋近于零时,软件行业的价值将进一步集中在需求洞察、系统设计、质量保障和运维可靠性等环节。
这也解释了为什么Product Engineer(产品工程师)和Staff+ Engineer(高级技术专家)这类强调全局判断力的角色,在AI时代反而更受重视。Product Engineer这一角色模糊了传统产品经理与软件工程师的边界,强调工程师应直接面对用户需求和业务指标,而非仅仅接收PRD并转化为代码。Staff+ Engineer(Staff、Principal、Distinguished等高级技术层级的统称)则强调跨团队的技术决策、系统架构的长期演进规划、以及在模糊和冲突的需求中做出权衡——这些都是需要深厚经验积累和整体视角的能力。他们的核心价值恰恰在于"知道该做什么"和"确保系统在生产中可靠运行",而非"把已知方案转化为代码"。
这些判断需要对用户心理、市场时机、技术债务、组织能力等多维因素的综合权衡,远非一个提示词所能涵盖。真正的产品决策往往是在不确定性中做选择——应该优先修复技术债务还是上线新功能?应该为5%的边缘用户投入工程资源还是集中力量服务主流场景?何时应该重写系统而非继续修补?这些决策没有标准答案,需要在数据、直觉、业务约束和团队能力之间反复权衡。
结语
"AI不能生成可用的产品,那依然是你的工作"——这句话不是对AI能力的否定,而是对开发者角色的重新定位。工具在进化,但把想法打磨成真正可用、可靠、有价值的产品,这份工作,连同它所蕴含的判断力与责任感,依然牢牢握在人类手中。
对于每一位身处AI浪潮中的技术从业者来说,与其期待被"解放",不如主动去成为那个能驾驭工具、并为最终结果负责的人。因为归根结底,产品是人做出来的,AI只是让这件事变得更快,而非变得不需要你。
相关推荐

机器学习研究入门:必读论文清单与研究实习申请路径
为ML初学者整理从零到研究实习的完整路径,包括必读经典论文清单(AlexNet、ResNet、Transformer等)、论文阅读方法、复现技巧及研究实习申请的实用建议。

Claude Code 入门实战教程:安装配置到自动化开发完整指南
详解Claude Code从环境搭建、权限配置、Go目标自主循环、Skills技能系统、MCP协议集成到版本控制的完整开发流程,帮助开发者快速掌握AI编程自动化工具。

Gemini 3.7 Flash发布与GPT-5.6极速模式:AI开源迈向生态时代
谷歌发布Gemini 3.7 Flash专注编程与Agent优化,OpenAI推出GPT-5.6 Ultra-Fast模式实现14倍速度提升。AI开源从开放模型转向开放生态,Agent工具链与成本监控工具密集涌现,智能体工作流进入实用化阶段。