#技术债务

宝玉
1周前
AI本该助力新人,为何反而让高手更强? 作者:Can Elma “AI会不会彻底取代程序员?”类似的问题已经被问烂了,人们不断地尝试给出答案。虽然这个话题已经不新鲜,但我还是想分享一些自己的观察和思考。 起初,许多人都相信,未来公司会减少对高级工程师的依赖。毕竟,有了AI,初级程序员也能创造出高质量的代码——至少坊间流传的故事是这样的。然而现实却截然不同。AI并未如宣传中那样神奇,最终真正有效的组合,不是“新人 + AI”,而是“高手 + AI”。 为什么会这样? 我们来仔细看看,在代码编写上,AI到底哪里强、哪里弱。 AI擅长的事: • 快速生成大量样板代码(boilerplate)和脚手架(scaffolding)。 • 自动化重复、枯燥的任务。 • 尝试多种不同的实现方式。 • 借助快速迭代,迅速验证想法。 • 在需求清晰的前提下,快速交付功能。 这些特性帮助了谁?显然更利于高级工程师。对新人来说,想把AI的这些能力真正变成实际价值,要难得多。 AI出问题的地方: • 代码审查(Code review): AI无法真正“理解”代码。审查时可能有些帮助,但一旦涉及边缘情况(edge cases)——而AI生成的代码通常有更多边缘情况——最终还是需要资深工程师出马。 • 不好的指令(Bad prompts): 能写出高质量提示词的人,必须是那些真正懂得自己要做什么的人。如果使用者缺乏深入理解,即使AI看起来产出还行,实际也只是给项目埋下了无数隐患。 • 架构设计(Architecture): 没有扎实的架构,软件很快就会失去价值。当前AI并不擅长设计优秀架构,虽然表面上看起来似乎可以,但实际上,这种复杂推理仍然依赖人类。许多以弱架构起步的项目,最终深陷技术债(technical debt)泥潭。 • 代码质量(Code quality): 选择恰当的抽象层次、正确运用设计模式、保持代码的干净清晰,这些都是AI目前的短板。 • 安全性(Security): 新手搭配AI的组合更容易出现漏洞,就像盖一座房子忘了装门锁。虽说漏洞无处不在,但高级工程师至少能提高警觉和谨慎。 • 错误学习(Wrong learning): 新人如果不能正确判断AI产出的代码好坏,就会潜移默化地吸收错误知识。在公司里,这意味着制造的是损害而非价值。 以上这些问题,概括起来就是:AI暂时对高级工程师并没有威胁,甚至反而让他们更加强大。这里不是在批评新人,而是强调不应对他们抱有不切实际的期望,把他们扔到充满风险的环境中。 我们真正该如何用AI? • 快速原型开发(Fast prototyping): 想快速尝试新想法时,AI再适合不过。 • 加速重复任务(Speeding up routines): AI最重要的用途,就是自动化那些你已经非常熟悉并经常重复的工作。 • 跨领域协作(Multi-disciplinary work): AI可以弥补你知识上的短板,建议有用的函数库或方法,帮你快速连接不同领域的知识点。 • 功能测试(Function tests): 简单重复、风险较低的测试代码,AI可以帮你快速生成,并且容易进行人工复核。 从我的角度来看,这就是AI目前的现状。AI写的每一行代码,我们依然需要逐行审阅。它远远称不上完美:没有自我意识,只会模仿人类的推理,生成结果不可控(non-deterministic),所以我们才依靠确定性的东西,比如单元测试。可是,你真的放心让AI自己编写测试,来验证它自己的代码吗? 我想起我曾发过的一条推特,有个提示词可以让AI在“不懂时回答‘我不知道’”,我评论道:“即使AI回答‘我不知道’,你也不能确定它到底知不知道自己不知道。” 确实,“新人 + AI”的模式很诱人,看起来成本低廉,还迎合了人们“AI将抢走我们工作”的恐惧。但当你把软件开发和其他行业作比较,就会发现软件行业仍然不够成熟。在建筑行业,建筑师专注于设计;但在软件领域,即使是“架构师”,也仍在不断地亲手“砌砖”,编写底层代码。我们还远没有实现真正的分工和专长化,成本优先的思维主导市场,这只会贬低工作价值,让人疲惫不堪。 因此,AI目前非但没有让编程变得更加民主化,反而更集中地将能力交给了那些资深工程师。现实与预期产生了错位。未来会如何发展,谁也说不准。我对AI的长期发展依然乐观,但短期内,我们最好重新校准自己的期待,别再让不切实际的想法越走越偏了。
宝玉
1周前
Vibe Coding 清理服务(Vibe Coding Cleanup as a Service) 作者:Donado Labs 一个全新的服务门类正在科技圈悄然兴起——“Vibe Coding 清理服务”。它最初只是LinkedIn上的一句调侃:“修复AI造成的烂摊子”,没想到竟然变成了真金白银的商机。现在,几乎没人敢公开承认的残酷真相是:绝大多数AI生成的代码根本达不到生产标准,各家公司不得不疯狂招聘专家,来解决AI造成的技术债务(technical debt),以防止项目彻底失控。 “凭感觉编程”的井喷时代 2025年初,知名AI专家Andrej Karpathy提出了“凭感觉编程”(Vibe Coding)这个词。他用这个概念精准地描述了当下开发者的日常:通过和AI聊天,几句话就能生成整个函数,而不用亲自一行一行地敲代码。这种编程方式据称能让开发效率提升10倍。根据GitHub的报告,如今92%的开发人员都在使用AI代码工具,仅Copilot每个月就生成了数十亿行代码。 但这个看似美好的故事里,却有个业界不愿面对的问题:AI生成的代码质量堪忧。GitClear分析了1.5亿行代码后发现,AI辅助的代码“翻工率”(churn rate)比传统代码高出41%——也就是说,接近一半的代码在两周内就被撤销或重写了。斯坦福大学的研究者也证实:使用AI工具的开发人员写出的代码安全漏洞更多,但他们却误以为自己的代码更安全。这些工具不仅复制了糟糕的编程习惯:缺乏输入验证、使用过时的依赖库,还做出让资深程序员痛苦的架构选择。 “代码清理”成了真正的生意 据404 Media的调查报道,许多开发者正依靠修复AI代码谋生。Hamid Siddiqi便是其中的佼佼者,他同时接手15-20个代码清理项目,每小时收取高额费用来梳理他口中的“AI意大利面条”(AI spaghetti):接口混乱、功能重复,甚至还有令人摸不着头脑的业务逻辑。软件咨询公司Ulam Labs甚至直接把“Vibe Coding 清理”作为主打服务进行推广。 市场需求之大催生了专门的平台 VibeCodeFixers .com。这个平台推出短短数周,就吸引了超过300名代码清理专家入驻,成功匹配数十个项目。创始人Swatantra Sohni形容典型的客户是:“烧光了5000美元的OpenAI积分,拿着一个勉强能用的半成品,不肯放弃,但又急需把它变成正式产品。” TechCrunch甚至指出,目前Y Combinator 孵化的创业公司中有25%的代码几乎完全由AI生成。从硅谷的状况来看,这个趋势规模惊人。 为什么AI代码难以达到生产标准? 问题的核心并不是AI写代码太差,而是它只擅长局部优化,根本不理解整体架构。Stack Overflow的分析指出,AI只适合完成孤立的小任务,但在系统架构决策上表现糟糕。每一个AI生成的代码片段都在制造技术债务:模式不一致、逻辑重复、暗藏安全漏洞,而这些问题通常连自动扫描工具也发现不了。 乔治城大学的研究发现,至少48%的AI生成代码包含严重的安全缺陷。AI工具时常将敏感信息泄露到代码中,建议开发者使用过时的库,还生成只有在高负载时才暴露出来的竞态条件(race condition)。更糟糕的是,很多开发人员甚至无法理解AI生成的代码,根本没能力发现这些隐患。Thoughtworks把这种现象称作“能力债务”(competency debt):开发团队逐渐丧失自己维护代码的能力,逐渐依赖无法彻底理解的AI代码。 清理服务的巨大市场机会 “Vibe Coding 清理”的市场正在快速增长,虽然还没有明确的行业统计数据,但Gartner预测,到2028年,75%的企业软件工程师都会使用AI代码助手。只要其中一小部分项目需要清理——而目前的情况表明大部分都会需要——这个新兴市场就极为庞大。 经济账很容易算清楚:初创公司用Vibe Coding省下数周时间快速做出原型,再花相似的时间和预算来清理。尽管如此,总体速度仍比传统开发快得多。掌握快速清理AI烂摊子的专家,收费可高达每小时200-400美元。有些专家甚至开始打造标准化服务:固定价格的代码清理套餐、AI代码审计和“从凭感觉到生产就绪”的流水线。 Thoughtworks指出,AI辅助代码项目中,重构代码的活动减少,但代码返工率激增。许多公司甚至专门招聘“AI代码修复专家”。毫无疑问,这个市场是真实存在的,正在飞速发展,而且潜力巨大。 软件工程的未来将如何变化? 我们正经历一场软件开发方式的根本转变:AI负责初始实现,人类负责架构设计、测试和代码清理。这可能不是我们曾设想的未来,但确实是当下发生的现实。 Gergely Orosz认为,AI工具就像“极其积极的初级程序员”:写代码速度飞快,但需要不断指导。问题是,这些AI初级程序员永远无法晋升到资深级别,清理专家永远有市场。 我们的态度 在 Donado Labs,我们清理过太多AI造成的烂摊子。我们深知AI虽然能加速开发,但只有专业的代码清理才能让AI代码真正可用。我们用AI进行原型开发和日常任务,但关键架构和业务逻辑仍由人工完成。我们的“从Vibe到生产”的服务专门帮企业把AI原型转化为生产环境可用的代码,确保测试充分、安全可靠、文档清晰。 真正成功的企业不是大量使用AI的,而是聪明使用AI的。他们用AI快速原型,再主动投入专业的清理服务,避免技术债务堆积。 下次再有人说AI会取代程序员时,问问他:“AI的烂摊子谁来清理?”这才是新的机会所在。