书名:氛围编程:AI编程像聊天一样简单
ISBN:978-7-115-67940-6
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 伍 斌
责任编辑 杨海玲
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书是展示如何用自然语言通过氛围编程工具搭配大模型生成代码解决真实问题的实用指南。书中提供9个实战项目作为入门讲解和检验实验,帮助读者选择合适的氛围编程工具与大模型组合。全书分5部分:第一部分介绍氛围编程基础理论和指导原则;第二部分通过智能体实现、数据可视化和Excel数据分析这 3 个应用场景,展示扣子、DeepSeek、Claude、Trae、Cursor、Windsurf和通义这7款主流氛围编程工具与大模型搭配组合的代码生成能力;第三部分演示用Trae实现微信小程序和用bolt等工具快速实现Web应用产品原型;第四部分展示用GitHub Copilot实现完整的前后端分离的Web应用和用Cursor生成自动化测试;第五部分提供不同背景读者的氛围编程攻略、工具和大模型对比,以及实战检验框架。
本书适合以下3类读者阅读:需处理数据或构建产品原型的非IT背景的人,希望了解高质量代码生成的有IT经验的人,以及想通过氛围编程入门的IT新人。
生成式AI浪潮已至,编程正成为人人必备的基础技能。“氛围编程”应运而生——它借助AI,让每个人都能凭直觉与创意快速构建软件。这本书是氛围编程实战指南,拒绝空谈,即刻上手,助你轻松驾驭AI时代的编程新范式,加入未来创造者的行列。
肖然,Thoughtworks公司全球数字化专家、中关村智联软件服务业质量创新联盟秘书长
在AI加速重塑工作方式的今天,用好AI已经成为所有职场人士的技能。这本书恰逢其时。它精准回应了当下人们用“聊天”代替“编程”的迫切期待——从现实问题切入,以需求驱动讲解,帮助读者真正实现从提问到落地、从想法到产品的转化。本书对ChatGPT、Claude、Cursor、扣子、Trae等工具的实操讲解极具实践性,堪称“配方”级别,无论是产品经理快速搭建原型,还是程序员探索AI赋能的新范式,都可以对照书中实例直接上手,实现“即学即用”。这是一本顺应时代的需求,落地氛围编程的实战指南。
李烨,微软AI亚太区首席应用科学家
这本书的书名我非常喜欢。如果说DeepSeek-R1让全民开始使用AI聊天,那么现在的氛围编程工具和搭配的大模型组合就是让全民可以通过聊天开发软件。随着大模型能力的增强,氛围编程的体验会越来越好,上手门槛会越来越低。氛围编程不仅有趣,还能带来巨大的满足感和成就感。作为一个产品经理,我在过去3个月做了4个产品,把我过去几年的想法都变成了现实。氛围编程会给你提供新的动力。我向所有产品经理推荐氛围编程。如果你渴望尝试,这本书是一个很好的入门向导,能有效地帮助你一步步掌握氛围编程。
亢江妹(KK),Thoughtworks公司总监级AI咨询顾问
这本书以清晰的逻辑组织内容,循序渐进地引导读者从学习氛围编程理论,到独立构建Web应用、智能体、数据分析工具。对于氛围编程的初学者,它巧妙降低学习门槛;对于有经验的开发者,它精准探索高阶提示词“为己所用”。读者收获的不仅是理论,更是构建应用的能力。
李特丽,《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》和《AI辅助编程入门:使用GitHub Copilot零基础开发LLM应用》第一作者
氛围编程时代已然到来。无论你是不是程序员,也无论你如何看待它,都值得尝试一下,哪怕抱着娱乐的心态也未尝不可。这本书深入浅出,语言通俗易懂,既有科普,又有洞见,是一本很好的入门书。你值得拥有!
汪志成,Google开发者专家、Thoughtworks公司前咨询师、北京智座科技创始人
刚读到这本书初稿的时候,我翻了一下目录就发现,书中的内容简直就是我现在最需要的!书中不仅介绍了许多实用的AI编程工具,如扣子、Cursor、Claude、Trae等,还包含大量具体的提示词和技巧,都是可以立即应用的。这本书实战性强,开箱即用,特别适合像我这样每天与代码打交道又希望借助AI提高效率的开发者。强烈推荐给正在探索AI编程的小伙伴们!
林宁(网名“少个分号”),Thoughtworks公司咨询师
有幸在“编程道场”与这本书作者结缘,其经典之作《驯服烂代码》曾为我照亮技术实践之路。如今,AI编程浪潮下,氛围编程应运而生,引领开发者走向高效、专注、充满创造力的编程新境界。捧读新作,深感作者满满的诚意!作者不仅传授与AI协作的“技”,更引导我们体会其中的“艺”与“道”。这正是DevOps理念下高效协作与可持续交付的灵魂所在。这本书绝非单纯的技术手册,而是一位践行者用心书写的实践“心经”,为所有追求卓越的软件工程师指明了通往心流的高效路径。强烈推荐给每一位致力打磨软件交付质量和提升开发体验的同路人!
冀利斌,DevOps解决方案架构师
氛围编程(vibe coding)是随着大模型代码生成能力的提升而兴起的以自然语言交互为核心的编程范式,其核心理念是通过描述意图由人工智能(artificial intelligence,AI)来生成代码,而非手动编写代码来构建软件。这种方式也称为“自然语言编程”。
观察编程语言的演进,从二进制机器码到汇编语言,再到高级语言,直至今天氛围编程提倡的“自然语言”,整个趋势越来越远离机器,持续向人类思维靠拢。这种趋势本质上是技术对人的深度赋能,让编程真正回归“人的表达”,构建一个人人可及的创造场域,释放人类创新的原动力。
诚然,氛围编程并非十全十美,如果站在传统软件开发的角度来看,有很多争议与待解难题。例如自然语言表述的模糊性可能导致生成的代码偏离真实需求;由于大模型幻觉的存在,生成代码的准确性与可靠性仍需验证;复杂业务场景下,自动生成的代码在代码规范、架构整洁等方面仍有差距。但这些争议和难题并不能掩盖氛围编程的生命力。
我个人认为,氛围编程不是对传统软件开发的颠覆,而是开辟了新的战场。就像互联网兴起时,HTML/CSS/JavaScript曾经被认为不是严肃的软件开发,甚至编写这些代码的人一度不被看成程序员。但后来的故事大家都知道了:它们开辟了Web编程的新战场,吸纳的编程人员数量甚至占据软件开发人员的半壁江山。
在这一新战场中,很多传统软件开发的“金科玉律”可能需要重新审视,如可复用性、松耦合高内聚、代码可读性等。氛围编程适用的场景可能不再是人们熟悉的传统软件开发场景,它可能是更小规模、即时性需求、用户参与构建的。它将是与传统软件并存的、用户可以随时根据自己的需求改造的“可塑软件”。
所以,我不希望大家戴着传统软件开发的“有色眼镜”看待氛围编程。我相信,随着大模型和编程语言的深度融合,氛围编程将塑造出与传统软件开发不一样的开发流程、软件形态和技术哲学,为软件开发打开一扇全新的大门。
伍斌老师所著的这本书敏锐地捕捉并剖析了氛围编程这一趋势,它拆解工具、呈现场景、演练实践、阐释价值。翻开这本书,我们不仅是学习一种新的编程范式,更是开启一次“人机对话革命”的新历程。
李建忠
全球机器学习技术大会主席、ISO C++标准委员会委员
当我在2023年4月提出“软件工程3.0”这个概念时,便预见到一个崭新时代的到来——人工智能将彻底重塑软件开发的每个环节。然而,我未曾想到这种变革会如此迅猛且彻底。
2025年春节刚过,DeepSeek的横空出世和“氛围编程”概念的爆火,让我再次深刻感受到技术发展的惊人速度。作为一名在软件工程领域深耕30多年的技术人,我有幸见证了从大型主机到微机、从汇编语言到高级语言、从命令行到图形界面、从单体应用到微服务架构的每一次技术变革。但这一次不同,氛围编程不只是工具的升级,而且是编程范式的根本性颠覆——它让编程从“技术精英的专利”演变为“人人可用的日常工具”。
这本书恰逢其时。作者以极其务实的态度将抽象的技术理念转化为人人可掌握的实用技能。读完全书,我被作者的用心深深打动。书中通过9个精心设计的实战项目和5个核心应用场景,诠释了“所说即所得”的编程新范式。
最令我印象深刻的是作者对氛围编程本质的深刻理解。传统编程教育总是从语法开始,让学习者在枯燥的规则中迷失方向,往往学了几个月还写不出能解决实际问题的代码。而氛围编程则完全颠覆了这一路径——它让人们直接从解决问题开始,在实际应用中自然而然地理解编程的本质。这种“问题导向”的学习方式不仅更符合人类的认知习惯,也让编程真正回归到其工具属性的本源。
在《软件工程 3.0》一书中,我提出大模型将成为软件研发的核心驱动力,但那时更多是从企业级开发和技术架构的角度来思考。而这本书让我看到了另一个维度——氛围编程正在让软件开发真正实现全民化。当产品经理可以在几分钟内制作出最小化可行产品(minimum viable product,MVP)原型,当数据分析师可以用自然语言完成复杂的可视化工作,当完全没有编程背景的小学生都能制作出智能聊天应用时,我们正在见证一个“全民编程”时代的到来。这种变化的意义远超技术本身。
在软件工程3.0时代,我们面临的核心挑战不再是“如何写代码”,而是“如何用代码解决问题”。氛围编程恰好提供了这样一座桥梁——它让每个人都能专注于问题本身,而将技术实现交给AI来完成。这不是对程序员职业的威胁,而是对整个社会创新能力的极大释放。
书中对9款主流氛围编程工具的详细对比和实战演示,展现了作者深厚的技术功底和丰富的实践经验。从扣子、DeepSeek到Cursor、Windsurf,每个工具都有其独特的优势和适用场景。作者没有简单地推荐“最好的工具”,而是教会读者如何根据具体需求选择最合适的工具组合。这种务实的态度体现了真正的技术智慧。
特别值得称道的是,这本书并非简单的工具介绍,而是一本深入的方法论指南。从智能体构建到数据可视化、从微信小程序开发到完整的前后端分离的Web应用,书中实战项目的场景几乎覆盖了软件开发的各个层面。更重要的是,作者在每个实战项目中都强调了思维方式的转变——从“我需要学会什么技术”到“我想解决什么问题”。
作为技术从业者,我深知任何新技术都有其局限性。氛围编程也不例外——大模型的概率性生成机制意味着结果的不确定性,工具的快速迭代也带来了学习成本。但正如作者在书中所言,这些都不是阻碍我们拥抱新技术的理由。关键在于掌握正确的方法和思维模式,这样无论工具如何变化,我们都能快速适应。
我始终相信一个理念:技术的最高境界是让所有人都能受益。从软件工程1.0的结构化编程,到软件工程2.0的敏捷开发,再到如今的软件工程3.0大模型时代,每一次技术进步都在降低软件开发的门槛,扩大受益人群。氛围编程正是这一理念的完美体现——它让编程真正成为一种“通用技能”,就像使用Word、Excel一样自然。
在这个AI重塑一切的时代,掌握氛围编程不仅是技术人员的新技能,更是每个知识工作者的核心竞争力。无论你是产品经理、数据分析师,还是创业者、学生,这本书都将为你点燃创新的火花,帮你释放内在的无限创造潜能。
朱少民
同济大学特聘教授、《软件工程3.0》作者
技术的每一次革命性突破,都伴随着“门槛”的崩塌与“可能性”的重建。当大模型赋予普通人用自然语言直接生成高质量代码的能力时,编程这一曾被视为有专业壁垒的领域,正经历一场深刻的全民化浪潮。这本书所聚焦的氛围编程,正是这场浪潮中最具实践价值的前沿阵地。它不是未来学的空想,而是此刻正在发生的、触手可及的生产力革命。
这是一本关于“赋能”的实用手册。这本书的作者精准地捕捉到了不同人群在拥抱AI编程时的核心痛点:非技术背景者畏惧晦涩的语法,入门新手渴望一条高效路径,有技术经验者担忧生成代码的质量与可控性。作者没有陷入对技术原理的冗长阐述,而是以令人信服的实战项目作为贯穿全书的骨架——从智能体构建、数据可视化到全栈Web应用、自动化测试,9个精心设计的案例如同9把钥匙,为不同起点的读者打开了通往“所想即所得”的代码生成之门。书中对多款主流氛围编程工具与不同大模型搭配组合的深入剖析,更如同提供了一份清晰的“装备地图”,让读者能依据自身任务需求,精准选择最称手的工具组合,避免在浩瀚的工具海洋中迷失方向。
这是一本关于“范式转换”的行动指南。书中敏锐地指出,氛围编程的核心价值远不止于“自动写代码”。它正在重塑产品开发的流程:产品经理和创业者能以前所未有的速度将脑海中的概念转化为可交互的小程序或Web原型,大幅压缩从想法到验证的周期。它也在重构开发者的工作重心:经验丰富的开发者得以从重复的脚手架代码中解放,将智慧聚焦于更复杂的架构设计、性能优化和创造性的问题解决,书中第四部分关于前后端分离的 Web 应用开发和自动化测试的实战内容,正是这种价值跃迁的生动体现。第五部分提供的最佳实践、工具和大模型对比,以及实战检验框架,则为读者建立了一套可靠的方法论,确保这种新范式能稳健落地,产出真正可靠、可维护的成果。
这是一本关于“未来素养”的必读之作。无论是需要处理数据、构建原型的业务专家,希望提升开发效率、探索前沿生产力的工程师,还是渴望叩开编程世界大门的新手,理解并掌握如何有效地与AI协作生成代码,已成为一项不可或缺的核心竞争力。这本书的价值在于它剥去了技术的神秘外衣,将氛围编程这一新兴的工作方式转化为可学习、可实践、可复用的具体步骤。它提供的不是空洞的理论,而是即学即用的工具箱和经过验证的路线图。
在这个AI重新定义“可能性”的时代,掌握用自然语言驾驭代码生成的能力,意味着你掌握了将创意加速转化为现实的杠杆。这本书正是启动这一杠杆的实用操作手册。它邀请每位读者,无论背景如何,都能参与并塑造这场正在发生的生产力革命。翻开它,开始构建你的第一个由自然语言驱动的项目,你将真切地感受到:未来已来,触手可及。
最后,我想补充一点。氛围编程的出现无疑是一场效率革命。虽然借助DeepSeek- R1等大模型和Trae等AI原生工具,用自然语言生成代码显著降低了编程的语法门槛和初阶任务的执行时间,但是我们必须清醒认识到:软件工程的本质复杂性并未因此消失。氛围编程提升的更多是“表达”层面的效率,但构建可靠、可维护、可扩展的系统的固有挑战依然存在。这包括精准的需求抽象与分解、复杂的系统架构设计、深层的逻辑缺陷与边界条件处理,以及团队协作与知识管理。因此,当我们拥抱氛围编程提效的同时,更需坚守软件工程的根基——严谨的设计思维、清晰的架构规划、彻底的测试验证和持续的代码治理。新范式不是消除复杂性的灵丹妙药,而是要求我们以更高阶的工程智慧去驾驭它。工具在进化,但工程的根本挑战永存。
茹炳晟
腾讯Tech Lead、腾讯研究院特约研究员、CCF TF研发效能SIG主席
最近,我有幸提前阅读了伍斌老师的这本关于氛围编程的书。这本书可谓恰逢其时,填补了我许多知识空白。
目前国内关于AI智能体开发的书,很多都充斥着大量营销语言。我对这一类书已产生审美疲劳,甚至决定不再购买。然而,这本书却让我耳目一新,内容干货满满。
“氛围编程”这个术语出现至今不到一年。我曾使用过多种AI辅助编程工具,如Github Copilot、通义灵码、Cursor、Cline、Roo Code,它们都宣称支持氛围编程。但在中文世界中,几乎没有人能清晰解释氛围编程的本质。这本书填补了这一空白,是目前中文世界中对氛围编程解释非常清晰的著作。更难能可贵的是,作者基于自己30余年丰富的工作经验,精心设计了大量实战例子。
这本书不仅对资深程序员和初级程序员大有裨益,对产品经理、业务分析师等非程序员同样有益。若说Cursor这类工具主要面向程序员群体,那么“扣子”和“扣子空间”这类工具则主要服务于非程序员群体。书中约三分之一的内容非程序员也完全可以理解,并能通过书中介绍的扣子等工具,动手实现自己的AI智能体。这本书全面展示了氛围编程相关工具生态的多样性,正是这种多样性使应用软件,特别是AI智能体的开发门槛大幅降低。这是继30年前“互联网+Web”之后的又一场技术革命,人人都可以参与其中。然而,机会永远青睐有准备的人,这本书将帮助你为这场革命做好准备。
李锟
资深软件架构师
36年前,当我怀着忐忑不安的心情走进北京工业大学计算机系的教室时,从未想过有一天我会坐在计算机前,用自然语言和AI对话来“编程”。那时,为了解决一个小小的语法错误,我需要记忆各种复杂的函数和语法规则,要在绿色的终端界面上敲击枯燥的命令行,在实验室里熬到深夜。编程,似乎永远是少数“技术精英”的专利。
然而,2025年春节刚过,一切都变了。
DeepSeek的突然爆火,让我这个已经在编程世界摸爬滚打了30多年的“老程序员”感到震撼——不是因为又一个技术突破,而是因为我目睹了一个全新时代的到来。当我第一次看到“氛围编程”(vibe coding,也称氛围式编程或Vibe编程,本书以下均用氛围编程)这个热词在社交媒体上疯传,看到Trae国际版高峰时段几百人排队使用的那一刻,我知道,编程世界正在被颠覆。
我迫不及待地尝试了这些新工具。当我用中文对话就能让AI帮我生成完整的Web应用,当我在视频中看到8岁小女孩能用AI原生IDE Cursor搭配Claude Sonnet 3.5大模型生成风格满足自己喜好的AI聊天应用,当我看到完全没有编程背景的人也能制作出精美的数据可视化图表,当我意识到我写的这本“编程”书中所有代码清单里竟然没有一行传统编程语言的代码时,当我脑海中浮现出氛围编程者与大模型对话时“气泡”纷飞中逐渐露出的喜悦神情,当我看到编程真的像聊天一样简单时,我的内心五味杂陈:兴奋,因为这意味着编程的门槛彻底降低了;忐忑,因为这或许意味着传统编程方式的式微;更多的是感动,因为我终于看到了编程真正实现“全民化”的可能。
于是,我决定写这本书。
氛围编程太值得写了!它不仅让编程成为谁都能做的事情,更重要的是,它真的能用来解决现实问题。我见过产品经理用它快速制作出MVP原型,见过数据分析师用它几分钟完成原本需要几天的可视化工作,见过小学生用它制作出自己的第一个智能聊天应用。这不是科幻小说,这就是2025年正在发生的现实。
在写作的过程中,我深深意识到氛围编程正在重塑两件事:“零基础编程入门”和“写代码解决问题”。传统的编程入门需要先学语法,再学算法,最后才能写出能解决实际问题的代码,这个过程往往要数月甚至数年。而氛围编程让人们可以直接从解决问题开始,在解决问题的过程中自然而然地理解编程的本质。这是一种全新的学习路径,也是一种全新的问题解决方式。
我想对读者说:请用“平常心”看待编程。编程已不再是高深莫测的技能,它正在成为像使用Word、Excel一样的日常操作。你不需要成为技术专家,只需要会表达自己的想法,氛围编程就能帮你实现这些想法。
我始终相信一个理念:技术的最高境界是让所有人都能受益。氛围编程正是这一理念的完美体现——谁都能用它解决现实问题,这就是我对技术的最大期许。
当然,我必须承认这本书有局限性。在我动手写这本书时,“氛围编程”这个词刚刚诞生4个多月,大模型与氛围编程工具的发展可谓日新月异。书中描述的工具和大模型很快就会有新版本,新的使用场景也在不断涌现。限于篇幅,我无法覆盖所有的应用场景,但我在本书中通过实战来体验氛围编程的方法和案例却可以历久弥新。另外,我也会在读者群里持续分享氛围编程的新发展动态,让本书成为一个活的、不断更新的知识资源。
感谢这个时代,让我有幸见证并参与编程世界的这场伟大变革;更感谢本书的读者,愿意和我一起探索这个充满无限可能的新世界。
让我们一起拥抱氛围编程的时代!
伍斌
2025年6月于北京
在 2025 年春节期间,中国人工智能公司深度求索(DeepSeek)凭借其开源的DeepSeek-R1 大模型在全球科技圈引发轰动,“氛围编程”这一全新概念也几乎是同时出现,迅速成为科技界的热门话题。随后,国产AI原生IDE Trae等新一代编程工具的推出,让“用自然语言编程”从概念变为现实,高峰时段数百人排队使用的盛况标志着我们正处于编程界的一次颠覆式创新浪潮中。
在这样的历史背景下,本书应运而生。我希望将这个时期对氛围编程的探索和实践记录下来,让更多人看到氛围编程确实是“谁都能”用来解决现实问题的强大工具。这不仅是一本技术指南,更是一个时代变迁的见证。
本书主要面向3类读者群体。
(1)非IT背景的人:包括产品经理、市场营销人员、财务人员、行政人员、学生等。这类读者通常对编程代码感到陌生和恐惧,他们需要解决数据分析、自动化处理、创建简单应用等问题,却缺乏编程技能。
(2)有IT经验的人:包括程序员、架构师、技术主管等。他们希望了解AI时代的新型编程范式,提高开发效率,或学习不熟悉的新技术栈。
(3)IT新人:包括计算机专业学生、初级程序员、转行人员等。
本书的目标是为“任何人都能学会的氛围编程”提供入门指南,因此对读者的技术背景要求极低,只需要具备以下基础知识即可:
● 熟悉手机应用的安装与基本操作;
● 能够使用计算机浏览器上网浏览网页;
● 具备用自然语言清晰表达自己想法的能力。
这些对现代人来说都是日常技能,无须额外学习。
本书分5个部分,共9章。
第一部分(第1章)全面介绍氛围编程的基本概念、发展历程、技术简介、适用场景和指导原则,为后续的实践奠定理论基础。
第二部分(第 2~4 章)通过 3 个典型应用场景,分别演示如何使用扣子、DeepSeek、Claude、Trae国际版、Cursor、Windsurf和通义这7款主流氛围编程工具。内容包括构建智能体、数据可视化、Excel数据分析等,适合所有读者学习。
第三部分(第5~6章)专门为产品经理和创业者设计,展示如何运用Trae国际版、bolt、Cursor和Claude这4款工具快速创建微信小程序和Web应用产品原型,实现从想法到可运行产品的快速转化。
第四部分(第 7~8 章)针对有一定技术基础的读者,展示如何利用GitHub Copilot、bolt和Cursor开发完整的前后端分离的Web应用,并通过编写端到端自动化测试来保护代码质量。
第五部分(第9章)总结不同人群在进行氛围编程时的攻略,对主流氛围编程工具和可搭配的大模型进行横向对比分析,并提供用实战来检验氛围编程的方法。
为了最大化学习效果,建议读者先扫描本书封底的二维码下载本书配套代码,然后在手机和计算机上按照书中内容结合配套代码进行实战练习。理论与实践相结合,才能真正掌握氛围编程的精髓。
鉴于氛围编程工具所搭配的大模型采用“概率性生成机制”,对于同一个提示词,即使是同一个氛围编程工具搭配同一版大模型,每次也可能生成不同的内容(包括代码)。如果你发现用本书提供的提示词生成的代码运行出错,可以将完整的错误消息反馈给大模型,让其修复。你还可以尝试把提示词优化得更具体,或者使用口碑更好的氛围编程工具与大模型组合(如 Claude 搭配 Claude Sonnet 4 或更新的大模型,以及Windsurf搭配Claude Sonnet 4或更新的大模型等)来尝试。
考虑到不同读者的背景和需求,推荐以下阅读路径。
(1)非IT背景的人:建议重点阅读第1、2、3、4、5、6、9章。这个路径将帮助你从零开始了解氛围编程,并掌握使用各种工具解决实际问题的方法,最后获得有针对性的最佳实践指导。本书第1章帮助读者理解氛围编程的基本概念,使零基础读者能轻松入门;第2章展示如何用中文自然语言创建AI应用,有效消除编程障碍;第3章介绍数据可视化的简便方法;第4章提供Excel数据分析的实用解决方案;第5章和第6章提供“单次对话即成功”的方法,高效实现微信小程序和Web应用产品原型;第9章提供针对性的氛围编程攻略与多款工具与大模型的对比。
(2)有IT经验的人:建议重点阅读第1、5、6、7、8、9章。这个路径将让你快速了解氛围编程的核心概念,掌握快速原型开发技能,并启发你在传统开发流程中融入AI辅助编程的方法。针对这些需求,本书第1章系统介绍氛围编程技术,助力技术转型;第5章和第6章展示快速开发微信小程序和Web应用产品原型的技巧;第7章讲解前后端分离架构的现代开发方式;第8章传授如何通过生成端到端自动化测试来保障氛围编程过程中的代码质量;第9章提供检验工具与搭配大模型组合生成代码效果的方法。
(3)IT新人:建议按章节顺序通读全书。完整的学习路径将帮助你全面掌握从基础概念到高级应用的所有内容,为你在AI时代的编程生涯打下坚实基础。本书采用循序渐进的方式,系统地覆盖从基础概念到实战应用的内容,帮助IT新人构建完整的知识体系。书中提供的丰富实战案例,使IT新人能够积累宝贵的实践经验,从而通过现代化的方式快速入门和提升技能。
无论你属于哪类读者,都建议在阅读过程中动手实践。氛围编程的魅力在于“所说即所得”,只有亲自体验,才能真正感受到这种新编程范式的强大威力。
让我们一起踏上这段激动人心的氛围编程之旅吧!
在“氛围编程”这个词诞生后的短短4个多月时间里,完成一本包含至少9个实战案例的氛围编程实战书,看似不可能完成的任务。然而,当我在2025年6月22日于北京家中写下本书正文最后一个字时,眼前浮现出以下亲朋好友的身影,在此我想对他们表示衷心的感谢。
感谢本书责任编辑杨海玲为我指点当下图书市场的热点,帮助我确定写书的主题和方向。
感谢全球机器学习技术大会主席李建忠为本书作序。他提出的关于氛围编程对产品经理工作内容和角色影响的精彩问题,启发我更好地把握如何撰写“使用氛围编程快速构建Web应用产品原型”的相关章节。
感谢同济大学特聘教授朱少民为本书作序。他早在2023年4月提出的“软件工程3.0”中“人工智能将彻底重塑软件开发的每一个环节”的深刻洞察,启发我思考AI如何彻底重塑非IT背景的人解决问题的方式。这帮助我构思出本书前4章的实战项目——无须阅读代码,仅通过与AI对话就能轻松编程并解决问题,从而更好地服务那些没有机会接触传统编程语言但数量最为庞大的读者群体。
感谢腾讯Tech Lead茹炳晟为本书作序。他在序中提出“氛围编程的出现无疑是一场效率革命……软件工程的本质复杂性并未因此消失”的观点,这启发我在本书1.7节中提出了氛围编程简单性指导原则。
感谢我的朋友李锟。他不仅为本书作序,还经常向我推荐优质的氛围编程工具和技术大牛,并特意将我引荐给李特丽,使我能获得她对本书的宝贵反馈。
感谢《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》和《AI辅助编程入门:使用GitHub Copilot零基础开发LLM应用》的第一作者李特丽。我根据她的反馈改进了本书的章节标题,让读者浏览目录时能更轻松地了解本书的内容框架。
感谢朋友冀利斌对本书预览版的审阅和反馈。他提出了许多有价值的问题,启发我增添了不少能解答读者疑问的内容,如“搭配同样的大模型,为何不同的氛围编程工具生成的代码效果不同”。
感谢北京市建筑设计研究院股份有限公司科技质量中心副主任孔嵩。她反馈的非IT背景的人在日常工作中遇到的Excel数据可视化和PPT制作痛点给了我很大启发,促使我撰写了本书的相关章节。
感谢我在Thoughtworks公司的前同事邱俊涛。这位目前已出版2本中文和8本英文前端开发技术书的勤奋工程师,为我提供了9条专业反馈,帮助我在每章开头清晰地呈现该章内容的阅读价值。
感谢可视化需求分析创始人王洪亮。他阅读试读内容后的反馈帮助我将每章开头的阅读目标优化得更加清晰。此外,他的提议也启发我增加了一章专门关于微信小程序的氛围编程实战内容。
感谢我在Thoughtworks公司的前同事邹海松。根据他的建议,我在第7章中增加了编程过程中必不可少的任务拆解的内容,使这一章的结构更加清晰。
感谢我在Thoughtworks公司的前同事郑晔对本书写作方向、架构可视化、任务拆解等内容的肯定和鼓励。在他的建议下,我增加了国产氛围编程工具Trae和通义的内容,方便国内读者进行实战。
感谢我在Thoughtworks公司的前同事吕健。根据他的建议,我增加了用纸笔手绘线框图然后让AI用自然语言描述以形成提示词的内容。
感谢我在Thoughtworks公司的前同事仝键。根据这位早在“氛围编程”概念提出前就已提出相似的“许愿驱动开发”理念的意见领袖的建议,我改进了本书关于氛围编程的极简史和探索部分的内容。
感谢我在Thoughtworks公司的前同事汪志成。我根据他的建议使本书的架构可视化内容更具目的性。
感谢肖然、李烨、亢江妹、李特丽、汪志成、林宁和冀利斌为本书撰写推荐语。他们的鼓励是我继续创作全民化AI编程相关图书的动力。
感谢那些未在此列出姓名但为本书提出反馈并表示关心的朋友们。你们的鼓励就是我写作的动力。
感谢我的妻子薛静。她向我提出的非IT背景的人在工作中遇到的数据分析痛点,帮助我让本书相关章节的实战内容更加贴近实际。
感谢我的妻子、儿子和家人对我的体贴、包容和大力支持。
感谢Notion、Claude、Cursor、Windsurf、DeepSeek、Trae、通义和扣子等强大又好用的AI工具及其搭配的大模型。没有它们就没有这本书。
最后,感谢本书的读者。我深知因自己水平有限,本书内容一定存在瑕疵。愿意与我交流的读者可以在国内各大自媒体平台搜索“大厨程序员吾真本”(我的自媒体号)找到我,我会每天关注读者反馈并持续改进。
氛围编程(vibe coding,也称氛围式编程或Vibe编程)是2025年2月出现的热门概念,迅速在科技圈引发了热议。由于这一概念非常新,因此许多人还不太了解它。本章将帮助你了解氛围编程的概念,氛围编程对非IT背景的人、有IT经验的人和IT新人的价值,以及氛围编程的11条指导原则。
在介绍氛围编程之前,我先通过一些真实案例展示一下它是如何帮助我解决实际问题的,由此帮你更直观地理解氛围编程。
先以批量修改文件名的问题为例,看一下氛围编程是如何帮助我写好这本书的。
“写书不怕改稿,就怕插入一章”——为何害怕?因为修改插图文件编号实在麻烦。我最初计划全书写8章,先着手写了第5章(关于用GitHub Copilot实现前后端分离的Web应用),因为这部分内容我最感兴趣。但这一章写完后我发现太长了,竟然有3万字,于是打算把后半部分关于自动化测试的内容拆分到第6章。此时,一位试读读者提出建议,希望加入一章介绍用氛围编程开发微信小程序的内容。我觉得很有道理,考虑到微信小程序的开发量比前后端分离的Web应用要小,决定将其插入原第5章之前。后来又决定在原第5章前插入“用bolt和Trae等4款工具快速实现Web产品原型”那一章。
这样一插入带来了连锁反应是:原第5章变成了第7章,后续章节序号依次顺延。这意味着原第5章中的插图编号也要从“图5-x”改为“图7-x”。虽然用查找、替换功能修改正文中的图号很简单,但要修改插图文件名就没那么容易了。这一章有6个插图文件,都存放在与Markdown格式书稿相同的原第5章目录下。如果不用终端命令批量改名,就只能手动修改这6个文件名。更麻烦的是,原第6章中的17个插图文件名也需要更新。这种用鼠标逐个点击修改文件名的工作虽然不难,却非常烦琐。那么,该如何写一个终端命令来批量改名呢?
在2022年11月ChatGPT爆火之前,如果我想写这样的终端命令,只能在各大搜索引擎或编程问答网站Stack Overflow上搜索关键词,或是临时找本终端脚本编程的书来学习。这两种方法都相当费时费力。但有了ChatGPT后,尤其是在2025年1月DeepSeek爆火之后,直接用自然语言向AI聊天应用(如豆包、夸克、天工、智谱清言、通义、Kimi、元宝、文小言等)提问似乎更顺理成章了。下面是我向豆包提问时使用的提示词(已开启“深度思考”模式):
我在macOS的iTerm2里运行“ll”命令后,发现所有插图文件名都以“图5-”开头。我想把所有以“图5-”开头的文件名批量改为以“图7-”开头,有什么最简单的方法?另外,在实际修改之前,希望能先用命令预览一下修改后的文件名是否正确。 下面是运行“ll”命令后的结果: total 67224 -rw-r--r--@ 1 binwu staff 362K Apr 23 09:50 图5-1.png -rw-r--r--@ 1 binwu staff 390K Apr 24 10:44 图5-10.png -rw-r--r--@ 1 binwu staff 231K Apr 24 17:36 图5-11.png (略)
豆包提供了两个解决方案:一个是使用mmv
命令批量改名,另一个是使用for
循环配合mv
命令。由于mmv
需要额外安装,我选择了后一种方案。按照豆包的建议,我首先在终端中进入原第5章的目录,然后输入以下命令(注意插图都是按章分别存放在不同的目录下,所以原第5章目录下只有原第5章的插图,运行下面的命令不会影响其他章的插图文件):
for f in 图5-*; do echo "mv '$f' '${f/图5-/图7-}'"; done
这行命令并没有真改文件名,而是让我能预览批量改文件名的命令:
mv '图5-1.png' '图7-1.png' mv '图5-10.png' '图7-10.png' mv '图5-11.png' '图7-11.png' (略)
确认预览结果无误后,我按照豆包的指示执行了批量修改文件名的命令:
for f in 图5-*; do mv "$f" "${f/图5-/图7-}"; done
运行列出文件的命令后,第5章目录下的所有文件名都已成功修改:
ll total 67224 -rw-r--r--@ 1 binwu staff 362K Apr 23 09:50 图7-1.png -rw-r--r--@ 1 binwu staff 390K Apr 24 10:44 图7-10.png -rw-r--r--@ 1 binwu staff 231K Apr 24 17:36 图7-11.png (略)
乘胜追击,我进入原第7章的目录,仿照前面的两行命令,很快成功批量修改了第7章的插图文件。随后将两个目录的名称一并更正,这项原本烦琐的工作就轻松完成了。
这种让AI聊天应用帮你编写一行终端脚本的过程就是最基础的氛围编程。如果你觉得这个例子还不够精彩,接下来看一个我遇到的更复杂的问题。
我喜欢使用Notion撰写文档,因为它可以通过AI随时选择文字并对其进行润色,使表达更加清晰流畅,所以我一直用Notion撰写本书初稿。但将Notion导出的Markdown文档转换成符合编辑要求的具有规定样式的Word文档成了一个难题。
起初,我采用手工转换的方式,计划每写完一章,就将Markdown文档中的正文以“正文”样式复制到编辑提供的Word模板中,再逐一调整标题、代码清单、图题和提示的样式。完成一章后我评估了一下工作量,这项工作耗去了我半天时间。虽然处理一章的工作量尚可忍受,但要手动调整全书9章的样式,恐怕得花上好几天。显然需要寻找更好的解决方案。
我不是正在写一本关于氛围编程的书吗,还在书中倡导“氛围编程谁都行,解决问题变轻松”的理念,如果自己在文档转换这样的问题上还在依赖手工操作,未免有些说不过去。于是,我决定尝试用氛围编程生成Python代码来解决这个问题。
尽管解决这个问题只需要一个Python程序,但是我对Python编程并不熟悉,所以决定首先尝试使用氛围编程领域较强大的(这符合1.7节中的氛围编程大模型升级指导原则)Claude智能聊天应用(后文简称Claude)。
在写提示词前,我需要厘清思路。我手上目前有3个文件:ch04-from.md(我刚写完的第4章文稿的Markdown文件)、ch04-to-manual.docx(我将第4章的Markdown格式的文稿内容以正文样式复制并粘贴到编辑提供的Word交稿模板并手工调整好样式后的Word文件)和ch04-to-template.docx(编辑提供的Word交稿模板文件)。我想让Claude生成Python代码,将ch04-from.md转为ch04-to.docx。
转换的实现方式有很多种,或许我可以把已经手工转换好的ch04-to-manual.docx文件提供给Claude,让它“以终为始”地参考这个文件来编写Python(读到后文就能看出,沿着这个思路实现会踩进坑里。不过氛围编程本身就是探索的过程,经验都是踩坑后才得到的)。另外,因为我要使用编辑提供的Word交稿模板中的样式,所以我需要让Claude将ch04-to-template.docx复制一份,作为保存转换后内容的目标Word文件,这样就能让Python代码使用其中编辑已经定义好的样式了。
厘清思路后,我打开Claude桌面应用,搭配当时编程能力最强大的Claude Sonnet 3.7[1]大模型,并提交了以下提示词:
[1] 这个大模型的版本号曾是Claude 3.7 Sonnet,与它上一个版本Claude 3.5 Sonnet风格一致。但在Anthropic公司推出Claude Sonnet 4之后,这个大模型的前两个版本号也随之调整为新风格。为风格统一起见,本书后文对于Claude这3个版本号都统一使用新风格。
我上传了3个文件,其中ch04-from.md和ch04-to-manual.docx是两个内容相同但格式不同的文件。我需要一个名为converter的Python程序来分析这两个文件的格式差异[2]。当运行“python3 converter ch04-from.md”时,程序应执行以下操作:读取ch04-from.md 的内容,复制ch04-to-template.docx[3]文件并重命名为ch04-to.docx,然后将ch04-from.md中的内容按照ch04-to-manual.docx的样式写入ch04-to.docx中。转换完成后,用Word打开ch04-to.docx时应与ch04-to-manual.docx的样式完全一致。由于没有上传Markdown文件中的图片,转换后的ch04-to.docx可以不包含图片,但所有文字内容和样式必须与ch04-to-manual.docx保持一致,不能增减。如遇到“【避坑指南】”这样的特殊样式无法确定如何转换,请告知并尽力保留这些内容。
[2] 这个提示词存在语义模糊问题,未能明确说明“分析格式差异”的具体用途。该提示词实际想表达的是比较两种不同格式文档中相同内容的样式差异,并据此进行格式转换。这正是后文所述问题的根源——即使使用Claude这类顶尖工具和配套大模型,反复修复基于这段模糊提示词生成的代码仍无法解决问题。同时,这也反映了氛围编程新手的典型问题——由于没有深入理解需求而导致提示词表述不清。后文将介绍我如何改进这段提示词并最终成功实现文档格式转换。
[3] 这个模板文件起了关键作用。由于模板文件的副本中已包含编辑提供的样式,我设想可以让AI自动分析ch04-from.md文件与相应ch04-to-manual.docx之间的样式对应关系,然后将内容按照这些样式写入副本中。当然,这想法过于理想化了——AI无法自动发现Markdown文档与Word文档之间的样式对应关系,这正是导致后来踩坑的原因。
Claude很快生成了Python代码。运行后发现代码报错,我把错误消息发给Claude请求修复。修复后再次运行又出现新的错误。经过多轮修复,代码终于能运行了。但查看转换后的docx文件,发现还有许多样式问题——章节标题、避坑指南和代码清单标题的样式都与编辑提供的模板不符。我继续让Claude修复这些问题。经过十几轮反复对话,代码清单标题的样式还是不对,代码量却随着修复次数的增加而不断膨胀,最终达到700行。这让我感到十分沮丧。
几天后,我偶然在查看模板文件时发现,代码清单标题其实有专门的样式名,可以直接从Word的样式列表中选用。这让我意识到:之前给Claude的提示词中“将ch04-from.md中的内容按照ch04-to-manual.docx的格式写入ch04-to.docx中”这样的转换要求是否过于模糊了?我是不是太相信Claude能有“读心术”的能力,猜出我的想法并像变魔术一样地生成“首次对话即成功”的代码(没有经过反复迭代,在与大模型的第一次对话中即生成运行不报错且实现提示词中描述的80%左右的功能的代码,往往因为运气好)?如果在提示词中明确指出Markdown语法与Word样式名称的对应关系,也许氛围编程工具所搭配的大模型能更好地完成文档格式转换?
于是,我放弃了那700行的Python代码,转而在Cursor(搭配Claude Sonnet 3.7大模型,选用Agent模式)中用更明确的提示词重新生成代码:
#file:template-from.md #file:template.docx 是你需要阅读的两个文件。两者内容相同但格式不同。请你帮我开发一个名为converter-v2的Python程序,用于将 #file:template-from.md 转换成与 #file:template.docx 样式完全一致的新文件template-to-converted.docx。 当运行“python3 converter-v2 template-from.md”时,程序应: 1)读取 #file:template-from.md 的内容; 2)将 #file:template.docx 复制并重命名为template-to-converted.docx,然后根据Markdown标签与 #file:template.docx 的样式对应关系(见后文),将内容写入template-to-converted.docx中。 转换完成后,用Word打开template-to-converted.docx时,其内容和样式应与 #file:template.docx 完全一致。Markdown文件中的图片也需要正确插入template-to-converted.docx中。要求 #file:template-from.md 中所有文字、插图和表格及其他内容和样式都必须以与 #file:template.docx 一致的样式进行转换,内容不得增减。 在按照后面提供的Markdown标签与Word样式之间的对应关系进行格式转换(即.md格式转换为.docx格式)之前,需要进行一个插图文件名转换预处理,这个预处理逻辑只做一件事:扫描要转换的Markdown文档,只要遇到“(attachment:xxx:图x-xx.png)”,就将从“attachment”到“图”之间的内容删除,即转换为“(图x-xx.png)”,例如将“(attachment:ec94c27f-923d-4ae8-886e-930bd7c3f8e6:图6-17.png)”转换为“(图6-17.png)”。之后再执行所有下述转换逻辑。 以下是 #file:template-from.md 中的Markdown标签与 #file:template.docx 中的Word样式之间的对应关系: “#”对应“Heading 1”。 一般正文对应“Normal”。 “##”对应“Heading 2”。 “###”对应“Heading 3”。 “```”对应“代码无行号”。 以“代码清单”开头的行对应“超强提示标签”。 “- ”对应“第1级无序列表”。 以“表”开头的行对应“表题”。 以“|”开头的表格内容对应“表格单元格”。 以“【避坑指南】”开头的行对应“强提示标签”。 以“提示”开头的行对应“提示标签”。 以“【避坑指南】”开头的“<aside>”内的内容对应“强提示”。 以“提示”开头的“<aside>”内的内容对应“提示”。 以像“1. ”这样的数字开头的行对应“Heading 4”。 图片“[]”中的图片标题对应“图题”。 以``包围的行内代码对应“行内代码”。 “<aside>”内的行内代码两侧的“`”符号在转换后的docx里都要去掉。
这次效果出奇地好,与Cursor首次对话它就生成了能正常运行的代码。转换后的Word文档中,代码清单标题样式完全正确。查看Python代码发现只有300多行。经过让Cursor修复几处bug后,文档样式已与编辑提供的模板完全一致。最终的Python代码为385行,不仅代码量比之前的方案精简了一半,而且解决了那些反复修复却仍无法解决的问题。这不仅表明给大模型提供精准的提示词才能快速获得解决实际问题的代码,还促成我总结出1.7节中的氛围编程高配组合优化提示词指导原则。
需要说明的是,虽然第二次代码生成效果出奇地好,但所使用的氛围编程工具是Cursor,并非第一次使用的Claude。为了科学验证氛围编程高配组合优化提示词指导原则,我需要进行更严谨的实验。因此,我专门用Claude搭配Claude Sonnet 3.7(开启“Extended thinking”和“Web search”模式)进行了实验(实验所用的提示词和相关文件参见本书配套代码中的ch01/lab-converter-prompt-old-vs-new目录),这次实验在提示词优化前和优化后得到了不同的结果。实验结果支持了氛围编程高配组合优化提示词指导原则:提示词优化前首次对话生成的代码在运行时报错“KeyError: no style with name “Title””(关键错误:没有名为“Title”的样式)而导致运行中断,而提示词优化后首次对话生成的代码能够正常运行,并成功实现格式转换(尽管存在一些小bug)。
Cursor是一款基于Visual Studio Code开源代码的闭源AI原生IDE(integrated development environment,集成开发环境,即将代码的编辑、编译和调试等功能集成在一个应用中),于2023年3月推出。它以“对话式编程”为核心理念,可以搭配Claude等大模型,让开发者能通过自然语言与AI聊天应用交互,完成代码编写、调试和重构等任务。
2024年11月24日,Cursor 0.43版紧随Windsurf之后引入了Agent(智能体)模式,能自主使用工具探索、规划和执行复杂代码项目。例如,打开Auto-fix errors开关后,每当Cursor所搭配的大模型根据你的提示词生成了代码,Cursor就会自动在聊天框中运行命令验证代码改动,遇到复杂运行错误时会自动添加调试语句并运行测试,根据结果修改代码,确认无误后再删除这些临时插入的调试代码。这就像有一位经验丰富的程序员在为你编程(1.2.4节将详细介绍这一过程)。
对Python新手来说,385行代码已经是相当可观的规模。这次成功让我深刻体会到了氛围编程的强大。值得一提的是,这个工具已迎来第一位用户——本书的责任编辑。她遇到了与我相同的困扰:收到了一位作者用Notion撰写的Markdown格式书稿,正为如何转换成Word文档发愁。我将这个工具及详细的使用说明README文档上传到Gitee代码库(在Gitee里搜索用户“wubin28”,然后找到convert-book-from-md-to-word- for-epubit-converter-v2代码库)供她试用。不过,她在使用时遇到了问题,因为使用说明是针对macOS系统编写的,在她的Windows 11系统上无法正常使用。于是,我让Claude将针对macOS 系统的使用说明转换成针对Windows 11系统的,它很快就完成了转换。我在自己的Windows 11系统上验证了一下,顺利完成了文档格式的转换。
有了这两次氛围编程的实践经历,我们可以讨论一下什么是氛围编程了。
“一千个人眼中有一千个哈姆雷特”,每个人对氛围编程的理解可能都不同。要全面认识这个新词,要先了解它的起源。
2025年2月3日,一条看似随意的推文在硅谷引发了编程界的地震。曾任OpenAI联合创始人和特斯拉公司人工智能部门总监的计算机科学家安德烈·卡帕西(Andrej Karpathy)发布推文:
有一种新的编程方式,我称之为氛围编程。在这种编程过程中,你完全沉浸于编程氛围中,拥抱编程世界指数级的发展,甚至忘记了代码的存在。这一切归功于大模型(如Cursor在Composer模式[4]中搭配的Claude Sonnet 3.5)的强大能力。我现在使用SuperWhisper[5]在Cursor的Composer模式中对话,几乎不用触碰键盘。因为不想在代码中逐行查找,我会直接提出简单的要求,例如“将侧边栏的内边距减半”。我总是直接点击“Accept all”按钮,不再比对差异。遇到错误消息时,我就直接将其复制到提示词输入框,不加任何解释就提交——通常这样就能让大模型修复错误。现在的代码量已超出我日常的理解范围,要完全读懂需要很长时间。当大模型修复不了bug时,我就绕过去或随机提出修改要求,直到问题消失。这种方式对周末开发一次性项目非常合适,而且很有趣。虽然我确实在构建项目和网页应用,但这已经不能算是传统意义上的编程了——我只需要看看屏幕、说说话、运行一下、复制并粘贴一下,生成的代码就基本可用了。
[4] Cursor的Composer模式最初于2024年7月13日作为实验性功能(beta版本)发布,它将氛围编程的能力从仅支持编辑单行代码和单个页面,扩展到能够同时编辑和创建多个源代码文件。这些功能与2025年3月24日Cursor 0.48版发布时推出的Manual模式(只能修改用户明确指定的那些文件)十分相似。在本书撰写时,Cursor推荐氛围编程者优先使用更加方便的Agent模式,因为在Agent模式下Cursor具备理解和编辑整个项目所有代码的能力,无须指定具体要修改哪些文件,Cursor就能自行选择需要修改的文件。
[5] 一种在macOS系统个人计算机上运行的语音识别软件,让用户能通过语音而非键盘与AI工具协作。
这条随手写就的推文不仅创造了一个全新的编程概念,开启了软件开发史上最具争议的革命,还破圈至没有IT技术背景的“泛程序员”群体。为什么会出现这种现象?这要从零基础入门编程的传统方式说起。
在2022年11月OpenAI公司推出搭配GPT 3.5大模型、具备代码生成能力的ChatGPT之前,新手大多以传统方式入门编程:先发现实际问题并选择编程语言,然后通过读书、看视频、编写并运行样例代码学习该语言,接着照着书上或视频里的例子写一个小项目,然后把例子中的需求稍作修改后独立重写一遍,最后再尝试用所学知识解决问题。但麻烦的是,例子中的小项目往往与要解决的实际问题差异较大,让新手十分抓狂。
以我在前面提到的经历为例,在写本书时需要将书稿从Markdown格式转换为Word格式,而Python程序可以完成这项工作。作为Python新手,按照传统学习方式,我需要先通过读书、看视频和动手实践来掌握Python的基础语法,从编写简单程序开始练习,顶多再把练习中的需求稍作修改后独立重做一遍。即使完成这些基础学习,我还是不会写格式转换的代码,因为编程书里一般不会教这类实用工具的开发。我不得不运用有限的Python知识去网上搜索类似的文档格式转换示例。好不容易找到相关代码后,还需要将其修改成适合我特定需求的版本。遇到困难时,我只能在搜索引擎或Stack Overflow等编程问答网站上寻找解决方案。这种传统的学习过程通常需要花费几天甚至几周时间。
然而,ChatGPT问世后,借助它催生的AI聊天应用(如Claude、豆包和DeepSeek),我这个Python新手仅用两天就完成了同样的文档转换任务。
我用AI聊天应用生成代码完成文档格式转换,就是在做氛围编程。要讲氛围编程的起源,要从2023年1月的一条推文说起。当时,卡帕西在推特(现已更名为X)上发出了一条看似玩笑却极具预见性的推文:“The hottest new programming language is English”(最热门的新编程语言是英语)。这句话背后蕴含着深刻的洞察——大模型已经强大到足以让人们直接用自然语言控制计算机,而无须掌握专门的编程语言。这一观点在两年后成了氛围编程概念的思想源头。
进入2025年,这一理念开始从理论走向实践。2月,《纽约时报》记者凯文·鲁斯(Kevin Roose)决定亲自验证这种可能性。他开始进行氛围编程实验,创建了几个小型应用。鲁斯将这些应用称为“为一个人而生的软件”——专门为解决特定个人需求而设计的AI生成代码工具。其中最有代表性的是一个名为LunchBox Buddy(午餐饭盒伙伴)的应用,它能够根据冰箱中的食材提供第二天的午餐食谱建议。
鲁斯的实验很快引起了广泛关注。2月13日,科技博客Business Insider将氛围编程描述为“硅谷的新流行词”,标志着这一概念开始进入主流话语体系。然而,并非所有人都对此持乐观态度。认知科学家加里·马库斯(Gary Marcus)对鲁斯的实验提出了尖锐批评,他指出生成LunchBox Buddy应用的算法很可能是在类似任务的现有代码上训练的,因此鲁斯的氛围编程成果更多源于复制而非真正的原创。
尽管存在争议,氛围编程在硅谷的实际应用却在加速推进。3月5日,两个重要的实证数据同时公布。美国硅谷知名创业孵化器Y Combinator公司的管理合伙人贾里德·弗里德曼(Jared Friedman)在发布于YouTube的一段对话中透露了一个惊人的数字:在2025年初创公司冬季训练营中,约有四分之一的初创公司有95%的代码是由AI生成的。弗里德曼特别强调,这些创始人并非不懂技术的门外汉,而是“个个技术精湛,完全有能力从零开始打造产品”的专业人士,但他们现在选择让AI来完成绝大部分编程工作。
同一天,创业者丹尼尔·本特斯(Daniel Bentes)公布了他为期27天的氛围编程实验结果。通过1700多次代码提交(其中99.9%为AI生成),本特斯发现了氛围编程的发展规律:从最初的“蜜月期”——AI工具表现出色,自然语言描述能在几分钟内转化为能运行的功能,到“上下文崩溃期”——代码的复杂性增大,当代码超过约5000行时,AI工具开始失去对系统整体脉络的把握(这启发我总结出1.7节的氛围编程简单性指导原则);最终进入“维护困难期”——代码变得难以维护和调试。
这一概念的影响力在3月继续扩大。韦氏词典将“vibe coding”正式收录为“俚语和趋势”名词,表明其在语言学层面获得了认可。与此同时,《纽约时报》、Ars Technica、《卫报》等主流媒体纷纷对此现象进行深度报道。
3月19日,程序员西蒙·威利森(Simon Willison)发表了一篇具有里程碑意义的博客文章,首次系统地定义了氛围编程与传统AI辅助编程的根本区别。威利森明确指出,氛围编程的核心在于“用户接受代码而不完全理解”和“不评审AI生成的代码”,这与需要详细评审、全面测试并能向他人解释代码的传统AI辅助编程形成了鲜明对比。他的这一定义为这个新兴概念提供了清晰的理论框架。
3月26日,《财富》杂志报道了Y Combinator公司的CEO加里·谭(Garry Tan)对氛围编程效率的惊人评价:“氛围编程让10名工程师能够完成100名工程师的工作。”这一说法进一步推高了业界对这一新编程方式的期待。
到了4月8日,氛围编程终于获得了大型科技公司的正式认可。IBM在其官方博客中将氛围编程定义为“一种全新的编程方法,用户用自然语言表达意图,AI将这种思维转化为可执行代码”。至此,从卡帕西的预言性推文到IBM的官方定义,氛围编程完成了从概念萌芽到主流认可的完整历程。
从安德烈·卡帕西的一条推文开始,氛围编程已从一个编程概念演变为一种文化现象、一场关于AI与人类协作的全球对话,以及对软件开发未来的预言。
无论是赞成者还是批评者都承认,这种编程方式代表了一个根本性的转变:从手写代码到与AI对话生成代码,从必须理解每一行代码到“先拥抱不确定性”。
正如卡帕西本人所说,氛围编程可能“不太适合严肃的项目,但仍然相当有趣”。然而,随着AI能力的不断提升和工具的日益完善,氛围编程可能不仅“有趣”,而且正在重新定义编程的本质、软件开发的方式,以及AI时代中人类程序员的角色。
氛围编程是一种颠覆传统的新型编程方式。通过这种方式,编程者(包括不具备传统编程语言知识的人)可以使用中文、英文等自然语言,借助氛围编程工具与搭配的大模型进行对话来生成实用代码(包括传统编程语言、计算机终端脚本、架构图等示意图脚本或用作AI聊天提示词的自然语言),而无须完全理解大模型生成的代码。与传统编程最大的区别在于,氛围编程者往往因时间精力所限不会详细评审大模型生成的代码变更,即使不完全理解这些变更也会全盘接受(但这并不妨碍后期仔细阅读、理解和测试)。当代码运行出现错误时,编程者只需将错误消息反馈给大模型,由大模型负责修复。
上述定义中的大模型,指的是在氛围编程场景下经常搭配的以下3种大模型(为行文方便,以后当与氛围编程工具搭配时统称大模型,而不再具体指明是哪类大模型,各种大模型的对比参见9.5节)。
● 大语言模型(large language model,LLM):专门处理和生成文本的大规模神经网络模型,擅长理解和生成自然语言内容。如Claude Sonnet 4、GPT-4.1、DeepSeek-v3-0324和Qwen-3。
● 多模态大模型(large multimodal model,LMM):能够同时处理多种数据类型(如文本、图像、音频)的大模型,实现跨模态理解和生成。如GPT-4o、Gemini 2.5 Pro、Doubao-seed-1.6和Kimi k1.5。
● 专门化大模型(specialized model):针对特定任务或领域进行深度优化的大模型,在特定场景下性能卓越。如o3、SWE-1和DeepSeek-R1。
氛围编程的核心特征可归纳为5个关键词:颠覆传统、自然语言、大模型、不完全理解、完全接受。其中“不完全理解”这一特征意味着即使是不具备传统编程语言知识的非IT背景的人,也能在大模型的帮助下进行氛围编程。这就让“氛围编程谁都行,解决问题变轻松”成为可能。
此外,这个氛围编程的定义还扩展了大模型所生成“代码”的范围,将可用作AI聊天提示词的自然语言也纳入其中。这呼应了卡帕西那条“最热门的新编程语言是英语”的推文。
如果你对此仍有疑虑,不妨跟随我一起用手机进行一次氛围编程实战。
这个氛围编程实战将用手机上的AI聊天应用生成一个“Hello world音乐专辑封面”。Hello world程序通常是程序员入门时的第一个程序,它能在计算机终端显示“Hello world”文字。既然氛围编程已经颠覆传统,不妨按下面的步骤让手机上的Kimi应用[6]搭配Kimi k1.5大模型生成一个独特的“Hello world音乐专辑封面”来纪念这个时刻。
[6] 因为Kimi比较热门且在手机端提供HTML代码预览功能,所以在此以Kimi为例进行说明。在手机上安装智谱清言或阶跃AI也可以实现同样的预览效果。此外,也可以使用夸克、天工、DeepSeek、豆包、通义、文小言、MiniMax、秘塔AI搜索或讯飞星火,但这些应用大多无法在手机端预览HTML图形,只能在计算机网页端预览,或将代码复制到codepen.io在线HTML工具查看。注意,如果选择元宝或纳米AI搜索,它们无法完成第4步中的图形绘制任务。
(1)准备AI聊天应用Kimi手机应用。如果手机上尚未安装Kimi,可以在手机应用商店搜索“Kimi”并安装。如果手机上已经安装了Kimi,请确保更新到2.1.6或以上版本。
(2)开启新聊天。如果Kimi正处于一个聊天中,那么可以点击屏幕右上角的“+”,开启新聊天。
(3)开启“长思考(k1.5)”[7]模式。如果提示词输入框底部显示“联网搜索”功能,将其关闭,因为不需要搜索最新信息。
[7] 在其他应用中,类似的模式可能名为“推理”“深度思考”“深度”或“深度推理”,建议开启。
(4)输入提示词并提交。在提示词输入框中输入以下提示词,提交后观察大模型的输出:
请生成一个“Hello world”字样的动感浪漫专辑封面。要求使用浅色调,并以可运行的HTML格式输出。将HTML代码单独放在一个代码块中,不要添加任何说明文字。
(5)查看HTML代码。点击大模型输出内容中HTML代码界面上方的“代码”选项卡,查看以<!DOCTYPE html>
开头的代码,如图1-1所示。
图1-1 在Kimi手机应用中查看HTML代码
这表明AI聊天应用已成功根据提示词生成了HTML代码。那么,这段代码是否能正常运行呢?
(6)预览HTML代码所画的动感浪漫专辑封面。点击代码界面上方的“预览”选项卡即可查看成品。封面中的“Hello world”文字、小红心和蓝色圆点都在缓慢移动,表明生成的HTML代码运行正常,成功实现了预期的动态效果,如图1-2所示。
Kimi在首次对话中就根据提示词成功地生成了可运行的HTML代码,并呈现出一个动感的专辑封面效果。这个结果令人惊叹。那么,Kimi究竟是如何在背后运作,实现这一功能的呢?
图1-2 在Kimi手机应用中预览HTML代码所画的专辑封面
在1.2.3节的氛围编程案例中,生成HTML版专辑封面涉及3个角色:氛围编程者、Kimi手机应用和Kimi k1.5大模型。这三者之间的关系如图1-3所示。
图1-3其实是一张用C4模型(C4 model,一种新兴的架构可视化方法)风格绘制的架构图,围绕着3个关键角色及其互动展开。在这个氛围编程过程中,移动端氛围编程者作为用户,通过语音或文字向系统描述创意需求,能生成个性化代码作品,并在手机上实时预览和分享这些作品。Kimi手机应用充当用户交互的前端界面,提供语音和文字输入功能,管理多轮对话流程,支持代码的展示、编辑和实时预览,同时具备分享和导出功能。而在系统核心,Kimi k1.5大模型是由月之暗面开发的AI引擎,它深度理解用户意图,支持长思考推理模式,针对创意代码生成和视觉设计进行了专门优化,并为移动端使用场景做了适配。
在交互关系方面,用户首先通过语音或文字向Kimi应用输入创意需求,包括设计风格偏好和技术要求。随后Kimi应用将这些需求发送给大模型进行内容分析和长思考推理。整个系统的设计理念是让普通用户能通过自然语言描述,在移动设备上轻松创建专业的HTML专辑封面,实现氛围编程的创作体验。
从图1-3可以看出,Kimi k1.5大模型是完全独立于Kimi手机应用的系统。Kimi手机应用充当中间人角色,它接收用户的提示词,经过处理(可能保持原样,也可能添加额外提示词)后,将其发送给后端的Kimi k1.5大模型。
若将图1-3改编为本书的氛围编程主题,呈现的结构如图1-4所示。
图1-3 使用Kimi生成HTML版专辑封面中的角色及其关系
图1-4 氛围编程中各个角色及其关系
图1-4也展示了3个关键角色及其关系。第一,氛围编程者作为用户,通过自然语言表达自己的编程需求,无须深入掌握复杂的编程语法。用户只需描述想要实现的功能,然后让AI为其生成可直接运行的代码,并在需要时通过对话方式进行迭代优化。
第二,氛围编程工具扮演着用户与AI之间的桥梁角色,形式多样且功能丰富。这些工具可能是AI聊天应用(如Claude或ChatGPT),也可能是基于浏览器的云AI IDE,或是专为AI编程设计的AI原生IDE,甚至是传统IDE中的AI插件和命令行界面的终端AI应用。不论形式如何,它们都提供了人机交互界面,管理对话上下文,搭配大模型,协调各子系统运作,处理多轮对话逻辑,并展示生成的代码和运行结果。
第三,关键角色是大模型,作为整个系统的核心AI引擎,它具备深度理解自然语言编程需求的能力,可以生成高质量代码和相关文档,进行逻辑推理和任务规划,智能决策何时调用外部工具,并能分析错误提供修复方案。
在交互流程中,用户首先通过自然语言向氛围编程工具描述需求和技术约束,工具接收并处理这些输入;随后,氛围编程工具将用户需求连同上下文信息和历史对话记录发送给大模型进行处理。这种架构设计的核心价值在于大幅降低了编程门槛,让用户能够通过自然语言交流方式实现编程意图,而无须深入掌握特定编程语言的语法和技术细节。
需要特别强调图1-4中的一个关键点:大模型是完全独立于氛围编程工具的外部系统,但很多人误认为这两者是一体的,以至于错误地认为氛围编程工具代表着AI生成代码的能力,而实际上起作用的是大模型。此外,虽然“AI生成代码”这种说法已经流行起来,但需要明确这个表述实际上指的是“大模型生成代码”,而氛围编程工具主要起中间人的作用。
【避坑指南】大模型独立于氛围编程工具会导致什么令人困惑的现象?
会导致这样的怪事:分别在Cursor和Trae国际版中搭配相同的Claude Sonnet 4大模型,并提交相同的提示词,Cursor可能在首次对话时生成良好的代码,而Trae国际版可能会运行出错(此处仅用Cursor和Trae国际版举例,并不意味着实际情况确实如此)。
出现这种情况通常有两个原因。首先是1.2.9节提到的大模型“概率性生成机制”——Trae国际版访问大模型时可能恰好遇到大模型产生“幻觉”。其次是氛围编程工具作为“中间人”对提示词的处理和大模型参数的配置可能不当。以温度(temperature)参数为例(仅作为示例,不一定是这个原因),它控制着大模型输出的随机性和创造性,取值通常在0到1之间(某些系统可能支持更高值)。设置较低的温度值会让大模型倾向于选择概率最高的词,设置较高的值则增加其他词的选择可能性。这就像从同一个海鲜摊位买来相同的食材,不同厨师却能做出不同风味的菜品。因此,如果发现Trae国际版即使使用同版本Claude大模型也总是生成质量不佳的代码,很可能是因为第二个原因。遇到这种情况,建议改用Cursor。
如果你对氛围编程背后更完整的运作机制感兴趣,可以将图1-3绘制得更详细,这样使用Kimi生成HTML版专辑封面的氛围编程完整版概念图如图1-5所示(如果不感兴趣,可以放心地跳到下一节)。
图1-5 使用Kimi生成HTML版专辑封面的氛围编程概念图(只包含框架的完整版)
图1-5之所以展示“只包含框架的完整版”,是因为包含职责描述的完整版概念图文字过多,无法在一页纸中展现全貌,因此图1-5删去了职责描述,仅保留各子系统的标题及相互之间的关系。要全面理解这张图,建议在计算机上打开完整版(可查看本书配套代码中的ch01/c4-model-diagrams/图1-5-full.svg文件,该文件为纯文本脚本),边预览图边阅读后续解释文字。如果你不知如何预览SVG格式的完整版,可通过浏览器访问免费在线SVG图预览工具svgviewer.dev,然后用Trae国际版(如未安装可参见附录A.1进行安装)打开“图1-5-full.svg”文件,将文件中的所有SVG脚本复制并粘贴到svgviewer.dev页面左侧输入框,即可在右侧预览此图。或者,你也可以向你喜欢的AI聊天应用提问:“你是互联网信息搜索专家,请搜索互联网,找出3款能在浏览器中预览SVG图的在线免费工具”,然后从AI聊天应用推荐的工具中选择合适的工具预览SVG图。
图1-5所示的概念图(只展示概念,并非实现Kimi手机应用的架构图)全面展示了Kimi如何生成HTML版专辑封面的完整工作流程。整个系统由8个相互关联的核心组件组成,共同打造出一个复杂而高效的创作环境。
除了图1-3中包含的氛围编程者、Kimi手机应用和Kimi k1.5大模型,系统还包含了移动端渲染引擎、代码编辑器、媒体管理器、云端存储和分享系统,以支持完整的创作体验。移动端渲染引擎基于WebView技术提供HTML/CSS/JavaScript的渲染能力,以方便用户预览HTML代码绘制的专辑封面图;代码编辑器为移动端优化了代码处理功能;媒体管理器负责各类设计资源的管理;云端存储提供作品同步和历史记录;分享系统则实现了多平台的分享能力。
整个创作流程包含8个主要步骤:用户输入创意需求,应用将其发送给k1.5大模型;大模型从媒体管理器获取设计资源,然后返回生成的代码;应用将代码送至编辑器处理,再发送渲染请求给渲染引擎;渲染引擎返回结果后,应用最终向用户展示完成的作品。
此外,系统还支持优化流程,让用户提供反馈建议,应用将这些优化请求发送给大模型进行迭代改进。系统也支持将作品保存到云端存储,并允许用户通过分享系统发布作品。
在系统协作机制方面,各组件之间形成了紧密的互动关系:代码编辑器与渲染引擎实现实时代码同步和预览刷新;媒体管理器与云端存储协同进行素材库更新和云端备份;渲染引擎与媒体管理器合作实现动态加载素材和缓存管理;而在k1.5大模型内部,长思考模式所具备的推理能力支持深度需求分析和创意构思。
这个完整架构展现了现代AI辅助创作工具的复杂性和精巧设计,通过多个专业化组件的协同工作,为用户提供从创意描述到最终作品发布的完整氛围编程体验。
与图1-5类似,图1-6展示了氛围编程相对完整的运作机制概念图(与图1-5一样,这里展示的也是“只包含框架的完整版”,完整版可查看本书配套代码中的ch01/c4- model-diagrams/图1-6-full.svg文件)。
图1-6 氛围编程运作机制概念图(只包含框架的完整版)
在这个生态系统中,除了氛围编程者、氛围编程工具和大模型,氛围编程工具所使用的代码运行环境不仅能隔离个人计算机上的底层操作系统以确保安全性,还支持多种编程语言的实时运行,捕获运行结果并检测错误,同时监控代码性能和资源使用情况。工具调用系统则提供丰富的扩展功能模块,包括文件系统操作、网络请求处理、数据库访问、第三方API集成和外部服务调用。
代码仓库是一个完整的代码管理和版本控制系统,支持代码存储、版本历史追踪,并提供分支管理和多人协作支持。知识库则存储编程知识和最佳实践,包含代码模板、设计模式、技术文档,并提供常见问题的解决方案库。
在完整工作流程中,核心生成流程包括9个步骤:首先,用户用自然语言描述功能需求和技术约束;然后,氛围编程工具将需求发送给大模型;接着,大模型从知识库获取相关模板和最佳实践;根据需要调用工具进行文件操作、API调用等;之后,大模型返回生成的代码、文档和解释说明;氛围编程工具在安全环境中运行生成的代码;运行环境返回运行输出、错误消息和性能数据;用户看到代码内容、运行结果和改进建议;最后,氛围编程工具将代码保存到仓库进行版本管理。此外,还有持续优化流程,即用户提供反馈和修改需求,系统进入新一轮优化循环。
在系统协作机制方面,工具调用系统与运行环境之间的协作确保工具在安全沙箱环境中运行,保证系统安全;而知识库与代码仓库之间的协作则使知识库能从代码仓库学习新的编程模式,持续更新知识储备。
这个完整架构实现了“描述即编程”的愿景:降低了使用门槛,让用户只需描述想法,无须掌握编程技能就能生成可运行的代码;提高了效率,由大模型自动处理复杂的代码生成和优化工作;提升了质量,通过知识库和最佳实践提升代码质量;确保了安全可靠,在隔离环境中运行代码,保证系统安全;并且能够持续改进,通过反馈循环不断优化生成结果。这种架构代表了氛围编程工具的未来发展方向,让编程变得更加直观、高效和易用。
使用Kimi手机应用生成HTML版专辑封面的例子展示了AI聊天应用作为氛围编程工具的应用。那么,除了AI聊天应用外,还有哪些其他类型的氛围编程工具呢?
撰写本书时,氛围编程工具可分为以下6类。
(1)AI聊天应用。这类工具一般提供手机应用和网页端应用,少数还提供计算机桌面应用。其界面类似微信的一对一聊天:用户输入提示词后,AI聊天应用将其发送给搭配的大模型处理,并在聊天区显示回复内容。目前国内常见的AI聊天应用包括DeepSeek、豆包、Kimi、通义、元宝、文小言、智谱清言、阶跃AI、夸克、天工、秘塔AI搜索、纳米AI搜索、讯飞星火和MiniMax。
(2)智能体构建平台。这类工具主要用于创建、配置和部署定制化的AI智能体,通常提供网页端服务和部分移动端应用。其界面一般包含智能体配置区、知识库管理区、工作流编辑区和预览测试区等模块。用户可以通过可视化界面设定智能体的角色、知识背景、对话风格和业务流程,无须编程即可构建专属的AI助手。这些平台通常支持接入多种大模型,并提供API接口供第三方应用调用。目前常见的智能体构建平台有扣子、百度的AppBuilder和腾讯的元器。
(3)云AI IDE。这类工具主要用于生成带前端界面的Web应用和移动端应用,主要提供网页端服务,即主要在计算机浏览器中使用。其界面分为两部分:左侧类似AI聊天应用,可输入提示词、查看AI回复,并进行代码解释、代码生成和工具调用;右侧显示代码文件树、文件预览、应用运行预览和运行日志终端等界面。目前常见的云AI IDE包括Bolt.new、v0、Lovable和Replit。
(4)AI原生IDE。这类工具在本地计算机上运行,一般基于开源的Visual Studio Code(MIT协议,允许商用)开发,增加了代码解释、代码生成、调用工具等大模型相关功能。使用这些功能需要搭配相应的大模型。这类工具也提供AI聊天界面,用于输入提示词和查看AI回复。目前常见的本地AI原生IDE包括Windsurf IDE、Cursor[从2025年7月16日开始,在国内使用Cursor搭配Claude系列大模型时会遇到“This model provider doesn’t serve your region”(该大模型厂商未向你所在的地区提供服务)的错误提示,用户需要在Cursor的网络设置中将“HTTP Compatibility Mode”从默认的“HTTP/2”改为“HTTP/1.1”才能临时解决这一问题。若介意这个问题,可用Windsurf搭配Claude Sonnet 4替代,因为恰好在7月中旬,Windsurf的CEO与核心团队投奔谷歌且Windsurf剩余团队及资产被Cognition公司收购后,Windsurf又重新获得Claud系列大模型的完全使用权]、Trae(分为可连接Claude等国外大模型的国际版和仅能连接DeepSeek等国内大模型的国内版)和Lingma IDE。
(5)传统IDE中的AI插件。这类工具作为Visual Studio Code或JetBrains IDE等传统IDE的插件存在。在Visual Studio Code的插件管理界面中激活AI插件并搭配大模型后,插件会提供AI聊天界面,用于输入提示词、查看AI回复,还可进行代码解释、代码生成和调用工具等操作。虽然可以在同一IDE中安装多个AI插件,但通常只激活一个使用。目前常见的本地传统IDE中的AI插件包括GitHub Copilot、Cline、Augment Code、Roo Code、腾讯云代码助手CodeBuddy等。
(6)终端AI应用。这类工具在本地计算机终端中运行,表面上看像是在执行终端命令,实际上是以命令的形式调用所搭配的大模型来生成代码。目前常见的终端AI应用包括Claude Code、Aider和OpenAI Codex CLI。
【避坑指南】没有编程经验的人,是不是只适合用AI聊天应用,而不适合用IDE进行氛围编程?
恰恰相反。缺乏编程经验的人也可以通过书、视频和AI聊天应用的辅助快速掌握IDE的使用。用IDE进行氛围编程有一个突出优势:如果AI生成的代码包含几十个源文件,你可以在提示词中使用专用符号(如以@或#开头)来精确引用要修改的文件和目录,并能用鼠标选中IDE内置终端中的错误消息,直接将这些错误及其行号范围提交给大模型,无须每次都复制并粘贴。这种方式不仅让提示词简洁高效,还能帮助大模型更准确地理解你的需求。
这6类氛围编程工具都需要搭配大模型才能生成代码。那么,大模型是如何生成代码的呢?
大模型生成文本类内容(包括代码)的能力源于其深度学习架构和精心设计的训练流程。这个看似神奇的过程实际上遵循着清晰的技术路径:从构建强大的神经网络“大脑”,到通过海量数据学习编程知识,再到指令微调让模型“听懂人话”,进而通过推理能力训练获得深度思考能力,并运用测试时缩放优化进行多轮验证,最终在实际推理生成阶段实现真正的智能代码生成。
2025年标志着代码生成技术的重大转折点。传统的“下一个token预测”模式正在被推理大模型和混合推理技术所革新。现代代码生成不再只是简单的模式匹配,而是具备了类似人类程序员的深度思考和推理能力。整个技术体系现在包含架构设计、预训练、指令微调、推理能力训练、测试时缩放优化和实际推理生成6个核心阶段。
现在,用于生成代码的大模型主要采用基于2017年谷歌提出的Transformer架构。与原始Transformer的编码器-解码器结构不同,当前主流的代码生成大模型(如GPT系列和Code Llama)采用decoder-only架构,这种设计更适合自回归的代码生成任务。Transformer的核心创新是自注意力(self-attention)机制,它让大模型能够全局地理解代码上下文,同时关注代码中的所有部分,“理解”变量定义、函数调用、类继承等复杂关系;根据当前生成位置的需要,动态调整对不同代码片段的关注程度;相比传统循环神经网络(recurrent neural network,RNN)架构,能够并行处理整个序列,大幅提升训练效率。
大模型通常包含多个并行的注意力头,数量因大模型而异,从8头到数十头不等。每个头专注于理解代码的不同方面:有的关注语法结构和括号匹配,有的理解变量作用域和函数逻辑,有的学习代码格式和命名规范,还有的跟踪模块导入和函数调用关系。
在预训练阶段,大模型会“阅读”数百万个开源项目,包含GitHub等平台的公开代码(涵盖主流编程语言和框架)、技术文档和API说明(学习函数用法和最佳实践)、代码注释和README文件(理解代码意图和项目结构)及编程问答数据(学习问题解决思路)。预训练的核心任务是“预测下一个token”,这类似于高级的完形填空。例如,当输入def fibonacci(n): if n <= 1: return
时,大模型需要预测下一个最可能的token,在这个例子中应该是n
。
通过这个过程,大模型学会了各种编程语言的语法结构和规范,常见算法的实现方式和优化技巧,面向对象设计、函数式编程等编程范式,以及代码组织、错误处理、性能优化等工程实践经验。
为了让大模型“听懂人话”,研究者使用精心制作的指令-代码配对数据进行微调。例如,给出指令“用Python实现一个二分查找算法,要求处理边界情况”,然后提供标准答案代码。指令微调覆盖了代码生成的各种场景:根据需求描述生成完整函数、根据上下文补全代码片段、识别并修正代码中的bug,以及为现有代码添加注释和说明。
2025年最重要的技术突破是推理大模型的兴起。现代大模型普遍采用人类反馈强化学习(reinforcement learning from human feedback,RLHF)技术进一步优化:首先收集人类偏好数据,让程序员对不同代码方案进行评分;然后训练奖励大模型,学习人类对代码质量的判断标准;最后通过强化学习优化,使用近端策略优化(proximal policy optimization,PPO,一种强化学习算法,用于优化大模型的生成策略,让大模型学会生成更符合人类偏好的内容)等算法让大模型生成更符合人类偏好的代码。不同于传统的直接回答模式,推理大模型具备了深度思考能力。核心推理技术包括思维链(chain-of-thought,CoT)推理(能够逐步分解问题,模拟人类思考过程)、扩展思考(extended thinking)(可以花费更多计算资源进行深度推理)及混合推理模式(既能快速响应,也能进行深度思考)。
测试时缩放(test-time scaling,TTS)是现代大模型的一项重要创新。它通过在推理阶段投入更多计算资源来显著提升输出质量。与传统的固定推理模式不同,测试时缩放使模型能够根据问题复杂度动态调整计算投入:对复杂问题进行多轮深度思考,实时自我验证和纠错,并行探索多种解决方案以选择最优方案。这种技术让AI系统在面对挑战性任务时表现出更接近人类专家的思维过程。
实际推理生成是训练成果转化为实用代码的关键环节。当开发者输入需求后,大模型会像真正的程序员一样开始思考。它首先进入上下文理解阶段,仔细分析整个编程环境,包括项目结构、现有代码、使用的框架和依赖,同时深入理解开发者的具体需求,从而全面把握整个编程场景。接着在推理思考阶段(这是2025年推理大模型的最大特色),大模型会在内部进行深度“思考”,分析问题复杂度,制定解决策略,并权衡多种可能的实现方案。在这个过程中,大模型会不断自问:“我需要考虑哪些边界条件?”“哪种算法最适合当前的性能要求?”“如何确保代码的可维护性?”随后,大模型进入方案验证阶段,对已生成的代码进行全面自检,验证其语法正确性、逻辑一致性,以及是否遵循最佳实践。一旦发现问题,就会自动进行修正和优化。最后在代码输出阶段,大模型呈现经过深思熟虑和严格验证的代码,并附带相关解释、使用建议或未来可能的改进方向。这样的流程体现了AI编程从简单的“预测下一个token”到“思考下一步”的“智能编程助手”的根本性转变,是所有技术阶段综合作用的成果。
2025年是人工智能发展的重要转折点:从传统的模式匹配和统计生成转向具备真正“推理思考”能力的大模型时代。推理大模型的核心特征在于其能够进行多步骤逻辑推理,将复杂问题分解为可处理的子问题,通过扩展思考验证推理过程的正确性,并在推理过程中动态调用外部工具和知识。
2025年1月20日发布的DeepSeek-R1作为开源推理大模型产生了巨大影响:采用6710亿参数的混合专家模型(mixture of experts,MoE)架构;通过纯强化学习获得推理能力,无须监督微调;完全开放大模型权重,降低了技术门槛;使用MIT许可证,允许商用;在保持性能的同时大幅降低使用成本,促进了大模型推理技术的普及。
模型权重
“模型权重”是大模型通过算法训练过程自动优化得到的参数数据,即大模型的“大脑记忆”,决定了大模型如何处理信息并生成回应。传统上,OpenAI和Anthropic等公司仅提供付费API服务,用户无法获取模型内部参数。而“完全开放大模型权重”意味着参数文件公开发布,用户可免费下载完整模型,在本地设备运行,无须依赖第三方服务,且大模型结构完全透明。这种开放模式影响深远:实现了技术全民化,打破大公司对AI技术的垄断;引发了成本革命,消除持续API费用;加速了创新,促进二次开发和定制;提高了研究透明度,助力AI安全和可解释性研究。DeepSeek-R1的这种做法标志着AI行业从封闭商业模式向开放共享模式的转变,可能重塑整个AI产业格局。
DeepSeek-R1的一个重要创新是向用户完全展示其推理过程,通过<think> </think>
标签将模型的逐步思考过程暴露给用户。这种透明度与OpenAI的o1系列形成鲜明对比——后者在后台进行链式思考推理,但只向用户提供高级总结,不展示详细的推理步骤。
推理透明化的意义在于大幅提升人机协作的效果。通过允许用户实时观察模型如何分析问题和测试不同方案,可解释性得到显著增强。当模型出错时,用户能够精确定位推理过程中的具体问题点,从而更高效地进行错误诊断。此外,这种透明化还具有重要的教育价值,推理过程的展示为用户提供了宝贵的学习资源,帮助他们理解AI的思考方式。最重要的是,透明的思考过程能够建立用户对AI决策的信任基础,让人们更加愿意接受和采纳AI的建议。
2025年5月23日发布的Claude 4系列代表了本书撰写时推理大模型在代码生成方面的领先水平:Claude Opus 4在SWE-bench测试中达到72.5%的准确率,超越所有竞争对手;Claude Sonnet 4的编程和推理能力显著提升,指令遵循更精准,支持即时响应和扩展思考两种模式,并且可以在推理过程中调用外部工具。
推理大模型带来的不仅是代码生成质量的提升,更是开发模式的根本改变:AI从简单的代码补全发展为能够独立思考的编程伙伴,能够处理需要数小时的复杂重构和开发任务,并通过与开发者的互动不断优化。
随着2025年推理大模型的兴起,大模型已能在多种编程场景下提供接近人类专家水平的代码生成服务,正在根本性地改变软件开发的模式和效率。这标志着我们进入了一个AI能够进行“思考”和“推理”的编程时代。
2025年大模型发展正经历一场双重转型,从大参数向小参数、从稠密向稀疏结构演进。混合专家模型已成为主流架构选择,它在通过条件计算实现参数扩展的同时,显著降低了计算成本。专业化趋势日益明显,针对特定编程语言和领域的大模型优化不断深化,代码生成的速度和准确率持续提升。其中,CodeT5在需要双向理解的复杂代码智能任务上表现出色,而StarCoder则在大规模、多语言的代码生成和实时辅助编程方面展现优势,这些专门的编程大模型在各自擅长的领域都超越了通用大模型的表现。
当前,大模型正经历从单模态的大语言模型向多模态模型的关键转型。多模态代码生成展现出革命性的应用前景:开发者可以从UI设计图或手绘草图直接生成前端代码,大幅缩短从设计到实现的周期;用户能够通过自然语言描述需求生成相应代码,极大降低了编程门槛;系统甚至可以从演示视频或操作序列自动生成脚本,实现从知识到执行的无缝转换。
2025年是大模型从强概率生成向强推理能力的重要转折点。新一代推理大模型,如OpenAI的o系列、Anthropic的Claude 4 Extended Thinking、Google的Gemini 2.5 Pro Deep Think等,在数学、逻辑推理和复杂问题解决方面实现了显著突破,为科学研究、金融分析和法律咨询等专业领域的应用奠定了坚实基础。
未来的编程大模型将更加智能化和情境化。它们能够学习并适应个人的编程习惯、命名约定和架构偏好;自动适应团队的代码规范、工作流程和最佳实践;并深度融合企业内部的工具链、知识库和业务流程。这种个性化与协作化的演进使AI成为真正意义上的编程伙伴。
与此同时,移动端和边缘端AI智能体已成为新的增长点。通过大模型压缩和知识蒸馏等技术,大模型能够在资源受限的环境下高效运行,这一趋势正推动AI技术在物联网、智能家居和工业机器人等领域的广泛应用。
尽管技术进步迅速,大模型仍面临着计算资源消耗、部署成本、数据安全和伦理合规等诸多方面的挑战。未来的发展将更加注重效率与性能的平衡、大模型的可解释性,以及与人类价值观的对齐,推动AI技术向更加可信、可控和普惠的方向发展。
大模型展现出强大的代码生成能力,但在使用氛围编程工具搭配大模型进行氛围编程时,有必要关注其中潜藏的风险。
氛围编程虽然降低了编程门槛,但其“完全接受AI生成代码”的核心特征在2025年推理大模型时代带来了更加复杂和隐蔽的系统性风险。这些风险主要来自下面3个层面。
大模型在生成代码时出现“幻觉”主要有以下5个原因。
(1)训练数据有局限性。大模型只能基于已有的训练数据学习。如果训练数据中存在错误,大模型就可能学习并重现这些错误。同时,训练数据可能存在偏见或不完整的问题。
(2)采用概率性生成机制。大模型通过预训练和微调获得的概率分布来预测内容。在遇到不确定情况时,它会选择看似“合理”的答案,可能生成表面正确但实际有误的内容。
(3)上下文长度有限制。大模型的对话上下文长度有限,因此对大型代码项目的理解可能不够全面。
(4)提示词有歧义。用户提供的提示词可能含糊不清,导致大模型产生理解偏差。
(5)缺乏真实性验证。大模型没有内置的事实检查机制[8],无法实时验证生成内容的准确性,只能依靠模式匹配而非真正理解。
[8] 如果搭配大模型的氛围编程工具能够连接计算机上的代码执行环境(如图1-6所示)来执行命令、捕获结果、检测错误,并能在随后让大模型进行修复,那么就能缓解这个风险。若在Cursor中开启“Auto-fix errors”,就能实现这一点。
2025年推理大模型的兴起带来了前所未有的4类风险。
(1)推理过程不透明风险。推理大模型的“扩展思考”和“多轮推理”过程在很多商业大模型中为黑盒,仅在部分大模型(如DeepSeek-R1)中可见,且即使可见也往往超出普通用户的理解和验证能力,导致推理过程验证困难;当代码出现问题时,难以回溯大模型的推理过程进行问题定位;企业合规审计难以验证大模型的决策逻辑是否符合内部规范。
(2)伪理性和过度自信风险。推理大模型能够生成看似合理的推理过程,但可能基于错误的前提或逻辑漏洞;大模型的“自我验证和纠错”能力可能给用户错误的安全感,实际上验证过程本身可能存在盲点;深度推理可能将初始的小偏差通过逻辑链条无限放大。
(3)计算资源和成本风险。推理大模型的“测试时缩放优化”可能导致计算成本急剧增加且难以预估;对复杂问题的深度推理可能需要大量计算资源,影响系统稳定性;推理过程的计算密集性可能导致服务响应延迟或中断。
(4)混合推理模式风险。快速响应和深度思考模式之间的切换可能导致代码质量不一致;大模型可能在简单问题上过度推理,在复杂问题上推理不足;推理过程中产生的多种解决方案可能导致最终的选择不是最优方案。
氛围编程的特有风险主要体现在3个方面。
(1)氛围编程的“不完全理解代码”的本质所带来的内在风险。由于氛围编程者往往不会评审和深入理解大模型生成的代码,这种做法会放大传统风险,如大模型可能生成存在安全漏洞的代码(如SQL注入、XSS攻击、权限设置不当等),而编程者可能忽视这些潜在威胁;大模型生成的代码可能侵犯版权、违反开源协议,或不符合行业法规要求,为企业带来法律隐患;未经充分理解和测试的代码若直接部署到生产环境,可能导致系统崩溃、数据丢失或性能问题;过度依赖大模型会导致编程者失去独立解决问题的能力,无法进行有效的代码调试、优化和维护。
(2)推理大模型时代还为氛围编程带来了新的风险。推理大模型生成的代码带有详细解释和看似专业的分析,可能让编程者误以为代码质量很高;推理大模型可能生成表面简洁但内在逻辑复杂的代码,增加了后期维护的难度;深度推理可能导致大模型生成过度复杂的解决方案,偏离实际需求;从理解代码逻辑转向理解大模型推理过程,可能导致新的认知盲区。
(3)氛围编程的系统性风险也不容忽视。代码质量难以把控,可能影响产品的稳定性和用户体验,同时积累大量技术债务,导致后期维护成本激增;对代码逻辑和大模型推理过程都缺乏深入理解,会导致编程者在遇到复杂问题时无法进行有效的故障排查和系统优化;不同团队成员使用不同的推理模式可能导致代码风格和质量不一致。
面对氛围编程的诸多风险,我们应该如何有效应对?
为了应对这些风险,需要制定和实施有效的风险控制措施。
针对传统大模型固有限制导致的“幻觉”问题可以采取以下应对措施。氛围编程者可使用“减少AI幻觉”的智能体优化提示词,如加入“为每个主要观点提供3个不同来源的相关出处的网页链接”和“如果你不知道或查不到,就实说,不要编造”等“减幻”辅助提示词;搭建个人RAG(retrieval-augmented generation,检索增强生成,一种将检索和生成相结合的技术方法)知识库,弥补传统大模型知识固化、无法获取实时信息的局限性,通过动态检索让AI系统能够“现学现用”,生成更准确、更符合当前需求的内容;使用LangChain、Chroma等工具将个人代码库、技术文档构建成向量数据库;建立个人代码模板库,维护经过验证的代码片段作为参考;使用多轮对话验证,通过追问方式检验大模型输出的合理性。企业可建立企业级代码知识库,收录验证过的代码模式和最佳实践;实施静态代码分析和动态测试环境;采用分块理解策略和标准化提示词模板库;设置大模型输出置信度阈值,建立交叉验证机制和错误模式学习机制。
针对推理大模型带来的风险可以采取以下应对措施。氛围编程者可以启用思维链提示,要求大模型展示详细推理过程;实施“双推理大模型交叉验证”,使用不同推理大模型生成解决方案并比较差异;建立个人推理检查清单,系统地评估推理的逻辑性和合理性;使用“魔鬼代言人”提示技巧,让大模型扮演批评者角色,质疑和挑战自己的输出,以发现潜在问题,主动发现推理漏洞。企业可以要求大模型提供推理过程的关键步骤和决策依据;建立推理过程评审流程和可视化工具;设置计算资源使用上限和成本预警机制;实施“红队测试”,故意设置陷阱问题或对抗性场景,来检验大模型推理能力的稳健性和可靠性;建立推理过程记录和审计机制。
针对氛围编程的特有风险可以采取以下应对措施。氛围编程者可以采用“氛围编程先行,‘理测评解’跟进”模式(参见9.3.3节),确保能解释生成代码的功能、原理和影响;建立个人代码评审流程,包含功能验证、性能检查、安全扫描;使用渐进式测试策略,先在隔离环境验证再部署;维护“AI生成代码日志”,记录使用情况便于回顾改进;设置“理解度门槛”,根据代码重要性确定不同的理解要求。企业可以实施分级使用策略,非关键系统可适度使用氛围编程,关键系统采用“氛围编程先行,‘理测评解’跟进”模式,核心安全系统禁止氛围编程;建立“理解优先”原则和代码理解度评估机制;确保多层验证机制,包括80%以上的自动化测试覆盖率和专业人士代码评审制度。
企业为了防范安全与合规风险,需要建立代码安全扫描机制、知识产权合规检查、法规符合性审查流程和代码安全责任制。同时提升程序员编程能力,定期进行无AI辅助的编程练习,建立技能退化预警机制。企业还需制定大模型代码生成规范、设立质量监管岗位,并构建实时风险监测系统。
通过这些综合性的风险控制措施,就可以在享受大模型带来的编程效率提升的同时,有效降低氛围编程在新技术环境下的各类风险。
氛围编程的核心价值在于让不同技术背景的人都能通过自然语言在氛围编程工具的帮助下与大模型对话,快速解决实际问题。下面将针对本书的3类目标读者,详细介绍他们在日常工作和学习中最常见的氛围编程应用场景,并展示氛围编程的价值。
非IT背景的人的典型氛围编程应用场景主要包括办公自动化、数据分析与可视化、应用原型快速实现,以及个人事务提效。
氛围编程在办公自动化方面的应用可以有以下两个典型场景。
(1)文档批量处理。行政助理小王每月需要处理数百份员工报销单据。传统方式下,他需要逐一打开文档、提取信息并录入Excel表格,既耗时又容易出错。使用氛围编程时,小王只需对氛围编程工具说:“帮我写一个脚本,批量读取文件夹中所有PDF报销单,提取报销人姓名、金额、日期和类别,然后生成一个Excel的汇总表。”有了大模型生成的代码,小王无须理解技术细节,便能在几分钟内完成原本需要几小时的工作。
(2)数据清理与格式转换。财务专员李姐经常收到各部门提交的不同格式的数据表格,需要统一格式才能进行分析。她在氛围编程工具中输入描述:“我有很多Excel文件,格式都不一样,有些日期是文本格式,有些金额包含货币符号,请帮我写代码统一处理成标准格式。”大模型生成的代码能自动识别并转换各种格式,让李姐摆脱了烦琐的手工整理。
氛围编程在数据分析与可视化方面的应用可以有以下两个典型场景。
(1)销售数据分析。市场部的张总监需要分析季度销售数据,但不熟悉复杂的Excel函数。他告诉氛围编程工具:“分析这个销售数据表,按地区和产品分类计算销售额,找出增长最快的产品线,并生成图表显示趋势。”大模型不仅生成了数据透视表和图表,还提供了分析报告模板,使张总监能轻松完成专业分析。
(2)客户满意度调研。客服主管需要分析大量客户反馈问卷。她对氛围编程工具说:“这里有1000份客户反馈,请帮我分析情感倾向,统计主要问题类别,并生成可视化报告。”大模型生成的代码自动完成文本分析和情感分析,快速生成专业报告。
要确保大模型生成的数据分析与可视化结果的准确性,可以参考3.8节,掌握用氛围编程辅助验证数据准确性的方法。
氛围编程在应用原型快速实现方面的应用可以有以下两个典型场景。
(1)产品原型生成。产品经理老陈遇到了一个典型的产品验证难题:传统原型制作不仅耗时费力,而且最终效果往往难以让用户完全理解产品愿景。他尝试使用氛围编程,只通过一段自然语言描述,就快速生成了一个功能完整的在线教育平台Web应用原型。这样操作不仅缩短了产品验证周期,还能让用户通过可交互的原型直观体验产品功能,有效解决了传统原型制作周期长、用户体验有限的痛点。通过这种方式,老陈显著提升了产品需求验证的效率和准确性。
(2)创业想法快速呈现。创业者小刘使用自然语言描述让氛围编程工具及所搭配大模型的组合,成功实现了一个功能完整的邻里互助平台Web应用。这不仅展示了氛围编程对非技术背景创业者的赋能作用,还彻底解决了传统创业过程中的一大痛点——过去这类创业者往往只能通过静态的概念图和简单的原型来向投资人展示产品愿景,难以真实呈现产品的实际体验和完整功能。通过氛围编程,小刘不仅快速将创意转化为可用产品,还大大提升了与投资人沟通时的说服力和可信度。
氛围编程在个人事务提效方面的应用可以有以下两个典型场景。
(1)个人财务管理。上班族小李想要更好地管理个人财务,但现有软件要么过于复杂,要么不够个性化。他向氛围编程工具描述:“帮我做一个简单的记账工具,能录入收支、按类别统计,显示月度趋势图。”大模型生成了一个简洁的Web应用,小李不仅可以直接使用,还能根据需要随时调整功能。
(2)学习进度跟踪。在职考证的小王需要跟踪学习进度。她对氛围编程工具说:“做一个学习计划管理工具,能设置学习目标、记录每日学习时间、显示完成进度,并提醒复习时间。”大模型生成了个性化的学习管理应用,帮助她更好地规划和执行学习计划。
有IT经验的人的典型氛围编程应用场景包括快速原型开发、开发效率提升以及跨技术栈探索。
氛围编程在快速原型开发方面的应用可以有以下两个典型场景。
(1)新技术验证。资深工程师老赵需要验证新的API集成方案。传统方式需要搭建完整开发环境,编写大量样板代码。使用氛围编程,他告诉氛围编程工具:“帮我快速搭建一个demo,集成微信支付API,实现扫码支付功能,包含前端页面和后端接口。”大模型在几分钟内就生成了完整的可运行原型,让他能快速验证技术方案的可行性。
(2)实现难度估算。产品经理提出新需求后,技术总监需要快速评估实现难度。他向氛围编程工具描述:“做一个智能客服聊天应用原型,能理解用户问题、查询知识库、返回答案,并记录对话历史。”大模型生成的原型让团队能在几小时内看到应用的具体效果,显著加快了需求评估和方案讨论。
氛围编程在开发效率提升方面的应用可以有以下两个典型场景。
(1)自动化测试代码生成。测试工程师小周面临紧急项目,需要编写大量测试用例。她对氛围编程工具说:“根据这个API文档,生成完整的自动化测试套件,包括正常场景、异常场景和边界值测试。”大模型生成了全面的测试代码,既节省时间又确保了测试完整性。
(2)代码重构方案生成。高级工程师面临一个遗留系统的重构任务,代码复杂且缺乏文档。他告诉氛围编程工具:“分析这个老项目的代码结构,帮我生成现代化的微服务架构方案和迁移脚本。”大模型不仅分析了代码结构和依赖关系,还生成了详细的重构方案和自动化工具的代码。
氛围编程在跨技术栈探索方面的应用可以有以下两个典型场景。
(1)新框架学习。全栈工程师需要快速掌握最新前端框架。他对氛围编程工具说:“用Vue 3和TypeScript帮我做一个完整的任务管理应用,包含用户认证、数据持久化和响应式设计。”大模型生成的完整项目成了最佳学习材料,让他能在实践中快速掌握新技术。
(2)技术栈整合。架构师需要评估不同技术栈的整合方案。他向氛围编程工具描述:“设计一个基于微服务的电商系统,前端用React,后端用Node.js和Python,数据库用MongoDB和Redis,包含完整部署方案。”大模型生成的架构方案和示例代码为技术选型提供了有力支撑。
IT新人的氛围编程应用场景包括基础技能学习、项目实战练习及开发工具使用。
氛围编程在基础技能学习方面的应用可以有以下两个典型场景。
(1)编程概念理解。新入行的程序员小新对很多编程概念还不太理解。他对氛围编程工具说:“帮我做一个演示程序,用具体例子展示面向对象编程的继承、封装和多态的概念。”大模型生成了生动的示例代码和交互式演示,让抽象概念变得具体可感。
(2)算法学习实践。计算机专业应届生小颖正在准备技术面试。她向氛围编程工具请求:“实现常见排序算法,包含可视化演示,能看到排序过程,并比较不同算法的性能。”大模型生成的可视化学习工具帮助她深入理解算法原理。
氛围编程在项目实战练习方面的应用可以有以下两个典型场景。
(1)完整项目开发。新人开发者想要积累项目经验。他对氛围编程工具说:“帮我做一个完整的博客系统,包含前后端分离架构、用户管理、文章发布、评论和搜索功能。”大模型生成的项目不仅功能完整,还包含了详细的开发文档和部署指南,成了宝贵的学习资源。
(2)开源项目贡献。想参与开源项目的新人不知从何入手。她告诉氛围编程工具:“分析这个开源项目的代码结构,找出我可以贡献的部分,并帮我准备贡献代码。”大模型帮助她理解项目架构,识别改进点,并生成规范的贡献代码。
氛围编程在开发工具使用方面的应用可以有以下两个典型场景。
(1)开发环境配置。实习生对复杂的开发环境配置感到困惑,他向氛围编程工具求助:“帮我配置完整的Web开发环境,包含编辑器设置、Git配置、数据库安装和项目脚手架搭建。”大模型生成了详细的配置脚本和说明文档,让环境搭建变得简单明了。
(2)部署及运维过程学习。新人需要学习项目部署,她对氛围编程工具说:“教我如何将Web应用部署到云服务器,包含域名配置、HTTPS证书、数据库备份和监控告警。”大模型生成了完整的部署脚本和运维最佳实践指南。
讨论完3类人群常见的氛围编程应用场景后,现在可以总结一下氛围编程对于他们的核心价值。
氛围编程为3类不同人群带来了独特的价值。
对于非IT背景的人,它最大的价值在于降低技术门槛,让他们能够用自然语言解决专业问题。普通办公人员可以通过氛围编程将原本需要几小时的报销单据处理缩短至几分钟,无须掌握复杂技术;业务人员能够进行专业级数据分析和可视化;产品经理和创业者可快速将创意转化为可交互原型;个人用户则能创建定制化的管理工具来提升效率。
对于有IT经验的人,氛围编程的核心价值体现在提升开发效率和加速技术创新方面。它能将传统需要数天的技术方案验证缩短至几小时甚至几分钟;通过自动生成测试代码和重构方案,让开发者从烦琐的工作中解放出来;帮助工程师快速掌握新框架、整合不同技术栈;并为架构决策提供有力支持。
IT新人则能从氛围编程中加速学习和积累实战经验。抽象的编程概念(如面向对象)和算法原理可以通过可视化示例变得更容易理解;新人能够快速获得完整的项目开发经验;轻松掌握各种开发工具和最佳实践;甚至降低参与开源项目的门槛,加速融入开发者社区。
总体而言,氛围编程的核心价值可以概括为“氛围编程谁都行,解决问题变轻松”。它通过自然语言交互的方式,让不同技术背景的人都能利用AI的能力快速解决实际问题,实现了编程的全民化。无论是办公自动化、数据分析、原型开发,还是代码生成、技术探索、学习辅助,氛围编程都能显著提升各类人群的工作效率和创新能力。
探讨完氛围编程的核心价值后,就可以开始思考如何实际运用氛围编程。为了实现“首次对话即成功”,需要合理搭配氛围编程工具与大模型。那么,应当如何进行这种搭配呢?
对于某些需求(如第4章中的Excel数据分析),使用AI聊天应用、AI原生IDE和传统IDE中的AI插件搭配大模型都能实现,那该如何选择呢?在氛围编程过程中要注意哪些事项?你可以根据自己在氛围编程时的具体场景,参考本书提出的下列指导原则及其相关实例,做出合理的决策。
氛围编程简单性指导原则:氛围编程因其“即使不完全理解也会完全接受AI生成的代码”的本质,适用于解决简单需求或生成“一次性”代码的场景,而不适合处理复杂需求的场景。
当项目的代码规模在几百行且用完就可丢弃时,氛围编程最为适用。若项目需求过于复杂,总代码行数达到5000行(参见1.2.1节后半部分)以上,且还想尝试本节后面介绍的“理测评解”跟进指导原则,那么需要首先考虑按照软件架构设计最佳实践拆分出一小块“高内聚低耦合”且代码总行数在几百到2000(随着大模型技术的发展可以合理调整)行之间的组件,然后在其上进行尝试。
氛围编程生成内容不完美指导原则:在氛围编程中,编程者与大模型的每次对话所生成的代码出现运行错误或虽然运行不出错但功能未达到预期是常态,期望氛围编程“每次对话即完美”是不切实际的。
氛围编程因其所依赖的大模型在生成内容时存在幻觉,或在推理时过度自信(参见1.2.9节),生成的代码有时会出现运行错误,或者虽然运行不出错但功能未达到预期的情况。这些情况需要反馈给大模型进行修复。因此,如果氛围编程的每次对话所生成的代码能满足提示词要求的70%~80%,就已经相当不错了。需要降低对氛围编程不切实际的期望(参见3.6节结尾和3.7节结尾)。
氛围编程多工具组合指导原则:如果用氛围编程完成一个需求相对复杂的项目,那么针对需求拆分后的不同子需求,往往需要根据各个子需求的特点选用不同但适用的氛围编程工具与大模型的搭配组合来完成。
例如在做Excel数据可视化时,前期可以选用Trae国际版搭配Claude Sonnet 4大模型来生成视觉效果精美且数据分析维度合理的综合数据看板作为原型;之后可以用Windsurf搭配o3大模型针对这个原型看板中的数据维度重新生成较为准确的数据并填入,形成待验证的看板;最后再用Claude搭配Claude Sonnet 4大模型验证看板中的数据准确性,并最终形成成果看板(参见3.8节结尾)。
氛围编程提示词不完美指导原则:在氛围编程中,编程者可以使用存在少量语病的口语化提示词与大模型沟通,这通常并不妨碍大模型对编程者意图的理解。
例如,在提示词输入框中输入的“提供至少3个不同来源的出处网页链接以便我查验”这句提示词中的“出处”后面少了一个“的”,又如“查不到请直说”中的“请”前面少了一个逗号,这些语病通常不会影响大模型对这句话意图的理解。这意味着氛围编程的门槛很低,并不要求编程者在氛围编程时一定要输入没有语病且标点符号无误的提示词(参见5.1节)。
氛围编程“理测评解”跟进指导原则:当希望在复杂需求场景下运用氛围编程时,可以先从小处入手。例如,从复杂软件系统中拆分出一个“高内聚低耦合”且代码总行数在几百到2000(随着大模型技术的发展可以合理调整)行之间的组件,并在组件内尝试“氛围编程先行,‘理测评解’跟进”(参见9.3.3节)的方式。其中“理测评解”指理解、测试、评审和解释大模型所生成的代码。
当希望在需求复杂且需要长期稳定运行的软件系统中试点氛围编程时,应按照软件架构设计最佳实践将试点组件拆分出来,并务必在使用氛围编程方法生成代码后,理解、测试(参见8.3节前半部分)、评审和解释大模型生成的每一行代码,才能将其提交到代码库。
氛围编程大模型升级指导原则:当你对任务的意义、概念和实现方法理解不够深入,难以在提示词中清晰表达时,你需要选择能力和口碑更强的氛围编程工具与能力和口碑更强的大模型搭配组合,并尽量开启推理模式。
当你对任务的理解不够深入,难以在提示词中清晰表达时,应选择能力和口碑更强的大模型(参见6.3.2节靠近结尾处),如Claude智能聊天应用搭配Claude Sonnet 4大模型(开启“Extended thinking”模式)或Windsurf搭配Claude Sonnet 4大模型。
氛围编程大模型降级指导原则:当你完全理解任务的意义、概念和实现方法,并能在提示词中清晰表达这些要素时,即使在氛围编程工具中搭配能力较弱但口碑良好的大模型,也能获得与搭配顶尖大模型相当的效果。
如果你既是编程专家又是业务专家,那么使用通义AI聊天应用搭配Qwen3大模型有可能生成与Windsurf搭配Claude Sonnet 4同等质量的代码(参见6.3.2节靠近结尾处)。
氛围编程较弱大模型优化提示词指导原则:如果预算有限,只能搭配能力较弱但口碑良好的大模型,你需要更深入地理解任务的意义、概念和实现方法,且要根据较弱大模型的回复观察其局限性,并在提示词中做有针对性的优化,以获得高质量回复。
如果预算有限,只能使用免费的通义AI聊天应用搭配Qwen3大模型,要获得高质量回复,你需要更透彻地理解任务的意义、概念和实现方法,且能识别通义回复内容中的缺陷,并在提示词中做相应优化(参见6.3.2节的避坑指南)后再试。
氛围编程高配组合优化提示词指导原则:当你已选择当下能力和口碑更强的氛围编程工具搭配能力和口碑更强的大模型的高配组合,却仍发现代码生成质量较差,且让大模型多次修复也无法解决时,应优先考虑深化对任务的理解,并在提示词中更清晰地表达这些理解内容后重新尝试。
即使你已选择当下顶级氛围编程工具与顶级大模型组合(如Claude搭配Claude Sonnet 4,开启“Extended thinking”模式),但生成的代码仍出现运行错误且大模型多次修复失败时,应优先检查自己对问题的理解是否充分,提示词中表达的解决方案是否足够清晰明确,然后再次尝试(参见1.1.2节后半部分)。
氛围编程高配组合放松要求指导原则:当遵循氛围编程高配组合优化提示词指导原则尝试后仍然无效,可考虑在提示词中适当放松对大模型的要求,令其自由发挥后重新尝试。
即使已遵循氛围编程高配组合优化提示词指导原则,已在提示词中表达得足够清晰,但效果仍然不好,那么可以尝试在提示词中去除一些对大模型的要求,让大模型能够有自我发挥的余地后再尝试(参见6.2节结尾)。
氛围编程原厂优先指导原则:使用特定大模型时,优先选择该大模型开发商自己提供的成熟且口碑良好的氛围编程工具。
使用特定大模型时,优先选择该大模型开发商提供的成熟且口碑良好的工具——使用DeepSeek-R1大模型时,选择DeepSeek网页端或手机应用;使用Qwen3大模型时,选择通义网页端[9];使用Claude Sonnet 4大模型时,选择Claude网页端、手机应用或桌面应用(参见3.9节开头)。
[9] 值得注意的是,通义开发商阿里于2025年5月29日推出的Lingma IDE在本书撰写时尚未完全成熟,如在提示词输入框中无法通过#或+按钮插入以中文命名的文件。
讨论完氛围编程的基础概念,不妨回到氛围编程最打动人的亮点:“AI编程像聊天一样简单”。对于一个从未学过传统编程语言的人,真的能用自然语言编写应用并将其部署上线,供自己和亲友使用吗?第2章将通过一个实战项目来探讨这个问题。