我见过很多团队把“AI Coding Pattern”简单理解成一套提示词模板,好像只要把“请用Java写一个订单服务,要支持高并发”这句话包装得足够花哨,AI就能交出干净可维护的代码。实际用过一段时间你会发现,AI能写代码这件事本身就充满了误导性——它真正擅长的是在你把目标、约束、验证方式都描述清楚之后,像一个特别听话但缺乏常识的新人那样快速产出初稿。而“Pattern”真正要解决的,从来不是怎么“问”得更好,而是怎么把一个模糊的工程需求,切割成AI能稳定处理的小问题,并且在你和模型之间建立起一套可重复、可验证、可审查的协作协议。
这篇文章面向的是已经在用Copilot、ChatGPT、Cursor或国产大模型辅助写代码,但觉得“时灵时不灵”的开发者。我会把我在多个项目里真正沉淀下来的AI编码范式拆开来讲,包括它们各自适用的场景、为什么有效、容易在哪个环节崩掉,以及落到团队协作时应该怎么工程化。没有太多高深理论,基本都是可以直接抄走的实践经验。
1. 先解决一个常见的认知误区:AI Coding Pattern 不是提示词工程
现在的舆论环境里,一提到“AI Coding Pattern”,大部分文章会直接进入提示词写法教学:你要给AI角色设定,你要用思维链,你要在结尾加一句“如果回答错误你会被扣分”。这些技巧不能说没用,但如果你在真实编码场景里用过一段时间,会发现它们只是一层皮。一个稳定的AI编码工作流,真正由下面几部分组成:
- 任务拆解方式:你如何把一个Feature拆成模型一次能处理的粒度;
- 上下文供给机制:你给模型看了哪些文件、哪些代码、多少信息,以什么顺序给;
- 输出验证方式:代码生成之后,你如何判断它对不对、好不好、有没有脱离原有架构。
- 错误反馈回路:编译失败、单测失败、lint告警之后,你怎么把问题重新喂回给模型,让它“再试一次”,而不是原地打转。
这些要素加起来,才是完整的“Pattern”。提示词只是其中负责“向模型传递任务指令”的那一小块。
我见过一个很典型的现象:A团队用AI做需求实现,正确率很高;B团队也用AI,却总是生成“看起来很完整但跑不起来”的代码。两边用的模型都一样,A团队也没有掌握什么独家提示技术。差别在于,A团队在生成代码之前,习惯先把代码库目录结构、核心接口签名、已有工具函数列表整理出来,统一塞进上下文,让模型在“看得见全景”的情况下动手。B团队则喜欢一句需求直接发给模型,然后对着幻想出来的API去查文档、改错误。所以真问题的核心不是“话术”,而是上下文和验证回路。
这就是为什么要聊Pattern而不是聊Prompt。Prompt是单次对话里的表达策略,Pattern是贯穿整个项目周期的协作结构。我今天要拆解的,就是后面这个更大的东西。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 不同编码任务对应完全不同的工作模式,先学会给任务分类
在讨论具体模式之前,得先建立一个判断框架:AI在你手底下扮演的角色,取决于你交给它的任务的出错成本。
出错成本指的是:如果AI给出一个错误结果,你要花多少时间去发现和纠正。这个成本决定了你应该用什么策略。我一般把日常任务分成四类:
| 任务类型 | 典型例子 | 出错成本 | 工作模式倾向 |
|---|---|---|---|
| 局部补全 | 写一个方法、补一个条件判断、生成SQL | 低,代码审查时容易发现 | 自动补全,短提示,人直接改 |
| 单点实现 | 实现一个接口、一个算法、一个工具类 | 中,可能有隐藏边界问题 | 规格优先,给出签名和约束 |
| 跨文件功能开发 | 增加一个模块、接入第三方服务 | 高,容易破坏架构一致性 | 检索增强+验证循环,多轮迭代 |
| 系统级重构/修复 | 重构模块依赖、解耦、兼容老数据 | 极高,影响面不明确 | 需要明确不变式,计划先行,小步验证 |
很多抱怨“AI生成代码完全不能用”的人,其实是犯了同一个错误:拿应对“单点实现”的上下文量,去执行“系统级重构”。模型没有你项目的历史包袱,它不知道某个工具函数为什么存在、某个字段为什么不能改、某个模块为什么被刻意拆开。于是生成出来的代码单看每一行都合理,合在一起就把架构搞崩了。
我在项目里通常这样分配:
- 如果是局部补全,我不写长提示,直接让IDE根据上下文续写,然后人肉读一遍就够了。这个场景追求的是一个“不打断心流”的速度,不值得为它做复杂的上下文包装。
- 如果是单点实现,我会把函数签名、输入输出样例、边界条件写清楚,甚至可以只给一小段伪代码,让AI“翻译”成正式实现。这个过程提示不需要太长,但接口约束必须无歧义。
- 如果是跨文件功能开发,我默认会给AI布置“前菜”——先让它阅读相关文件并输出理解,再让它基于理解提出实现方案,最后才开始写第一行代码。只要前两步没通过,我绝不会让它进入编码状态。
- 如果是系统级重构,我会主动降低AI的自主性,把它当作一个“重构执行器”:我先手工定义一个不变量(比如“重构后所有对外接口签名不变,错误处理语义不变”),再把重构步骤拆成很多个极小的提交,每个提交单独让AI完成并验证。
这个任务分类本身,就是你第一个需要建立的AI Coding Pattern。它决定你在什么时候介入、给多少上下文、要求什么样的输出。没有这个分类,后面的一切模式都无从谈起。
3. 五个从实际项目里沉淀下来的 AI Coding Pattern
在这些年的AI辅助开发中,真正有生命力、能反复复用、换项目也能生效的模式,我归纳下来是五个。它们之间不是互斥关系,实际工作中经常是串在一起用。
3.1 规格前置模式:让AI先写设计说明,再写代码
这个模式是我使用频率最高、也最推荐给团队的模式。核心逻辑很简单:在模型动手写代码前,强迫它先把代码背后的规格说清楚。
很多开发者的第一反应是:那多慢啊,我直接把需求丢给它,它一次性就能给出完整实现,中间省了沟通成本。但如果你的需求真的可以一句话说清并且没有任何歧义,那这个需求大概率简单到不需要AI;而凡是复杂到值得用AI辅助的功能,必然有一堆没有说出口的隐含前提。规格前置就是把这些隐含前提逼出来。
操作上,我给模型输入的是以下几种内容:
code复制背景:当前项目是XX系统,使用Go 1.22,存储层采用PostgreSQL,所有对外接口接在HTTP网关层。
目标:新增一个用户注册接口,要求:
- 用户名唯一,邮箱格式校验;
- 密码采用bcrypt存储;
- 同一IP注册频率不能超过每分钟5次;
- 失败需要返回可读的业务错误码,而不是裸的500。
约束:不要修改现有User模型字段,不要引入新的第三方库。
请先输出:
1. 你对这个需求的理解,以及和现有代码的冲突点;
2. 涉及的现有文件和函数;
3. 数据流和关键判断顺序。
如果没有歧义,再给出实现。
注意几个细节:
- 我不直接说“请写代码”,而是要求输出理解、冲突点、影响范围。这会让模型调用检索能力去把相关代码看清楚。
- 我把技术和业务条件分开列出来。模型在写代码时,容易只关注业务行为而忽略项目规范,比如传输层要不要脱敏、日志要打什么级别。把这些都作为约束字段给出,能大幅减少返工。
- 我会刻意让它“指出和现有代码的冲突点”,这一条会让模型主动去审视它自己生成的方案,而不是顺着你的需求自圆其说。
规格前置看着多了一轮对话,但实际执行下来反而快。因为它把大部分错误拦截在早期。很多时候,模型输出“冲突点”的时候自己就会发现问题,然后问你要调整方向——这一下就省掉了后面一小时无效编码。
3.2 检索增强模式:别让AI靠“猜”去理解你的代码库
如果你在一个中大型代码仓库里用AI,最痛苦的事莫过于:模型不知道你这个代码库长什么样。比如你一个项目里可能有两个类似的工具类,一个处理内部协议,一个处理对外API,AI很容易就选错。而所谓“检索增强”,就是在缺少智能代理机制的情况下,用人工确认的方式把相关文件喂给模型,或者帮它指明检索路径。
我自己的做法是三层递进:
- 目录树定位:先让模型读取仓库根目录下的README和目录树,建立最基本的地图认知。你不要觉得这是个无用步骤,很多模型如果连仓库有多少个模块都不知道,写出来代码经常放错文件。
- 关键词定位:当需要修改某个具体功能时,我先用ripgrep这类工具把相关符号、相关函数调用点搜出来,然后把这些信息作为上下文塞给模型。这比让模型“自己打开IDE去看”要可靠得多。
- 专家文件预读:每个项目里都会有几个“核心文件”承载了最关键的架构决策,比如数据库访问层接口、权限校验中间件。在涉及新增功能前,我会先把这些核心文件的类型定义或接口签名贴给模型,再让它动手。
用伪代码来概括,一个标准的检索增强模式输入大概长这样:
text复制背景(需要读取的文件):
- server/api/user.go:现有个用户接口的注册/登录/退出实现,参考它的错误处理和参数绑定方式。
- internal/store/user.go:用户存储层,当前只支持Create和GetByID两个方法。
需求:新增一个UpdateProfile方法。
注意:存储层不要引入ORM,保持现有sqlx风格查询。
检索增强模式最大的坑在于:模型会“假装”它已经读过文件。有时候你让它读取某个文件,它没检索到,但为了不冷场,会顺着文件名编造一些接口。所以你在给它上下文时,最好把关键类型、关键函数签名直接粘贴在提示里,而不是只告诉它文件名。比如这段场景里,我会把internal/store/user.go里的type User struct完整定义贴进去。这个动作虽然麻烦,但能够彻底消灭一类“幻觉式API调用”错误。
3.3 验证驱动模式:把测试当作给AI下的“验收单”
这一条可以说是整个AI Coding Pattern里最接近工程本质的一条。核心思想是不要让AI用自然语言告诉你它做完了,而是让测试结果告诉你它做对了没有。
实际经验中,让AI直接“写完代码并自测”的效果远不如“先给测试,再让它实现”。为什么会这样?因为测试是对行为的精确定义,而自然语言描述天然有歧义。你告诉AI“注册接口要能防止重复提交”,它理解的“防重复”可能是加一个数据库唯一索引,可能是用Redis锁,也可能是前端的按钮置灰。可如果你把一段测试代码给它,它就必须老老实实让代码通过这个测试,没有解释空间。
推荐的执行顺序是:
- 先用自然语言描述功能意图;
- 让AI根据这个意图写一个测试(注意,这里大概率需要你审查,AI写的测试不一定充分);
- 确认测试覆盖了关键边界条件后,再让AI去实现代码;
- 如果没有现成测试框架,就用脚本做黑盒检查:编译、跑一个最小用例、输入输出对比。
这里想强调一点:由AI生成的测试,如果没有人审,容易变成“给实现量身定做的测试”,也就是测试逻辑和实现逻辑共享同一个错误假设。比如一个排序函数如果AI把比较器方向写反了,它生成的测试也会按反方向断言,结果测试全绿、功能全错。所以验证驱动模式里最关键的环节是“谁来定义正确性”。我一般建议把AI生成的测试当作初稿,人至少要抽验其中2~3个真正涉及核心业务逻辑的断言。
3.4 自我修复循环模式:把执行器的报错原样喂回去
这个模式适用于那些“已经能跑但报错”的场景。很多人面对模型生成代码报错时,习惯自己先看错误日志,分析根因,然后改成新的提示词让AI重写。其实多数情况下,直接让AI自己读错误、自己修复,效果会更好。原因有两个:一是错误本身就是最高密度的上下文,比你在提示词里描述十句“这边好像有问题”都更精确;二是AI的修复循环在上下文连续时能力非常强,一旦你人工介入并精简错误信息,反而可能丢失关键细节。
我在本地跑AI辅助开发时的典型循环是:
bash复制# 第一次让AI生成函数实现
# 运行单测,失败
# 把失败输出原样复制,粘贴给AI:
# "上面这段实现跑测试时出现如下报错,请分析原因并修正:
# === RUN TestUserRegister
# main_test.go:30: expected error 'USER_EXISTS', got nil
# 请直接输出修正后的完整函数。"
这种模式尤其适合三类问题:类型不匹配、并发数据竞争、边界条件遗漏。AI在看到具体报错后,往往会自己找到根因。但有一个很烦人的坑——AI会陷入无限自修复循环。如果同一段代码已经修了三次,报错还是类似问题,你得手动终止循环,把问题隔离出来。这说明要么它一直没找到根因,要么它陷入了局部正确的惯性思维。此时,人工介入比继续循环更高效:去看看是不是某个底层数据结构定义不对,是不是某个模式本身就选错了,不要把时间浪费在让AI反复微调上。
为了配合这个模式,我通常会在项目里准备好几条固定的验证命令,作为循环反馈的标准输入。比如:
- 编译检查:
make build; - 单测:
go test ./...; - 类型检查:
npx tsc --noEmit; - 静态检查:
golangci-lint run。
这些命令输出越干净,AI接收到反馈就越好定位问题。
3.5 最少变更模式:保证AI的改动不扩散到意料之外的区域
这个模式专门用来防止AI“自作主张”。AI在收到改动要求后,容易把一个简单的需求扩写成“全模块重构”。比如你让它“给某函数增加一个可选参数”,它可能顺手帮你把整个文件格式化一遍,或者把相邻几个函数也改成“更优雅”的写写法。这在小规模单一文件场景看起来还好,一旦发生在核心模块,就会让代码review极其痛苦。
最少变更模式要求你在提示词里明确声明修改边界:
text复制只修改文件 internal/service/order.go 中 CreateOrder 函数。
不要调整其他函数,不要导入新库,不要重新格式化整个文件。
输出时用diff格式展示改动,不要输出整个文件。
如果你用的编辑器支持,可以直接启用只读/检查模式,让AI输出diff而不是直接写文件。我自己的经验是,AI生成diff比直接生成整个文件更可控。因为diff迫使它只能表现出增量修改,而整个文件输出很容易把旧的注释、原有实现细节悄悄改掉,review时极难察觉。
更进一步,我会把一些“不可触碰区”写进项目的AI辅助规范里,例如:
- 不要改
pb.go这类生成文件; - 不要动数据库迁移历史文件;
- 不要在业务代码中夹带日志格式调整;
- 对敏感操作的默认行为必须保持拒绝,除非需求明确指出。
这样每一次生成都被约束在明确的轨道上,错误的影响范围就收缩到了可审查的粒度。
4. 从需求到落地:一条我实际在用的完整AI编码流程参考
单纯知道模式还不够,你还需要一个能把它们串起来的执行流程。这里分享一套我在日常开发里打磨出来的步骤,它不需要特殊工具,纯靠提示词顺序和人肉检查就能跑起来,但每一步我都有意识地对应上面某个Pattern。
4.1 第零步:需求入库,先别急着写代码
我不会让AI直接接到一句“给我做一个xx模块”就开始工作。第一步永远是先写一段结构化的需求描述,通常这么组织:
- 一句话目标(这个功能最终要让用户能做什么);
- 非目标(这个版本明确不做什么);
- 技术栈和约束(语言版本、依赖限制、禁止事项);
- 相关入口/调用方(在哪里被触发);
- 验收手段(测试还是人工页面验证)。
这段描述我会单独存成一份文档,复制给AI后,它会变成一个最基础的项目“契约”。
4.2 第一步:上下文准备
针对需求,我先从代码库里挑出三类必备上下文:
- 依赖的结构定义:数据库模型、Proto定义、API请求响应结构,这些是代码之间的“语法契约”。
- 已有的同类型实现:让AI参考现有类似功能在项目里的写法。比如做用户注册,就给它看退出登录是怎么做的错误处理。
- 当前的模块组织方式:新代码应当放在哪个目录、需要导入哪些内部包。
准备过程中,我的原则是宁缺毋滥。上下文不是越多越好:给一头是“防止它猜”,给多了是“干扰它聚焦”。而且上下文窗口再大,模型对一开始输入的文件注意力也会在长对话里逐渐稀释。更好的办法是给最直接相关的2~3个文件,加上一段说明性文字交代背景,而不是把十几个文件倒进去。
4.3 第二步:执行规格前置,生成“代码计划”
把需求文档和相关上下文放在一起,让AI进入“只计划、不编码”的状态:
text复制你是本项目的资深开发。请用中文回答。
基于我提供的需求和上下文,先不要写代码。
输出内容包含:
1. 实现这个需求要修改哪些文件;
2. 每个文件的改动点;
3. 你计划使用的关键函数和流程顺序;
4. 这个方案里最大的风险点是什么。
这一步的review者是人。我会检查方案里是否引入了“项目内部不存在但AI幻想的包”、是否改了不该改的文件、是否漏掉了某个关键错误分支。方案通过后,才允许进入下一步。
4.4 第三步:让AI实现,并立刻用命令做验证
方案通过后,我再把方案交回给AI并要求按方案实现。紧接着,我会立刻执行一系列验证命令。这里有一个关键细节:尽量把验证命令标准化、脚本化,确保每次执行都输出同样的格式。例如在Go项目里,我会用Makefile封装常用的lint和test,让AI在“自修复循环”中能快速获取规范化的错误反馈。
验证通过后,我仍然不直接信任结果,而是做一次“差异审查”——只看这次改动相对于上一版的diff,不看全部代码。diff里的每一行我都会扫过,重点看有没有越界修改、有没有改变原有日志文本、有没有悄悄删除注释。
4.5 第四步:提交前强制降级,做一次“冷静期”
很多AI生成代码的问题,在单测通过时并不明显。比如事务没有显式提交、错误日志没有关联请求ID、边界条件判断顺序在并发下不安全。因此我在提交前会让AI做一次“自我评审”,向它提问:
text复制请以代码审查者视角,检查你刚才生成的这段代码:
- 是否存在数据竞争风险?
- 是否有错误处理不一致?
- 是否有容易被误用的公共API?
- 是否有性能问题?
输出风险清单,并按严重程度排序。
之后我会采纳其中合理部分,让AI修改。这套流程看着多,但实际上单个功能的额外耗时可以控制在十几分钟以内,而你省掉的是提交之后被测试打回、被CodeReview打回的时间。从团队整体视角看,收益其实大得多。
5. 团队协作场景:把个人Pattern变成仓库里的“隐形规范”
如果你只是自己一个人用AI辅助写代码,前面的技巧已经够用了。但一旦你的团队有多名开发都在用AI,往往会出现一种新的混乱:同一种需求,A成员的AI生成方案和B成员的AI生成方案风格天差地别;一个人要求AI不要改格式,另一个人却在让AI整体重构代码格式,两个人改同一个文件时冲突不断。
这时候,你需要把个人Pattern升级为团队约定,我在几个团队里尝试过一套落地方法,效果还不错,核心是下面几个举措。
5.1 在仓库根目录维护AI协作说明文件
我会在仓库根目录维护一份团队共享的AI协作说明,里面写清楚模型在生成代码前必须知道的项目事实:
- 项目的语言版本和框架版本;
- 构建、测试、静态检查命令分别是什么;
- 模块结构说明,新代码应该放哪个目录;
- 明确禁止触发的目录和文件;
- 团队偏好的代码风格和命名约定;
- 不允许擅自引入第三方依赖等红线。
这份文件的价值,类似人类的“新人 Wiki”。每个成员在开始用AI辅助修改前,把该文件作为项目级上下文注入,等于让AI在动手前先接受一遍团队规则的洗礼。即使你用的模型不支持自动读取仓库文件,你也可以在开始编码前手动把这份文件内容复制进对话里。一次投入,后面的会话都能收益。
5.2 建立AI可用的“代码骨架库”
模型生成代码就像人写文章,给一个高质量范例,比用一百句形容词描述风格都管用。所以我会在团队里提倡:把项目中几个“写得最规范、最能代表当前架构风格”的文件标记出来,作为指导性参考。比如一个Controller文件、一个Service文件、一个Repository文件。当AI要生成新模块时,明确告诉它“参考internal/service/teacher.go的实现风格”,效果立竿见影。
更进一步,我会整理一份“常用组件能力清单”进项目文档:哪些功能已经有公共库支持了,比如重试机制、分布式锁、幂等方案。AI最大的问题之一就是“重复造轮子”,因为它不知道项目里已有解决方案。这份清单能直接堵住这个漏洞。
5.3 统一“反馈术语”,让AI听得懂团队的黑话
不同开发者和AI对话时会用不同的词表达同一个意思,例如有人会说“用现有封装”,有人会说“不要新引入依赖”,有人会说“复用common库里的东西”。模型对同一语义的启发式理解有波动。
在实际协作中,我在团队里把几个高频反馈短语做成标准词条,让所有人与AI对话时都能直接用。比如:
- “项目惯例”:所有AI生成代码都必须先参考项目里已有的同类型实现;
- “根因诊断”:当需求是修复Bug时,AI必须先输出它对错误根因的判断;
- “可行最小改动”:AI只做能让需求成立的最小修改,其他一律不准动;
- “验收命令”:AI完成后必须运行指定的命令行并附上结果,而不是口头说“应该没问题”。
这套词条的建立,让团队里每个成员与AI的对话从“自由发挥”走向“稳定交互”。最直接的好处是:你想review别人的AI会话时,能快速理解他到底让模型做了什么,而不是看一长串杂乱的聊天记录。
6. 边界感和避坑原则:在哪些场景下别硬套模式
最后这部分我想聊聊反过来的问题。我在实践里踩过不少坑,也见过很多AI Coding Pattern推广后团队效率反而下降的案例,总结下来有几类边界情况非常值得注意。
6.1 探索性任务不适合强模式约束
当你的任务本身还不明确,比如你在做技术预研、在尝试一个新框架的接入方式、在对比不同实现方案,这时候你对AI使用越强的Pattern反而越拖后腿。因为规格前置、最少变更这些模式都要求你先把边界描述清楚,可探索性任务恰恰边界是模糊的。此时更好的做法是让AI充当“白板伙伴”,直接给它一些零散想法,让它给你列出方案、优缺点、坑点,你再在它的输出中摸索方向。等方向收敛了,再切换到正式的规格前置模式去实施。我把这个过程理解为:先让AI发散,再让AI收敛,两个阶段使用的控制力度应该是不同的。
6.2 无法快速验证的任务要人为加一道“怀疑层”
AI Coding Pattern里最危险的一点,是当验证成本高到无法形成即时反馈时,循环就退化了。举个例子,如果AI帮你改了一段导数据脚本,而这个脚本跑一次需要40分钟,那“改完就跑测试”就不现实。这种场景下,即使前面所有Pattern都执行了,你还是得靠人肉逻辑审查来兜底,而且要主动提高审查标准。因为模型给出的答案在没有验证反馈时,你永远不知道它生成的是不是幻觉代码。
我的习惯是,对于这类“高验证成本任务”,增强两个检查点:一个是在实现前,让AI把所有代码路径画成一段伪代码或调用序列,人先确认逻辑通顺;另一个是在实现后,先用小样本数据做局部试跑,不要一上来就用全量数据。宁可多花几步,也不要盲目信任“它看起来对”。
6.3 别为了“让AI负责”而弱化人的判断力
一个反讽的现象是,AI辅助开发做得越顺手,开发者越容易产生“反正AI会写,我不用太懂”的心态。尤其在使用验证驱动模式时,如果测试也是AI写的,代码也是AI写的,你只负责转发错误信息,那你就变成了一个“给AI递工具的人”。这种状态下,代码中隐含的领域逻辑错误、团队业务规则违背,AI和人都识别不出来,结果只是让错误更隐蔽。
我的底线原则是:凡是需求文档里能明确写出的逻辑,人都要负责理解一遍;凡是代码生成后的output,人都要至少看一遍关键路径。 AI Coding Pattern永远服务于一个更重要的前提:你自己要成为能兜住错误的人。
6.4 警惕模式固化成迷信,不同模型需要不同柔韧性
最后想说一个很实际的问题:不是所有模型在同样的模式设定下表现都一样。我在用一些模型时,严格约束让它先输出计划再写代码会表现很好;换一个模型,它可能在“先输出计划”阶段把计划做得很长,但写代码时反而因为上下文太长而丢失要点。你需要根据实际模型风格调整模式的侧重:有的模型适合直接短提示快速出码,再由人做大量审改;有的模型适合长上下文多轮迭代。
从个人实践经验来看,真正有效的AI Coding Pattern,从来不是把所有技巧全部压上,而是形成一套“最小可用循环”:任务有明确目标,上下文带全关键约束,输出有验证手段,出错能正确回传。 能做到这四点,哪怕提示词写得很朴素,产出也已经超过了绝大多数靠堆砌华丽Prompt的用法。反过来说,如果你把这四条丢掉了,再完美的Pattern也只是一层经不起推敲的外壳。
我自己的体会是,AI辅助开发里最值钱的能力,是你愿意把“人应该如何组织一个工程任务”这件事想清楚,并且不断把想清楚的结构教给AI。Pattern不是一本写满咒语的秘籍,它是你自身工程经验的投射。每当你遇到一个AI翻车现场,别急着怪模型笨,先回头想想:是不是你给它搭的这条流水线上,某个阀门口径不对了。
