<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发者 on Yison's Blog</title><link>https://blog.7ys.top/tags/%E5%BC%80%E5%8F%91%E8%80%85/</link><description>Recent content in 开发者 on Yison's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Thu, 07 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.7ys.top/tags/%E5%BC%80%E5%8F%91%E8%80%85/index.xml" rel="self" type="application/rss+xml"/><item><title>当 AI 能写 80% 的代码，剩下 20% 是什么？</title><link>https://blog.7ys.top/posts/%E5%BD%93-ai-%E8%83%BD%E5%86%99-80-%E7%9A%84%E4%BB%A3%E7%A0%81%E5%89%A9%E4%B8%8B-20-%E6%98%AF%E4%BB%80%E4%B9%88/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://blog.7ys.top/posts/%E5%BD%93-ai-%E8%83%BD%E5%86%99-80-%E7%9A%84%E4%BB%A3%E7%A0%81%E5%89%A9%E4%B8%8B-20-%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>&lt;img src="https://blog.7ys.top/" alt="Featured image of post 当 AI 能写 80% 的代码，剩下 20% 是什么？" /&gt;&lt;h1 id="当-ai-能写-80-的代码剩下-20-是什么"&gt;当 AI 能写 80% 的代码，剩下 20% 是什么？
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;当 AI 能写 80% 的代码，剩下 20% 决定你值多少钱。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="一一个让人愣住的瞬间"&gt;一、一个让人愣住的瞬间
&lt;/h2&gt;&lt;p&gt;用 AI 写代码的人，大概都有过这样的时刻：&lt;/p&gt;
&lt;p&gt;一个功能模块，搁以前至少得写一天——定义接口、写解析逻辑、处理异常、补单元测试。现在呢？描述一下需求和数据格式，AI 噼里啪啦就生成了。review 一遍，改几个边界 case，提交。&lt;/p&gt;
&lt;p&gt;然后你愣住了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我刚才干了啥？我&amp;quot;编程&amp;quot;了吗？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;仔细回想，做的工作是：描述需求 → 审查代码 → 修修补补。写代码的主力是 AI，开发者更像是一个&amp;quot;代码质检员&amp;quot;。&lt;/p&gt;
&lt;p&gt;这个问题像一根刺一样扎在脑子里：&lt;strong&gt;当 AI 能写 80% 的代码，剩下 20% 是什么？我到底是开发者，还是 Prompt 工程师？&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="二vibe-coding-的狂欢与翻车"&gt;二、Vibe Coding 的狂欢与翻车
&lt;/h2&gt;&lt;p&gt;2025 年初，Andrej Karpathy（前 Tesla AI 总监）提出了一个概念叫 &lt;strong&gt;&amp;ldquo;Vibe Coding&amp;rdquo;&lt;/strong&gt;——不看代码细节，凭感觉让 AI 写，能跑就行。&lt;/p&gt;
&lt;p&gt;这个概念迅速流行。一时间，人人都可以用 AI 写 App，不会编程的人也能&amp;quot;做产品&amp;quot;了。社交媒体上到处是&amp;quot;我用 AI 一天做了个完整应用&amp;quot;的帖子。&lt;/p&gt;
&lt;p&gt;然后翻车开始来了。&lt;/p&gt;
&lt;p&gt;有数据显示，&lt;strong&gt;7% 的 vibe-coded 应用带着裸奔的数据库上线了&lt;/strong&gt;。不是 AI 写得不好，是使用者根本不知道什么叫&amp;quot;安全&amp;quot;。他们能描述功能，但描述不了约束。&lt;/p&gt;
&lt;p&gt;Karpathy 自己后来也修正了路线，提出了一个演进框架：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Vibe Coding → Context Engineering → Agentic Engineering
凭感觉写 → 精心设计上下文 → 让 AI 自主完成任务
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;大多数人还停留在第一阶段。而真正的价值，在第二阶段。&lt;/p&gt;
&lt;h2 id="三三个绕不开的场景"&gt;三、三个绕不开的场景
&lt;/h2&gt;&lt;h3 id="场景一代码风格没给规范怪谁"&gt;场景一：代码风格——没给规范，怪谁？
&lt;/h3&gt;&lt;p&gt;刚开始用 AI 写代码的时候，很多人都会犯同一个错误：直接开干。&lt;/p&gt;
&lt;p&gt;结果呢？生成的代码风格跟团队规范完全对不上——错误处理方式不对、日志格式不对、命名约定不对。第一反应是：这 AI 也不行啊。&lt;/p&gt;
&lt;p&gt;后来学乖了。把团队的 &lt;code&gt;.cursorrules&lt;/code&gt; 配好，把代码规范文档喂进去，再贴几段项目里现有的代码作为示例。&lt;/p&gt;
&lt;p&gt;输出立刻对味了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI 不是不懂你的风格，是你没告诉它。&lt;/strong&gt; 这就像带新员工——你不培训就指望人家按你的规矩来，可能吗？&lt;/p&gt;
&lt;h3 id="场景二性能问题能搞定但费-token"&gt;场景二：性能问题——能搞定，但费 Token
&lt;/h3&gt;&lt;p&gt;代码跑起来了，但性能不达标。把日志、profiling 输出、相关代码一股脑丢给 AI。&lt;/p&gt;
&lt;p&gt;AI 确实能给出分析方向，但过程往往是这样的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;给了一段日志 → AI 说可能是锁竞争&lt;/li&gt;
&lt;li&gt;补充了锁相关的代码 → AI 改口说可能是 GC 压力&lt;/li&gt;
&lt;li&gt;又给了 GC 日志 → AI 说可能是内存分配模式有问题&lt;/li&gt;
&lt;li&gt;来回好几轮……最后自己看了火焰图，一把定位到根源&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Token 烧了一堆，结论是：&lt;strong&gt;AI 有定位能力，但效率取决于上下文的完整度。给少了它猜，给多了它准。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;问题是，&amp;ldquo;给多少算够&amp;quot;这件事，本身就是个技术活。&lt;/p&gt;
&lt;h3 id="场景三业务理解代码里藏着的隐形逻辑"&gt;场景三：业务理解——代码里藏着的隐形逻辑
&lt;/h3&gt;&lt;p&gt;让 AI 写一段数据校验逻辑，它写得又快又漂亮。但一跑，业务方说不对。&lt;/p&gt;
&lt;p&gt;为什么？因为那段校验逻辑里藏着业务规则：某个字段在特定条件下才能为空、某个状态流转只能单向、某个阈值会随季节调整……这些规则不在技术文档里，在业务方的脑子里。&lt;/p&gt;
&lt;p&gt;AI 不知道这些潜规则，它只能按照你给的需求字面意思写。&lt;strong&gt;代码逻辑里暗藏业务逻辑，业务理解不到位，写出来的代码就是不能用。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你得一条一条纠正。但有趣的是，纠正一次之后，它就能跟着对了——前提是上下文窗口还装得下。&lt;/p&gt;
&lt;h2 id="四一个新概念上下文工程"&gt;四、一个新概念：上下文工程
&lt;/h2&gt;&lt;p&gt;这三个场景有个共同点：&lt;strong&gt;AI 的输出质量，取决于你给它的输入质量。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这不是什么新道理——计算机科学早就有句话叫 &amp;ldquo;Garbage In, Garbage Out&amp;rdquo;。但在 AI 编程时代，这句话有了新的含义。&lt;/p&gt;
&lt;p&gt;Martin Fowler 的团队在 2026 年初写了一篇文章叫 &lt;strong&gt;&amp;ldquo;Context Engineering for Coding Agents&amp;rdquo;&lt;/strong&gt;，给出了一个精辟的定义：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;em&gt;&amp;ldquo;Context engineering is curating what the model sees so that you get a better result.&amp;rdquo;&lt;/em&gt;
（上下文工程就是精心策划模型看到的东西，以获得更好的结果）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;他们把上下文分成了两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instructions&lt;/strong&gt;：告诉 AI 做什么——&amp;ldquo;写一个 E2E 测试&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt;：告诉 AI 遵循什么——&amp;ldquo;测试要相互独立，不要共享状态&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我之前代码风格不对，本质是缺了 Guidance。Bug 定位低效，是 Instructions 里的信息密度不够。业务理解差，是上下文窗口的物理限制。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;场景&lt;/th&gt;
 &lt;th&gt;问题根源&lt;/th&gt;
 &lt;th&gt;解法&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;代码风格不对&lt;/td&gt;
 &lt;td&gt;没给规范约束&lt;/td&gt;
 &lt;td&gt;喂 &lt;code&gt;.cursorrules&lt;/code&gt; + 代码示例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Bug 定位低效&lt;/td&gt;
 &lt;td&gt;上下文不完整&lt;/td&gt;
 &lt;td&gt;一次性给足日志 + 代码 + 复现步骤&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;业务理解差&lt;/td&gt;
 &lt;td&gt;窗口装不下&lt;/td&gt;
 &lt;td&gt;分层喂知识，先给架构再给细节&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心观点：AI 的能力边界，本质上是你构建上下文的能力边界。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="五放大器效应为什么资深开发者用-ai-更香"&gt;五、放大器效应：为什么资深开发者用 AI 更香
