Java基础、中级、高级、架构面试资料

AI 氛围编程的 10 大误区或偏见!

业余杂谈 herman 4浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

最近有不少网友私信我,说让我聊聊 Java 的氛围编程。这其中一些网友在实际工作中并没有使用上氛围编程,连 AI 用的都少。还有一些网友是最近失业了,面试过程中,面试官必问氛围编程,然而一些程序员接触到的 AI 至少较少、陈旧,甚至是一些程序员已经失业半年了,远离一线太久了,导致有机会面试也很难再找到满意的 Java 开发工作。

等等各种原因吧,我这里抽出一点时间,给大家先简单聊聊氛围编程中的一些误区和偏见。希望能够帮助到更多的网友。

效率幻觉

排在首位的,我认为是效率幻觉。因为 AI 并不总是加速器,也是屎山等技术债务的加速器。

对 AI 编程工具的最大误解是效率提升。METR 进行的一项涉及 16 位经验开发者的研究发现,使用 AI 工具完成任务所需的时间反而增加了 19%

开发人员预测自己的效率会提升b24%,结果却完全相反。大部分额外时间被花在了审查 AI 输出、提供提示和等待 AI 生成上。

Java 开发中,面对复杂的 Spring 框架或分布式微服务架构,这种效率损失更为明显。开发人员花费在调试 AI 生成的“看似正确”代码上的时间,往往远超从头开始编写的时间。

这就像敏捷开发,敏捷并不等于快一样,小心团队被效率幻觉包夹。

质量幻象

AI 氛围编程,也被一些程序员调侃为屎山编程,因为坊间流传着这样一些黑话:程序员写代码是一堆一堆的屎山,AI 写代码是一座一座的屎山。可见,不少场景下,AI 编程会带来不少质量幻想,黑箱代码与技术债务一并存在。

AI 生成的代码经常“能跑”,但远非“可靠”。一位 CTO 描述了一次典型事故:AI 生成的数据库查询在小样本测试中毫无问题,一旦面对真实流量,系统立刻被拖垮

在 Java 领域,这可能是复杂的 JPA 查询、不恰当的线程池配置,或是错误理解 Spring Bean 生命周期的代码。

Cursor CEO 迈克尔·特鲁尔警告称,盲目信赖 AI 写代码会导致豆腐渣工程。他将氛围编程比作盖房子:只搭起四壁和屋顶,却完全不懂地板下的布线和结构

切记,完全信任 AI 氛围编程不如不用 AI 氛围编程。

安全盲区

还有不少人认为 AI 写的代码是足够健壮的,但实际是,AI 编程很可能是系统里的漏洞自动生成器。

AI 编程工具对安全漏洞缺乏天然免疫力。根据腾讯网的报道指出,一些安全专家确认 AI 生成的代码到处都是经典漏洞

这些漏洞包括 SQL 注入、访问控制形同虚设等。在 Java 应用中,这可能导致敏感数据泄露、权限绕过等严重问题。

训练数据中的偏差可能转化为代码中的安全隐患。以安全著称的 Java 生态,会因为依赖 AI 生成代码而引入未知风险。

说白了,某些场景下的 AI 氛围编程,是依赖于你的需求和提示词的,如果使用者没有意识或给定安全领域的上下文,AI 生成的代码,往往会忽略掉漏洞安全等问题。

架构解体

AI 编程在工程化方面还面临着巨大的挑战,尤其是系统性思考的丧失方面。

氛围编程的最大问题之一是让开发者跳过系统设计这一核心环节。不少业界大佬,IT 架构师、CTO 等指出,很多人在使用 Vibe Coding 处理复杂问题时感到力不从心,主要原因是模糊的需求描述和系统边界不清。

一位系统架构师分享的案例很典型:一个几乎完全靠氛围编程搭建的项目,其 MVP (最小可行产品)两天就交付了,但当需要添加多角色权限和区域隐私规则时,它彻底崩塌。

甚至是系统存在不少重复的代码,不能够很好的抽象和复用。架构演化方面,完全依赖使用者的知识边界。

技能空心化

从工程师到提示词操作员,AI 氛围编程让技能空心化。

一些面临成本压力的公司认为:氛围编程培养的不是开发者,而是一群只会生成代码、却看不懂也改不了代码的“中间商”

