上个月,我们团队内部做了一次效率复盘,有个刚转正的实习生用AI写代码,把一个拖了两周的数据报表需求压到了一天完成。旁边一位写了三年业务代码的开发当场问我:这工具真靠谱吗?我没正面回答,而是让他把自己上个月写的一段接口代码丢进AI工具里,让它现场做一次代码评审——结果AI在20秒内指出了两个空指针隐患、一个事务边界问题,还顺带给出了重构建议。那一刻他沉默了,但我知道他真正的疑虑是:如果AI已经能做到这一步,那我自己的位置在哪里?
这篇文章聊的不是“AI会不会替代程序员”这种车轱辘话,而是更实际的问题:为什么每个开发者都必须学会用AI写代码,以及怎么在真实项目里把AI用得稳、用得好。无论你是刚入行的初级开发者、写了好几年业务代码的熟练工,还是正在带团队的技术Leader,这篇内容应该都能给你一些可落地的参考。
1. 为什么“会用AI写代码”正在变成一项基础技能
1.1 从“补全”到“Agent”:AI参与开发的三个阶段
AI写代码并不是2023年才突然冒出来的东西。从工具形态上看,它大致经历了三个阶段。
第一阶段是行级补全时代,代表是GitHub Copilot的早期版本和各种“智能提示”插件。这个阶段的AI像一个非常懂语法的输入法,能根据光标前的代码猜出你下一步想写什么,但它的视野很短,往往只看得到当前文件甚至当前函数。这个阶段解决的是“写样板代码太累”的问题,对核心逻辑的帮助其实有限。
第二阶段是对话式生成时代,代表是ChatGPT、Claude这类通用大模型在代码任务上的应用。开发者把需求用自然语言描述出来,AI给出一整段甚至整个文件的代码。这个阶段的突破在于AI开始理解“上下文”——它能结合你贴进去的报错信息、需求描述、依赖版本给出相对完整的方案。但它的短板也很明显:没有你本地的工程上下文,经常给出“看起来对、跑起来错”的代码。
第三阶段就是现在我们正处在的Agent时代。Cursor、Codex这类工具不再是简单地回答问题,而是能自己读目录、搜索代码、修改多个文件、运行测试、根据报错信息自我纠错。它们像是一个坐在你旁边的结对编程伙伴,你只需要给它一个目标,它能自己走完大部分路径,然后回来向你汇报。这个阶段的变化是质变,因为AI已经从“写代码的工具”变成了“干活的主体”,而开发者的角色开始向“提需求的人”和“验收的人”转移。
1.2 为什么效率差距会越拉越大
很多开发者对AI编程的态度是“我有空再学”,但现实是,这个差距不是线性拉开的,而是指数级拉开的。
我举个例子。同样是一个从零开始的内部管理后台,需要实现用户登录、权限校验、订单列表和导出功能。不会用AI的开发者,流程是:想需求、查文档、搭框架、写接口、调页面、测bug,一套下来大概三到五个工作日。会用AI的开发者,流程是:把需求拆成五六个子任务,每个子任务用一段精心描述的提示词交给AI工具,自己负责把生成的代码合入工程、跑通测试、修正边界,大概半天到一天就能完成第一版。
这个效率差距还不是最可怕的。最可怕的是学习速度的差距——AI写的代码本身就是教材。我见过一个真实的案例,一个刚毕业的初级前端,用AI写代码三个月后,对状态管理、性能优化、设计模式的理解超过了很多写了两年的同事。原因是她每让AI生成一段代码,就会追问一句“为什么这么写”,AI给出的解释比很多技术博客都详细。这就是AI时代的学习方式:不是先学完再做,而是边做边学,让工具带着你成长。
所以“为什么每个开发者都要学会用AI写代码”这个问题的核心答案不是“不然会被淘汰”——虽然这也对,但更准确的说法是:你正在和一个能让你效率翻十倍的工具比赛,而裁判已经吹哨了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 原理拆解:AI到底是怎么把代码“写”出来的,以及它的盲区在哪
2.1 大模型写代码的本质:高明的“续写”
很多开发者对AI写代码有两种极端误解:一种以为它是在数据库里搜索答案,另一种以为它真的“理解”了业务逻辑。实际上,大模型写代码的本质是一个极其复杂的“概率续写游戏”。
用生活化的类比来说,它像一个读过海量代码的“超级实习生”,你给它一个开头,它根据自己见过的无数代码模式,推断出最可能的下文。这个“最可能”不是随机猜,而是基于几千亿参数对语言结构、编程范式、常见API调用方式的统计规律。所以你让它写一个Python的HTTP请求,它会自然写出requests.get,因为它见过太多这样的代码——它不是“知道”requests库有get方法,而是它见过的语料里,这个组合出现的概率极高。
这就带来一个很重要的推论:**AI在它见过的“高频模式”上表现得非常出色,但在“低频模式”上会露出马脚。**比如,一个冷门的、文档稀少的第三方库,AI很可能编造出根本不存在的API;一个你公司内部封装的老框架,AI更是一问三不知。这不是AI笨,而是它的经验库本身就是偏科的——它读了太多GitHub热门仓库,却没读过你公司的私有代码。
2.2 上下文窗口:决定AI代码质量的隐藏因素
上下文窗口这个概念,是我认为所有开发者理解AI编程时最该先搞清楚的一件事。简单说,上下文窗口就是AI在一次对话中能“同时记住”的最大内容量,单位是token。
我打个比方:AI就像一个记忆力有限的新同事,你在一次会议里告诉他的事情,他只能记住一部分,超过这个量,前面的内容就会“遗忘”。这个遗忘不是指他删除了,而是他的注意力被后面的内容挤占了,回答问题时不再参考前面的信息。
在实际使用中,这个特性影响巨大。比如你在Cursor里打开了一个超过5000行的大文件,想让AI帮你重构一个中间函数。如果你直接把整个文件丢给它,它可能记住了前面的import语句,却忘了你项目里用的测试框架是JUnit 5而不是JUnit 4。这就是为什么很多开发者觉得“AI在大型项目上表现不佳”——很多时候不是AI能力不行,而是你没有帮它“管理记忆”。
应对这个问题的核心技巧是主动给AI缩窄上下文。不要整个文件丢进去,只把需要相关的函数、类定义、接口文档贴出来,再加上一句最关键的需求描述。这就像你给一个新同事布置任务时,把一个500页的需求文档压缩成一页纸的要点清单——他肯定干得更准确。
2.3 幻觉:AI写代码的“专业病”
大模型的幻觉是所有使用者都必须接受的事实。在AI编程领域,幻觉的表现形式非常具体:编造不存在的API、编造不存在的函数参数、用错的版本号、引用不存在的数据结构。
我遇到过一个印象很深的案例。当时我让AI写一个处理Excel报表的Python脚本,它给我生成了一段使用openpyxl的代码,里面调用了一个workbook.save_to_memory()的方法。我一看就知道不对——openpyxl的保存逻辑是workbook.save(),要么保存到文件路径,要么保存到BytesIO对象。它编造了一个看起来很像样、但实际上完全不存在的API。如果你不熟悉这个库,照着写,运行第一行就会报AttributeError。
这个案例说明一个关键问题:**越主流的库、越通用的逻辑,AI的幻觉越少;越冷门的库、越特殊的场景,幻觉概率越高。**我现在的习惯是,AI生成代码涉及我完全不熟悉的冷门库时,我第一件事不是直接跑,而是先让它给出官方文档链接,并说明为什么这么用。如果它给不出文档或解释得含糊其辞,我会默认怀疑这段代码有问题。
3. 工具与工作流:Cursor、Copilot、Codex怎么选,怎么把AI嵌进日常开发
3.1 主流AI编程工具到底有什么区别
现在市面上的AI编程工具五花八门,但真正值得认真评估的不外乎几类:以Cursor为代表的AI原生IDE、以GitHub Copilot为代表的IDE插件、以OpenAI Codex为代表的云端Agent、以Qwen Code、DeepSeek等为代表的国产模型工具链。
我根据自己的实际使用经验,给它们做个定位对比:
| 工具 | 核心模式 | 适合场景 | 主要短板 |
|---|---|---|---|
| Cursor | Agent + 多文件上下文 | 完整功能开发、跨文件重构、跟着AI改bug | 吃token,复杂任务需要频繁确认 |
| GitHub Copilot | 行内补全 + 聊天 | 日常编码时的"下一行预测"、写测试用例 | 大段生成的准确性不如Agent |
| OpenAI Codex | 云端Agent | 自动化脚本、数据管道、不需要本地编译的任务 | 拿不到本地环境信息,调试能力受限 |
| Qwen Code / DeepSeek等 | Web/API/插件 | 中文语境、开源可控、私有化部署 | 生态相对较新,插件体验参差不齐 |
这里面我要多说两句。如果你只能选一个工具入门,我现在的推荐是Cursor,因为它是目前最接近“AI原生IDE”形态的产品——它能把整个项目目录做成上下文,这意味着AI可以看到你的工程结构、依赖文件、已有代码风格,而不是只看到你贴进去的碎片。很多用过Cursor的开发者都有一个共同感受:用了一周之后,再回到别的IDE写代码,总觉得“少了个帮手”。
但Cursor也有个很现实的痛点:贵,而且吃token。我建议的使用策略是“重活交给Cursor,轻活用Copilot”。日常工作里,写样板代码、补测试用例这类轻量任务,Copilot足够的;遇到要跨文件修改、整体重构、调一个棘手的bug时,再打开Cursor,把上下文喂足,一次性把活干完。
3.2 我推荐的AI编程工作流
工具选型只是个开始,真正重要的是工作流。我最近这半年摸索出一套相对稳定的AI编程工作流,分享出来给大家参考。
第一步,**先自己写设计,再让AI写实现。**很多开发者的误区是一上来就把整个需求丢给AI,让它“给我做一个电商系统”——这种模糊指令的结果就是AI给出一个看似完整、实则空洞的骨架。我的做法相反:先把方案拆清楚,比如“前端需要三个状态:加载中、成功、失败;接口返回结构是{code, data, message};错误处理统一走中间件”,然后把这些约束条件写进提示词,再让AI去实现。AI的能力边界变化很快,但“好的输入才有好的输出”这个规律从来没变过。
第二步,**先让AI写测试,再让AI写实现。**这招是我最想推荐给别人的技巧。让AI先生成单元测试,其实是在逼它理解需求边界——它会自然地想到空值怎么办、超时怎么办、并发怎么办。然后你再让它写实现,它会主动去满足这些测试用例。这比直接写实现再补测试的流程要好得多,因为测试先行让AI的思考路径变得更完整,而不只是“按部就班地生成一段看起来会动的代码”。
第三步,**每次合入代码前,让AI做一次“反向代码评审”。**所谓反向评审,就是让AI站在攻击者的角度找你这段代码的毛病,而不是让它说“这段代码写得很好”。我会在提示词里明确说“请忽略代码风格,重点找潜在的逻辑漏洞、并发问题、资源泄漏、边界处理缺失”,往往能发现我忽略掉的问题。这个习惯本来就需要人来做,现在AI帮你先做一轮初筛,效率提升非常明显。
3.3 模型选择:通用大模型和代码专用模型怎么权衡
关于模型选择,最近经常有人问“DeepSeek和GLM写代码推荐哪个”“Qwen Code怎么样”这类问题。我的观点是,不要把模型选择当成信仰问题,而是当成工具参数来调。
通用大模型(如Claude、GPT-4系)的优势在于综合能力强,不只懂代码,还懂需求分析、方案设计、代码评审,它能在你描述了一个模糊的业务场景后,反过来追问你几个关键问题,帮你理清需求。代码专用模型(如Qwen Code、DeepSeek等)的优势则在于更懂代码本身——在代码续写、补全、特定框架的生成上,往往更精准,中文支持也好,而且有些可以私有化部署,对代码保密要求高的公司很友好。
我现在的工作流里,两者其实都在用。日常生成代码块、补全函数、修bug,我用代码能力强的模型;做系统设计、写技术方案、讨论架构选型时,我会切换回通用模型。这个策略大家可以参考,不要拘泥于“非要用某一个模型”——参数化的思路看模型,你的工具栈会更灵活。
4. 提示词就是另一种编程语言:三个能让AI输出质量翻倍的模板
4.1 三层提示词结构
很多人用AI写代码效果不好,第一反应是“AI不行”,但实际多半是提示词写得不行。把提示词当成一种编程语言来对待,这是我从AI编程中收获最大的认知。
一个高质量的编程提示词,应该包含三个层次:**角色与约束、任务与输入、验收标准。**缺了任何一层,AI的输出质量都会明显下降。
角色与约束这层,最容易被忽略。你告诉AI“你是一个有十年Java后端经验、熟悉Spring Cloud微服务体系的工程师”,它就自动切换到那个语料分布的空间,生成代码的风格、质量、最佳实践意识都会明显提升。这不是玄学,而是因为大模型在训练时会针对不同角色形成不同的输出分布——工程师角色下的代码分布,显然比“通用助手”角色下更密集地落在高质量代码区间。
任务与输入这层,要具体到可执行的粒度。我见过太多“帮我写个登录功能”这种提示词——这种粒度对AI来说太模糊了,因为它不知道你的用户表长什么样、密码用什么算法加密、token怎么管理。正确做法是把所有已知条件都喂给它:表结构是什么样的、接口文档里规定的出入参是什么、团队规范要求用什么加密方式。
验收标准这层,是决定输出“能不能用”的关键。你要明确告诉AI“程序应该接受什么输入、返回什么结构、在异常情况下应该抛出什么类型的异常”。这一步等同于你在给代码写需求文档——AI有了明确的验收标准,就不会自由发挥,而是会朝着目标收敛。
4.2 一个可以直接抄的提示词模板
下面这个模板是我经过大量实践总结出来的,大家可以直接复制去用:
code复制你是一个精通[语言/框架]的资深工程师,代码风格偏向[官方推荐/项目现有风格]。
任务:[具体功能描述,越精确越好]
已知条件:
- 依赖环境:[版本号、关键库]
- 数据结构:[表结构、类定义、接口定义]
- 约束:[不允许使用的依赖、必须遵循的规范]
验收标准:
- 输入[某个参数]时,应返回[期望结果]
- 遇到[某种异常情况]时,应抛出[具体异常],而不是[具体错误行为]
- 代码必须包含[单元测试/错误处理/日志输出]中的[哪几项]
请先给出你的实现思路,再输出完整代码。
这个模板里有一个细节很关键:最后一句“请先给出你的实现思路,再输出完整代码”。这个要求能触发模型的“思维链”能力——它在写代码之前会先进行逻辑推理,输出质量和直接甩代码相比有肉眼可见的提升。这点很像编程里的“先写注释再写代码”的好习惯。
4.3 多轮对话策略:把AI当结对编程伙伴
很多开发者把AI当成一次性的“代码生成器”,用完就走。这个用法太浪费了。AI真正强大的能力是在多轮对话中体现的——它能在前几轮对话里积累上下文,越往后越懂你的项目。
我推荐一个“带AI走完开发全流程”的策略:
第一轮,让AI帮你做方案设计。把你遇到的问题描述一遍,让它给出几种可选方案、每种方案的优缺点、你该选哪一种。这一轮的目的是借AI的经验做决策,而不是直接要代码。
第二轮,让AI写核心实现。基于第一轮确定的方案,用4.2节里的模板生成代码。这时候因为有了第一轮的上下文,AI生成的代码会更贴合你选定的方案。
第三轮,让AI做代码审查。把生成的代码贴回去,让它“用挑剔的眼神找问题”,包括边界条件、性能隐患、安全漏洞。
第四轮,让AI帮你写文档和测试。同样是基于已有的对话上下文,它已经知道这段代码是干什么的、有哪些入口、有哪些边界,生成文档和测试的自然程度会高很多。
这个过程相当于你把AI从一个“打字员”升级成了“结对编程伙伴”。我最开始用AI编程的时候,也是习惯性地让“它写代码、我合入”,后来发现多轮对话的用法之后,整个工作流的质量上了一个台阶。
5. 翻车现场复盘:AI写代码最常掉的坑,以及一条完整的排查思路
5.1 翻车一:AI编造了不存在的API
前面提到openpyxl的幻觉案例就是一个典型。这里我更完整地复盘一次排查过程。
当时我在做一个数据迁移脚本,业务需求是把一个老系统的MySQL数据迁移到新的PostgreSQL数据库,中间要做一些字段映射。我把需求描述给AI,它生成了一段看起来非常和谐的Python脚本,用到了psycopg2.extras.execute_batch()批量插入。运行后第一次报错就出现在这行:AttributeError: module 'psycopg2.extras' has no attribute 'execute_batch'。
我的排查过程是这样的:先确认报错信息,把报错原样丢回给AI,问“这个函数在我的psycopg2版本里不存在,应该改成什么”。AI的第一反应是道歉,然后给出另一个建议:psycopg2.extras.execute_values()。我查了下官方文档,确认这个函数存在,但发现它对超大批次的内存占用有问题,于是继续追问:“数据量有几十万行,有没有分批处理的方案”。最终它给出了使用execute_values搭配page_size参数的方案,实测通过。
这个案例的教训是:**AI第一次给的API调用,你默认要打一个问号。**不是让你什么都不信,而是养成一个习惯——AI生成代码里出现的任何陌生的、不常见的API调用,先花30秒查一下官方文档再跑。这个过程在初期很麻烦,但30天之后你就会形成肌肉记忆:哪些是高频可信的,哪些必须查证。
5.2 翻车二:没有错误处理的“裸奔”代码
AI生成代码最常见的问题不是语法错误,而是逻辑上“正确”但完全没有错误处理。
我有一次让AI写一个从消息队列拉取数据并写入数据仓库的任务。AI生成的代码非常漂亮:连接、拉取、转换、写入,一气呵成。但我拿过来仔细一看,发现整段代码没有一个try-except,更不用说重试机制、死信队列、幂等设计了。这意味着只要消息队列稍微抖动一下,整个任务就会崩掉,而且数据会丢。
这个问题背后的原因是:**主流训练语料里的示例代码,天然偏向“演示正确路径”,很少展示完整的生产级错误处理。**AI学到的绝大多数代码片段都是“主流程代码”,而非“生产历练代码”。
我的解决方式是在提示词模板里加入“生产环境要求”这一项,明确要求AI“必须包含异常处理、重试策略、数据校验、日志记录”。你可以在4.2节的模板里加一条:
code复制生产环境要求:
- 代码必须包含完整的异常处理,不允许有未捕获的运行时异常
- 涉及网络调用时必须实现重试机制和超时控制
- 关键操作必须输出结构化日志
- 写入操作必须考虑幂等性
加上这条之后,AI生成的代码会“健壮”不少。不过我也会保留一个习惯:AI生成的代码,合入前我一定会自己过一遍错误分支。这个环节不能省,因为AI永远做不到为你的具体业务场景定制错误处理逻辑。
5.3 翻车三:AI代码和现有工程架构水土不服
这是我在实际项目里遇到的最棘手的一类问题,也是最容易让开发者对AI失去信心的一类。
场景是这样的:我们有个老项目用的是公司内部封装的RPC框架,不是主流的Spring Cloud或Dubbo。我让AI帮忙写一个服务间的接口调用逻辑,它生成了一段标准的HTTP调用代码,用的还是RestTemplate。代码本身没问题,但我们的工程里根本没有引入这个依赖,而且公司的RPC框架也不支持HTTP调用,最后只能全部推翻重来。
这个问题的根因在于:AI没有你的工程上下文。它只能基于“通用知识”做推断,而你的项目里可能有大量特有的约束和规范。
解决办法有三个层面。第一,在提示词里把工程约束尽量写全——“本服务使用XX框架,接口调用统一通过XX core包完成,错误码遵循XX规范”。第二,利用支持项目上下文的工具(如Cursor),让它先扫描工程目录结构、读取pom.xml和配置文件,再让它动手写代码。第三,如果项目约束确实太特殊,可以先让AI生成一个“伪代码版本”,你手动把它翻译成公司框架的写法——AI的参考价值在于逻辑设计,而不一定是最终代码。
我在实践中的体感是,AI在“了解你工程上下文”的前提下,水平能有80分;完全不了解的前提下,可能只有50分。所以别怪AI写得不好,先问问自己有没有把“公司内部的特殊规则”告诉它。
5.4 建立对AI代码的审查习惯
说了这么多翻车案例,最后想强调的是:AI写代码这件事,和人类写代码没有本质区别——都是需要代码审查的。唯一的区别是,人类写的代码你天然会多一分警惕,AI写的代码你反而容易掉以轻心,因为它看起来总是“很专业”。
我现在给自己定了一条规矩:**AI生成的代码,默认不合格,直到证明合格。**具体分三轮审查:第一轮看需求符合度——它是不是真的满足了我描述的验收标准;第二轮看异常路径——入参异常、依赖失败、并发冲突都处理了吗;第三轮看可维护性——变量命名、函数拆分、注释,未来的人(包括我自己)能不能看懂。
这个习惯帮我避免了很多线上事故。有一次AI生成的代码在我的Review下已经通过了前两轮,第三轮我看可维护性时突然意识到:这个函数的逻辑虽然正确,但是完全绕过了我们团队统一使用的缓存组件,直接操作了Redis的底层API。如果未来缓存组件升级,这段代码就会成为事故隐患。这就是AI理解不了“团队约定优于个人技术选择”的地方——这些规则只存在于人的脑子里。
6. 边界与进化:不该交给AI的代码,和AI时代开发者的新护城河
6.1 哪些场景我坚决不交给AI
虽然我在这篇文章里花了大量篇幅讲AI编程有多好用,但作为一个长期写代码的人,我必须诚实地分享另一面:有些场景,我现在依然选择不交给AI。
第一类是核心资损逻辑。涉及资金计算、订单金额、优惠分摊这类代码,我不会直接用AI生成的结果上线,即使经过代码审查,我依然会要求逐行人工确认,并且补充尽可能多的边界测试。原因很简单:这类代码一旦出Bug,代价是真实的金钱损失和用户信任问题,而AI的幻觉问题目前还没有100%可验证的解法——它可能在统计上99.9%的情况下写对,但那0.1%的错误可能落在最致命的地方。
第二类是高安全敏感逻辑。权限校验、越权检查、加密解密、会话管理,这些代码我建议自己动手。AI生成这类代码时,常常用“看起来安全”的写法,但对具体的攻击场景考虑不足。比如说,它可能生成了一个简单的角色校验,却没有考虑垂直越权的场景;它可能用了常见的加密库,但密钥管理方案却是想当然的硬编码。安全领域的攻防知识更新太快,AI的训练数据天然有滞后性。
第三类是完全无法测试验证的代码。AI擅长在有明确验收标准的环境里发挥,比如参数进去了、返回值出来了,可以用单元测试验证。但如果一段代码的验证成本极高——比如需要复杂的线下环境模拟、真实流量回放才能确认正确性——那就不适合让AI代劳,因为你无法高效地判断它给的方案是不是真的对。
6.2 人在环上:AI时代开发者的新能力模型
说完了不交给AI的,回到开发者自身。我最近一直在思考的问题就是:当AI能把80%的“写代码”工作自动化之后,开发者剩下的护城河是什么?
我的答案是一个词:人在环上。AI是环路里最强力的执行器,但设计环路、监控环路、修正环路的角色必须是人。
具体到能力模型上,我认为有三个方向变得前所未有地重要。
第一个是提需求的能力。这是我把提示词工程反复强调的原因。能把一个模糊的业务诉求拆解成AI能执行的精确任务,本身就是一种高级的架构能力。你能不能在描述功能时想到约束条件和验收标准,决定了AI输出的天花板。这项能力以前叫“需求分析”,以后可能叫“AI需求工程”。
第二个是验收代码的能力。以后写代码的人越来越少,审代码的人越来越多。如何判断一段AI生成代码的质量、如何设计覆盖关键路径的测试、如何发现AI的“统计正确但逻辑错误”,这些能力会变得更加稀缺。我强烈建议每个开发者未来一年都要刻意训练代码审查能力,尤其是看别人代码时的“找茬”能力——这是你在AI时代最值钱的技能之一。
第三个是解决AI解决不了的问题的能力。AI写代码擅长“见过的高频问题”,但真实世界里总会遇到“没见过的问题”:线上突发故障、跨团队协作的复杂沟通、新业务的从零设计。这些场景没有现成的训练语料,需要人靠经验、判断力和沟通力去解决。你越是能在这些“非标准化场景”里解决问题,你就越难被自动化替代。
我最后想分享一个我自己的切身体会:学会用AI写代码,并不是让我变成了“不用动脑的代码搬运工”,反而让我有更多时间去思考原来没时间想的问题——为什么这个模块要这么做、能不能拆得更合理、未来半年这个系统会怎么演化。这些思考才是我作为一个开发者真正增值的地方。
现在的我,每天到工位的第一件事已经变成了“打开Cursor,继续和我的AI结对伙伴一起推进需求”。AI写的代码我会仔细看,但我不再恐惧它的存在——因为我们之间的关系从来都不应该是一个替代另一个,而是一个让另一个变得更强的过程。这大概就是我心中AI编程时代最正确的打开方式:拥抱它、掌控它、让它成为你能力的一部分,而不是站在对面等它取代你。
