<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>开发流程 on Saiga</title>
    <link>http://localhost:1313/tags/%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B/</link>
    <description>Recent content in 开发流程 on Saiga</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <managingEditor>wuwenzen@outlook.com (wuwj)</managingEditor>
    <webMaster>wuwenzen@outlook.com (wuwj)</webMaster>
    <lastBuildDate>Mon, 18 Mar 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://localhost:1313/tags/%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>AI Code Review 实战：规则、提示词与边界</title>
      <link>http://localhost:1313/posts/2024-03-18-smart-code-review/</link>
      <pubDate>Mon, 18 Mar 2024 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2024-03-18-smart-code-review/</guid>
      <description>&lt;p&gt;今年做了一次尝试：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;不改变现有流程的前提下，让大模型参与到 Code Review 里，当一个「辅助 reviewer」。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;它不会替代人类审核，只做三件事：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;帮忙找明显 bug / 边界问题&lt;/li&gt;&#xA;&lt;li&gt;帮忙发现重复逻辑、代码味道&lt;/li&gt;&#xA;&lt;li&gt;帮忙写结构化的改进建议&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-我们希望-ai-扮演什么角色&#34;&gt;1. 我们希望 AI 扮演什么角色？&lt;/h2&gt;&#xA;&lt;p&gt;一开始就想清楚边界：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;不负责通过/拒绝 PR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;不修改状态，只给评论和建议&lt;/li&gt;&#xA;&lt;li&gt;最终决策仍然是人类 reviewer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注「模式」而不是细枝末节&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;比如错误处理缺失、越界风险、循环里请求等&lt;/li&gt;&#xA;&lt;li&gt;而不是变量名叫 &lt;code&gt;a&lt;/code&gt; 还是 &lt;code&gt;data&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;输出要尽量具体&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;指出文件、位置、问题和建议&lt;/li&gt;&#xA;&lt;li&gt;避免空话：「可以优化」「可以重构」这种直接过滤掉&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-整体方案在-ci-里多插一段ai-review&#34;&gt;2. 整体方案：在 CI 里多插一段「AI Review」&lt;/h2&gt;&#xA;&lt;p&gt;流程：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;CI 获取本次 PR 的变更文件 + diff&lt;/li&gt;&#xA;&lt;li&gt;对每个文件构造一个「上下文 + diff」的 payload&lt;/li&gt;&#xA;&lt;li&gt;调用大模型，让它产出结构化的 review 结果&lt;/li&gt;&#xA;&lt;li&gt;再由机器人账号把评论贴回 PR（或者汇总成一条）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;为控制成本和复杂度：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;优先只分析变更行附近的代码&lt;/li&gt;&#xA;&lt;li&gt;超长文件只截取相关片段&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;3-prompt-设计告诉-ai只看这四件事&#34;&gt;3. Prompt 设计：告诉 AI「只看这四件事」&lt;/h2&gt;&#xA;&lt;p&gt;一个简化的系统提示大致是：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;你是一名资深前端/全栈工程师，正在做 Code Review。&lt;br&gt;&#xA;请只关注以下问题：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;明显的 bug 或潜在边界问题&lt;/li&gt;&#xA;&lt;li&gt;异常处理和错误提示是否合理&lt;/li&gt;&#xA;&lt;li&gt;性能隐患（多余循环、重复请求等）&lt;/li&gt;&#xA;&lt;li&gt;安全/权限风险&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;不要评论代码风格、缩进、单双引号之类的问题，这些交给 Lint 工具。&lt;/p&gt;</description>
    </item>
    <item>
      <title>给自己搭一个「AI 助理」开发流程</title>
      <link>http://localhost:1313/posts/2023-07-22-ai-assistant-for-dev/</link>
      <pubDate>Sat, 22 Jul 2023 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2023-07-22-ai-assistant-for-dev/</guid>
      <description>&lt;p&gt;2023 年对我来说有一个明显变化：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;编辑器不再是一个「孤立工具」，而是被各种 AI 助手包围。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;从简单的代码补全，到用大模型参与需求理解、方案推演、重构、写单测……&lt;br&gt;&#xA;这篇文章就讲讲我是怎么给自己搭一套「AI 助理」开发流程的。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-先想清楚希望-ai-在开发中帮我做什么&#34;&gt;1. 先想清楚：希望 AI 在开发中帮我做什么？&lt;/h2&gt;&#xA;&lt;p&gt;我给自己列了一个清单：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;样板代码生成&lt;/strong&gt;：页面骨架、接口封装、组件模板；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;复杂逻辑解释/重构&lt;/strong&gt;：老代码梳理、新方案对比；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;单测生成&lt;/strong&gt;：尤其是工具函数、纯逻辑模块；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;文档和注释&lt;/strong&gt;：根据代码生成合适的注释、接口说明；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;代码 Review 辅助&lt;/strong&gt;：帮我发现一些潜在问题或改进点。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;工具上则主要依赖：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;编辑器内的代码补全（Copilot 类）；&lt;/li&gt;&#xA;&lt;li&gt;Chat 类大模型（ChatGPT 等）；&lt;/li&gt;&#xA;&lt;li&gt;自己整理的一些 Prompt 模板。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-prompt-模板把怎么问提前想好&#34;&gt;2. Prompt 模板：把「怎么问」提前想好&lt;/h2&gt;&#xA;&lt;p&gt;很快会发现：随便问一句「帮我优化这段代码」效果参差不齐。&lt;br&gt;&#xA;于是我开始为不同场景整理&lt;strong&gt;固定 Prompt 模板&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;21-重构模板&#34;&gt;2.1 重构模板&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;请作为资深前端工程师，帮我重构下面这段代码：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;目标是提高可读性和可维护性，而不是追求最短写法；&lt;/li&gt;&#xA;&lt;li&gt;如果有明显的边界情况，请指出并补上处理；&lt;/li&gt;&#xA;&lt;li&gt;给出重构后的代码，并用要点列出你做了哪些调整和原因。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;代码如下：&lt;br&gt;&#xA;```ts&lt;br&gt;&#xA;// code here&lt;br&gt;&#xA;```&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;22-单测生成模板&#34;&gt;2.2 单测生成模板&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;帮我为下面这个纯函数生成单元测试用例：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;使用 Jest 语法；&lt;/li&gt;&#xA;&lt;li&gt;覆盖常见正常输入和几种边界情况；&lt;/li&gt;&#xA;&lt;li&gt;简要说明每个测试用例要验证的点。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;代码如下：&lt;br&gt;&#xA;```ts&lt;br&gt;&#xA;// code here&lt;br&gt;&#xA;```&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;我会把这些模板存成 Snippet 或者存在笔记里，方便复用。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;3-编辑器内的-ai使用边界和习惯&#34;&gt;3. 编辑器内的 AI：使用边界和习惯&lt;/h2&gt;&#xA;&lt;p&gt;装上 Copilot 类插件之后，一开始很容易「啥都接」。&lt;br&gt;&#xA;用了一段时间，我给自己定了几个使用习惯：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