&lt;/h2&gt;&lt;p&gt;这里有一个很容易被忽视的点：&lt;strong&gt;AI 对不同水平的开发者，放大倍率是不一样的。&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;新手 + AI = 1 × 2 = 2
资深 + AI = 10 × 2 = 20
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;新手不知道该问什么、该检查什么、该约束什么。他们给 AI 的上下文是模糊的、不完整的，所以 AI 的输出也是平庸的。&lt;/p&gt;
&lt;p&gt;资深开发者知道：这个模块的边界条件是什么、这个并发场景的坑在哪里、这个客户的合规要求有哪些。他们给 AI 的上下文是精准的、结构化的，所以 AI 的输出也是高质量的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI 是放大器，不是替代品。它放大你已有的能力，但没法凭空给你能力。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这也解释了一个现象：很多人用 AI 写代码，觉得&amp;quot;也没多厉害啊&amp;rdquo;。不是 AI 不厉害，是你给它的上下文不厉害。&lt;/p&gt;
&lt;h2 id="六一个前瞻ai-友好的代码库"&gt;六、一个前瞻：AI 友好的代码库
&lt;/h2&gt;&lt;p&gt;Martin Fowler 的文章里还提到了一个概念：&lt;strong&gt;AI-friendly codebase design&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;意思是：你的代码本身就是给 AI 的&amp;quot;文档&amp;quot;。命名清晰、模块化、有好的注释——这些本来就是好实践，现在多了一个理由：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;让 AI 更好地理解你的代码。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;想想看，当你把一段代码丢给 AI，如果这段代码命名模糊、逻辑混乱、没有注释，AI 能做的就是&amp;quot;猜&amp;quot;。但如果你的代码自解释、模块边界清晰、有完善的类型定义，AI 就能精准地理解你的意图。&lt;/p&gt;
&lt;p&gt;这是一个正向循环：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;好代码 → AI 理解更准 → AI 生成更高质量的代码 → 代码库更好
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;反过来也成立：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;烂代码 → AI 理解偏差 → AI 生成更烂的代码 → 代码库更烂
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;AI 会加速你的代码库演进方向——无论是向上还是向下。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="七所以我们到底是什么"&gt;七、所以，我们到底是什么？
&lt;/h2&gt;&lt;p&gt;回到开头的问题：我到底是开发者，还是 Prompt 工程师？&lt;/p&gt;
&lt;p&gt;我觉得这个问法本身就错了。正确的问法是：&lt;strong&gt;你是在写 Prompt，还是在做上下文工程？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prompt 工程师&lt;/strong&gt;：琢磨怎么写提示词让 AI 听话&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上下文工程师&lt;/strong&gt;：设计 AI 的认知环境，让它能精准输出&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;区别在于，Prompt 是一次性的，上下文是系统性的。&lt;/p&gt;
&lt;p&gt;一个好的上下文工程师，需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;架构能力&lt;/strong&gt;：知道系统该怎么拆，模块边界在哪&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;业务理解&lt;/strong&gt;：知道需求背后的真正意图&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码审美&lt;/strong&gt;：能看出 AI 生成的代码哪里不对劲&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;调试直觉&lt;/strong&gt;：AI 搞不定的 bug，你能搞定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些恰恰是资深开发者的核心资产。AI 没有让这些资产贬值，反而让它们更值钱了。&lt;/p&gt;
&lt;p&gt;Andrej Karpathy 的演进路线还在继续：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Vibe Coding → Context Engineering → Agentic Engineering
凭感觉写 → 精心设计上下文 → 让 AI 自主完成任务
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;我们现在处在第二阶段。而能做好 Context Engineering 的人，才有资格进入第三阶段。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;写在最后：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Prompt 工程师&amp;quot;不是贬义词，但只会写 Prompt 的开发者是。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;真正的技能不是写 Prompt，而是构建一个让 AI 能精准输出的&amp;quot;认知环境&amp;rdquo;。这需要架构能力、业务理解、代码审美——这些都是时间和经验换来的，AI 给不了你。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;所以下次有人问你是干嘛的，别说&amp;quot;我写 Prompt 的&amp;quot;。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;说&amp;quot;我是上下文工程师&amp;quot;。&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;参考：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://martinfowler.com/articles/exploring-gen-ai/context-engineering-coding-agents.html" target="_blank" rel="noopener"
 &gt;Context Engineering for Coding Agents - Martin Fowler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.youtube.com/watch?v=96jN2OCOfLs" target="_blank" rel="noopener"
 &gt;Andrej Karpathy: From Vibe Coding to Agentic Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://news.ycombinator.com/item?id=47196746" target="_blank" rel="noopener"
 &gt;Garbage In, Garbage Out: The Degradation of Human Requirements in the LLM Era&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>