开发者跳过了问题拆解、调试能力和系统设计等关键成长阶段,结果就是“虚假的能力感”。你能输出代码,但完全驾驭不了。

Java 生态尤其需要深厚的基础知识。当你只会向 AI 描述“我需要一个 Spring Security 配置”,却看不懂 OAuth2 的授权流程时,大部分程序员的职业根基已经动摇。

程序员的个人能力可能正在加速退化,未来资深的工程师可能依然稀缺。

上下文孤岛

人其实也一样,需要依赖上下文的。但人在无法理解的情况下,会主动询问上下文信息,而 AI 不会。这导致了在大部分场景下,AI 无法理解真实的业务逻辑。

AI 编程工具的一个致命局限是缺乏真实上下文理解。有些 CTO 指出,氛围编程创造了一种危险局面,你只有等到系统真正崩溃,才会发现问题。

在 Java 开发中,这意味着 AI 无法理解你的遗留系统、业务规则、团队约定和技术栈选择。它生成的可能是“通用解”,而非“最优解”。

也有开发者反映,使用这类工具时“中间件分散在六个文件里,没有逻辑模型,只有感觉。这种情况下,当系统出问题时,调试就像考古。

AI 的不足是不会向用户反问,更何况大部分用户都不会提出一个好问题

调试灾难

AI 自己也搞不懂自己的代码,时有发生。如果 AI 写的代码出现了 bug,而 AI 又修复不了,这时让程序员再来理解其中的代码,效率更低不说,程序员也不一定能很快解决它。

一个讽刺的现实是:AI 工具在调试方面表现很糟糕。在复杂问题定位上,人类工程师仍然无可替代。

当 AI 生成的代码出错时,找出原因可能比从头编写代码更耗时。不少开发者描述道:“调试花的时间能是 AI 写代码时间的十倍”。

在 Java 堆栈跟踪、内存泄漏和多线程问题上,AI 的调试能力尤其有限。它无法像经验丰富的 Java 工程师那样,通过分析线程转储或堆转储来定位问题根源。

合规与知识产权风险

使用 AI 编程工具可能带来法律与合规风险。GitHub Copilot 曾因训练数据合法性陷入诉讼,AI 生成的代码可能包含来自 MTL、GPL 等开源协议下的代码。

企业层面的风险更加严峻。字节跳动出于对防范数据泄露风险的考虑,曾在内部禁用第三方 AI 开发软件。蔚来汽车也出于数据跨境风险的考虑,选择使用本地化 AI 编程工具。

也就是说 AI 虽然能大片段的生成代码,但是这些代码它可能是借鉴于其它不能商用的开源库、开源项目等代码。甚至是某些 AI 会把企业内部的代码强化学习到某些模型中。

团队协作困境

AI 生成的代码在团队协作中缺乏联动与协同,知识传递的形成断裂。

氛围编程会破坏团队的知识共享和传承机制。传统代码审查基于对系统设计的共同理解,但当代码由 AI 生成且无人完全理解时,审查变得形式化。

AI 生成的代码通常臃肿、混乱、脆弱、不安全,缺乏清晰的逻辑解释和结构。这会导致新团队成员难以理解和修改,增加团队的知识孤岛。

更危险的是,这种代码会创造“信任债”,高级工程师被迫长期当侦探,反复逆向解读基于感觉拼出来的逻辑。

职业路径窄化

AI 氛围编程彻底让人机器化了,每天对着 AI 进行交互,男同事与女同事之间的男女搭配干活不累,感觉消失了。同时,每个人的未来发展都存在极大的不确定性,以后说不定真的就成了码农或组装工了。

过度依赖氛围编程会限制职业发展。开发者可能停滞在“代码组装工”层面,无法成长为能够设计复杂系统、解决难题的高级工程师。

在行业层面,这可能造成两极分化。一边是大量依赖 AI 的“伪开发者”,另一边是少数真正掌握核心技能、能在系统崩溃时解决问题的高级工程师。

Java 作为一门需要深厚知识的语言,其高级岗位要求不会因 AI 的出现而降低,反而可能提高。届时,只懂氛围编程的开发者将面临职业危机。

总结

人工智能对软件开发的改变是革命性的。正如,拖拉机没有终结农业,只是让马和农场工人少了些而已。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » AI 氛围编程的 10 大误区或偏见!