<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>代码质量 | 面条的草稿箱</title><description>无原创，纯转发</description><link>https://localhost</link><item><title>慢即是快：如何利用 AI 写出更高质量的代码很多人认为，AI 编程的意义在于“快”——以最快的速度堆砌出勉强能运行的代码，然后匆忙合并发布</title><link>https://localhost/posts/132</link><guid isPermaLink="true">https://localhost/posts/132</guid><pubDate>Fri, 29 May 2026 09:04:27 GMT</pubDate><content:encoded>慢即是快：如何利用 AI 写出更高质量的代码&lt;br /&gt;&lt;br /&gt;很多人认为，AI 编程的意义在于“快”——以最快的速度堆砌出勉强能运行的代码，然后匆忙合并发布。但这种“快”往往伴随着低质量和技术债。&lt;br /&gt;&lt;br /&gt;实际上，大语言模型（LLM）非常灵活，我们完全可以反其道而行之：&lt;b&gt;利用 AI，用更慢的速度写出质量更高的代码。&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;以下是这种“慢速 AI 编程”的核心思路：&lt;br /&gt;&lt;br /&gt;•   &lt;b&gt;让 AI 成为挑剔的 Review 助手&lt;/b&gt;：LLM 极其擅长寻找 Bug。你可以通过设置特定的“技能（Skills）”，让多个不同的模型（如 Claude 和 GPT）同时对你的 PR 进行审查并给 Bug 分级，通过交叉验证有效降低误报率。&lt;br /&gt;•   &lt;b&gt;主导修复与取舍&lt;/b&gt;：根据 AI 反馈的 Bug 列表，优先引导 AI 修复高危和中度漏洞。如果发现架构设计有根本性问题，甚至可以果断放弃现有的 PR 重新构思。&lt;br /&gt;•   &lt;b&gt;把“修 Bug”当成探索之旅&lt;/b&gt;：这种工作流虽然不会提升你的“开发速度”，但常常会帮你揪出代码库中早已存在的历史遗留 Bug。在解决这些问题的过程中，你会编写更多单测，深入理解系统的边缘情况。&lt;br /&gt;&lt;br /&gt;这并不是那种吹嘘“10倍效率”的浮躁开发方式，而是一种更健康的编程状态：借力 AI，更严谨、更方法论地对待每一行代码，让代码库保持健康。&lt;br /&gt;&lt;br /&gt;下次使用 AI 时，不妨慢下来，试着问问它：“我的这段代码可能会在哪里崩溃？”&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/&quot; target=&quot;_blank&quot;&gt;https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23AI%E7%BC%96%E7%A8%8B&quot;&gt;#AI编程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F&quot;&gt;#代码质量&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B&quot;&gt;#软件工程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%A8%8B%E5%BA%8F%E5%91%98&quot;&gt;#程序员&lt;/a&gt;&lt;a href=&quot;https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/&quot; target=&quot;_blank&quot;&gt;
  &lt;i&gt;&lt;/i&gt;
  &lt;div&gt;Read the Tea Leaves&lt;/div&gt;
  
  &lt;div&gt;Using AI to write better code more slowly&lt;/div&gt;
  &lt;div&gt;A lot of people seem convinced that the point of AI coding is to write low-quality code as fast as possible. Spew out barely-passable slop, open massive PRs, and merge them unvetted. Ship it! But t…&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>Agent Trace：为 AI 写的代码建立“可追溯”标准Agent Trace 是一个开放规范，用来记录代码中哪些部分来自 AI、哪些来自人类，并把相关的模型信息、对话链接等“出处”一并纳入版本控制工作流中</title><link>https://localhost/posts/106</link><guid isPermaLink="true">https://localhost/posts/106</guid><pubDate>Sat, 31 Jan 2026 03:11:52 GMT</pubDate><content:encoded>&lt;b&gt;Agent Trace：为 AI 写的代码建立“可追溯”标准&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Agent Trace 是一个开放规范，用来记录&lt;b&gt;代码中哪些部分来自 AI、哪些来自人类&lt;/b&gt;，并把相关的模型信息、对话链接等“出处”一并纳入版本控制工作流中。它强调&lt;b&gt;厂商中立&lt;/b&gt;，让不同工具都能读写同一套归因数据。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;核心想解决什么&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;•   随着 Agent/代码助手产出越来越多代码，团队需要更清楚地知道：哪些改动是 AI 生成、用的是什么模型、对应哪次对话/会话。&lt;br /&gt;•   这不是法律意义的“所有权”或“版权”判定，而是工程层面的&lt;b&gt;来源记录&lt;/b&gt;与&lt;b&gt;可审计性&lt;/b&gt;。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;主要目标&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;•   &lt;b&gt;互操作性&lt;/b&gt;：任何兼容工具都能写入/读取归因记录&lt;br /&gt;•   &lt;b&gt;细粒度&lt;/b&gt;：支持到**文件级、行号范围（line range）**的归因&lt;br /&gt;•   &lt;b&gt;可扩展&lt;/b&gt;：允许各家在不破坏兼容的情况下增加自定义元数据&lt;br /&gt;•   &lt;b&gt;人和 Agent 都能读懂&lt;/b&gt;：尽量不依赖特定 UI 才能理解&lt;br /&gt;&lt;br /&gt;&lt;b&gt;不做什么（边界很明确）&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;•   不处理代码法律归属、版权问题&lt;br /&gt;•   不追踪训练数据来源&lt;br /&gt;•   不做质量评估（不判断 AI 代码“好或坏”）&lt;br /&gt;•   不绑定任何界面或产品形态&lt;br /&gt;&lt;br /&gt;&lt;b&gt;规范长什么样（概念速览）&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Agent Trace 的基本单位是 &lt;b&gt;Trace Record&lt;/b&gt;（JSON 记录），典型字段包括：&lt;br /&gt;&lt;br /&gt;•   &lt;code&gt;version / id / timestamp&lt;/code&gt;：规范版本、记录 ID、时间戳&lt;br /&gt;•   &lt;code&gt;vcs&lt;/code&gt;：版本控制信息（如 git commit SHA；也支持 jj/hg/svn）&lt;br /&gt;•   &lt;code&gt;tool&lt;/code&gt;：生成该记录的工具及版本&lt;br /&gt;•   &lt;code&gt;files&lt;/code&gt;：文件列表；每个文件下按 &lt;b&gt;conversation&lt;/b&gt; 分组&lt;br /&gt;•   &lt;code&gt;conversations.url&lt;/code&gt;：指向产生这段代码的对话链接&lt;br /&gt;•   &lt;code&gt;ranges&lt;/code&gt;：该对话贡献的&lt;b&gt;行号范围&lt;/b&gt;（可选 &lt;code&gt;content_hash&lt;/code&gt; 用于跨移动追踪）&lt;br /&gt;•   &lt;code&gt;metadata&lt;/code&gt;：自定义扩展字段（建议用反向域名避免冲突，如 &lt;code&gt;dev.cursor&lt;/code&gt;）&lt;br /&gt;&lt;br /&gt;&lt;b&gt;实现与落地&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;•   规范本身不规定 traces 存哪：可以是本地文件、git notes、数据库等。&lt;br /&gt;•   提供了一个参考实现（含存储层、hook 集成），示范如何在文件变更时自动捕获归因信息。&lt;br /&gt;&lt;br /&gt;链接：&lt;a href=&quot;https://agent-trace.dev/&quot; target=&quot;_blank&quot;&gt;https://agent-trace.dev/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23AI%E7%BC%96%E7%A8%8B&quot;&gt;#AI编程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E4%BB%A3%E7%A0%81%E5%BD%92%E5%9B%A0&quot;&gt;#代码归因&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%B7%A5%E7%A8%8B%E8%A7%84%E8%8C%83&quot;&gt;#工程规范&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8F%AF%E8%BF%BD%E6%BA%AF%E6%80%A7&quot;&gt;#可追溯性&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot;&gt;#开发工具&lt;/a&gt;&lt;a href=&quot;https://agent-trace.dev/&quot; target=&quot;_blank&quot;&gt;
  
  &lt;div&gt;agent-trace.dev&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Agent Trace&quot; src=&quot;https://memo.miantiao.me/static/https://cdn4.telesco.pe/file/Dbn82kUo1Qy_jiyekCFPRk2Vv72IRJiDpL0ojccJ4iWX3Eoa3RuRdjrbWtADB4fJRsxfjTOUT06v3l_tunmFxm_Xwuhu0O44aQpY1Lo55fUc5tNpd7j6sBNi2vRc-uedx5K3XzoLl_A5phGBwPSBKaMmtI5uFQ1jahSqpRIQoh2pZSZuWZL8XG6WNzv8nCseZTyW7rIOtNkFHEg8aZRkIHt681pY_ImVCG568r6oMYS4ykmRUOvUqwUtg-Ehk7mF1IcSoh0utNKjkh8qTgv1cQlFklKa86G02H6EaoyBm-8wwBG_3mEj_rXGQdjA0NdlxqDHSfWUGDBFdKIvwZ39eQ.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div&gt;Agent Trace&lt;/div&gt;
  &lt;div&gt;A standard format for tracking AI-generated code.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>