PageSourceSearch

https://www.wensi.ai/assets/06-best-practices.html-Xi_TKhR0.js

js wensi.ai collected 2026-10-05 13:24:20 UTC 84,602 bytes, 580 lines download raw bytes

1import{_ as p,c,b as t,a,e as s,d as l,w as i,r as d,o as u}from"./app-BNAFTfp7.js";const o={};function r(v,n){const e=d("RouteLink");return u(),c("div",null,[n[11]||(n[11]=t(`<h1 id="_06-codex-最佳实践" tabindex="-1"><a class="header-anchor" href="#_06-codex-最佳实践"><span>06 - Codex 最佳实践</span></a></h1><blockquote><p>从入门到精通:构建高效的 AI 辅助编程工作流</p></blockquote><h2 id="📋-本章目标" tabindex="-1"><a class="header-anchor" href="#📋-本章目标"><span>📋 本章目标</span></a></h2><p>学完本章,你将能够:</p><ul><li>掌握编写高质量提示词的技巧</li><li>建立高效的编程工作流</li><li>确保代码质量和安全</li><li>实现团队协作的最佳实践</li></ul><hr><h2 id="✍️-提示词工程" tabindex="-1"><a class="header-anchor" href="#✍️-提示词工程"><span>✍️ 提示词工程</span></a></h2><h3 id="提示词的四个维度" tabindex="-1"><a class="header-anchor" href="#提示词的四个维度"><span>提示词的四个维度</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">好的提示词 = 清晰 + 具体 + 上下文 + 约束</span>
2<span class="line"></span>
3<span class="line">1. 清晰(Clarity)</span>
4<span class="line">   └─ 明确说明要做什么</span>
5<span class="line"></span>
6<span class="line">2. 具体(Specificity)</span>
7<span class="line">   └─ 提供详细的要求和限制</span>
8<span class="line"></span>
9<span class="line">3. 上下文(Context)</span>
10<span class="line">   └─ 给出必要的背景信息</span>
11<span class="line"></span>
12<span class="line">4. 约束(Constraints)</span>
13<span class="line">   └─ 明确技术栈、风格等限制</span>
14<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="提示词模板" tabindex="-1"><a class="header-anchor" href="#提示词模板"><span>提示词模板</span></a></h3><h4 id="模板-1-功能开发" tabindex="-1"><a class="header-anchor" href="#模板-1-功能开发"><span>模板 1:功能开发</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">【功能描述】</span>
15<span class="line">简洁明确地描述要实现的功能</span>
16<span class="line"></span>
17<span class="line">【技术要求】</span>
18<span class="line">- 编程语言:[Python/JavaScript/...]</span>
19<span class="line">- 框架:[React/Django/...]</span>
20<span class="line">- 版本:[Python 3.10/Node 18/...]</span>
21<span class="line"></span>
22<span class="line">【输入输出】</span>
23<span class="line">输入:</span>
24<span class="line">  - 参数1:类型,说明</span>
25<span class="line">  - 参数2:类型,说明</span>
26<span class="line"></span>
27<span class="line">输出:</span>
28<span class="line">  - 返回值类型和格式</span>
29<span class="line"></span>
30<span class="line">【特殊要求】</span>
31<span class="line">- 错误处理:如何处理异常</span>
32<span class="line">- 性能要求:响应时间/内存限制</span>
33<span class="line">- 安全考虑:输入验证/权限检查</span>
34<span class="line"></span>
35<span class="line">【示例】</span>
36<span class="line">输入示例:xxx</span>
37<span class="line">输出示例:xxx</span>
38<span class="line"></span>
39<span class="line">【代码风格】</span>
40<span class="line">- 遵循 [PEP 8/Airbnb Style/...]</span>
41<span class="line">- 添加类型注解</span>
42<span class="line">- 包含详细注释</span>
43<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>实际示例</strong>:</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">【功能描述】</span>
44<span class="line">创建一个异步函数,从多个API并行获取数据,并聚合ç
44»“æžœ</span>
45<span class="line"></span>
46<span class="line">【技术要求】</span>
47<span class="line">- 编程语言:Python 3.10+</span>
48<span class="line">- 使用 asyncio 和 aiohttp</span>
49<span class="line">- 使用类型注解</span>
50<span class="line"></span>
51<span class="line">【输入输出】</span>
52<span class="line">输入:</span>
53<span class="line">  - urls: List[str] - API URL 列表</span>
54<span class="line">  - timeout: int - 超时时间(秒),默认10</span>
55<span class="line"></span>
56<span class="line">输出:</span>
57<span class="line">  - Dict[str, Any] - 键为URL,值为响应数据或错误信息</span>
58<span class="line"></span>
59<span class="line">【特殊要求】</span>
60<span class="line">- 错误处理:单个API失败不影响其他</span>
61<span class="line">- 超时控制:每个请求独立超时</span>
62<span class="line">- 并发限制:最多同时10个请求</span>
63<span class="line"></span>
64<span class="line">【示例】</span>
65<span class="line">输入:</span>
66<span class="line">  urls = [</span>
67<span class="line">    &quot;https://api1.com/data&quot;,</span>
68<span class="line">    &quot;https://api2.com/data&quot;</span>
69<span class="line">  ]</span>
70<span class="line">  timeout = 5</span>
71<span class="line"></span>
72<span class="line">输出:</span>
73<span class="line">  {</span>
74<span class="line">    &quot;https://api1.com/data&quot;: {&quot;status&quot;: &quot;success&quot;, &quot;data&quot;: {...}},</span>
75<span class="line">    &quot;https://api2.com/data&quot;: {&quot;status&quot;: &quot;error&quot;, &quot;error&quot;: &quot;Timeout&quot;}</span>
76<span class="line">  }</span>
77<span class="line"></span>
78<span class="line">【代码风格】</span>
79<span class="line">- 遵循 PEP 8</span>
80<span class="line">- 添加 docstring</span>
81<span class="line">- 使用 typing 模块的类型注解</span>
82<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="模板-2-代码优化" tabindex="-1"><a class="header-anchor" href="#模板-2-代码优化"><span>模板 2:代码优化</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">【当前代码】</span>
83<span class="line">\`\`\`[language]</span>
84<span class="line">[粘贴现有代码]</span>
85<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>【问题描述】</p><ul><li>性能瓶颈:[具体问题]</li><li>可读性问题:[具体问题]</li><li>维护性问题:[具体问题]</li></ul><p>【优化目标】</p><ol><li>主要目标:[性能/可读性/可维护性]</li><li>次要目标:[...]</li></ol><p>【约束条件】</p><ul><li>保持功能不变</li><li>兼容现有接口</li><li>不引入新的依赖(如适用)</li></ul><p>【期望输出】</p><ol><li>优化后的代码</li><li>优化说明</li><li>性能对比(如适用)</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
86<span class="line">**实际示例**:</span>
87<span class="line"></span>
88<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>【当前代码】</p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">process_users</span><span class="token punctuation">(</span>users<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
89<span class="line">    result <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span></span>
90<span class="line">    <span class="token keyword">
90for</span> user <span class="token keyword">in</span> users<span class="token punctuation">:</span></span>
91<span class="line">        <span class="token keyword">if</span> user<span class="token punctuation">[</span><span class="token string">&#39;age&#39;</span><span class="token punctuation">]</span> <span class="token operator">&gt;</span> <span class="token number">18</span><span class="token punctuation">:</span></span>
92<span class="line">            name <span class="token operator">=</span> user<span class="token punctuation">[</span><span class="token string">&#39;name&#39;</span><span class="token punctuation">]</span><span class="token punctuation">.</span>upper<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
93<span class="line">            email <span class="token operator">=</span> user<span class="token punctuation">[</span><span class="token string">&#39;email&#39;</span><span class="token punctuation">]</span><span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
94<span class="line">            result<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token punctuation">{</span></span>
95<span class="line">                <span class="token string">&#39;name&#39;</span><span class="token punctuation">:</span> name<span class="token punctuation">,</span></span>
96<span class="line">                <span class="token string">&#39;email&#39;</span><span class="token punctuation">:</span> email<span class="token punctuation">,</span></span>
97<span class="line">                <span class="token string">&#39;adult&#39;</span><span class="token punctuation">:</span> <span class="token boolean">True</span></span>
98<span class="line">            <span class="token punctuation">}</span><span class="token punctuation">)</span></span>
99<span class="line">    <span class="token keyword">return</span> result</span>
100<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>【问题描述】</p><ul><li>性能问题:处理大量用户时很慢</li><li>可读性问题:逻辑混在一起</li><li>没有类型注解和错误处理</li></ul><p>【优化目标】</p><ol><li>主要:提升性能(处理10万用户)</li><li>次要:提高可读性,添加错误处理</li></ol><p>【约束条件】</p><ul><li>保持函数签名</li><li>Python 3.8+</li><li>不引入外部依赖</li></ul><p>【期望输出】</p><ol><li>优化后的代码(使用列表推导式等)</li><li>性能提升说明</li><li>添加类型注解和错误处理</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
101<span class="line">#### 模板 3:Bug 修复</span>
102<span class="line"></span>
103<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>【错误现象】 描述出现的错误或异常行为</p><p>【错误代码】</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">[粘贴有问题的代码]</span>
104<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>【错误信息】</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">[粘贴完整的错误堆栈]</span>
105<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>【预期行为】 描述正确的行为应该是什么</p><p>【环境信息】</p><ul><li>语言版本:[...]</li><li>依赖版本:[...]</li><li>操作系统:[...]</li></ul><p>【已尝试的方案】</p><ol><li>[方案1] - 结果:[...]</li><li>[方案2] - 结果:[...]</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
106<span class="line">### 少样本学习(Few-shot Learning)</span>
107<span class="line"></span>
108<span class="line">#### 示例驱动生成</span>
109<span class="line"></span>
110<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>【任务】 创建数据验证函数</p><p>【示例 1】 输入:邮箱字符串 功能:验证邮箱格式</p><p>def validate_email(email: str) -&gt; bool: &quot;&quot;&quot;验证邮箱格式&quot;&quot;&quot; import re pattern = r&#39;^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$&#39; return bool(re.match(pattern, email))</p><p>【示例 2】 输入:手机号字符串 功能:验证中国手机号格式</p><p>def validate_phone(phone: str) -&gt; bool: &quot;&quot;&quot;验证中国手机号格式&quot;&quot;&quot; import re pattern = r&#39;^1[3-9]\\d{9}$&#39; return bool(re.match(pattern, phone))</p><p>【现在请创建】 输入:身份证号字符串 功能:验证中国身份证号格式(18位)</p><h1 id="ai-会模仿上述模式生成类似结构的代码" tabindex="-1"><a class="header-anchor" href="#ai-会模仿上述模式生成类似结构的代码"><span>AI 会模仿上述模式生成类似结构的代码</span></a></h1><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
111<span class="line">### 思维链(Chain of Thought)</span>
112<span class="line"></span>
113<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>不好的提示: &quot;优化这个算法&quot;</p><p>好的提示(包含思维链): &quot;请分析这个算法:</p><ol><li>首先识别算法的时间复杂度</li><li>找出主要的性能瓶颈</li><li>提出3种优化方案</li><li>比较各方案的优缺点</li><li>选择最佳方案并实现</li><li>分析优化后的复杂度&quot;</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
114<span class="line">---</span>
115<span class="line"></span>
116<span class="line">## 🚀 工作流设计</span>
117<span class="line"></span>
118<span class="line">### 日常编码工作流</span>
119<span class="line"></span>
120<span class="line">
120#### 流程图</span>
121<span class="line"></span>
122<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>┌──────────────────────────────────────┐ │ 日常编码工作流 │ ├──────────────────────────────────────┤ │ │ │ 1. 📝 需求分析 │ │ └─ 明确要实现的功能 │ │ │ │ 2. 🤔 方案设计 │ │ └─ 与 AI 讨论技术方案 │ │ │ │ 3. ✍️ 代码生成 │ │ ├─ 让 AI 生成框架代码 │ │ └─ 人工审查和调整 │ │ │ │ 4. 🔍 代码审查 │ │ ├─ AI 审查代码质量 │ │ └─ 人工审查业务逻辑 │ │ │ │ 5. 🧪 测试 │ │ ├─ AI 生成测试用例 │ │ └─ 运行测试 │ │ │ │ 6. 📚 文档 │ │ └─ AI 生成文档和注释 │ │ │ │ 7. 🚀 提交 │ │ └─ Git commit &amp; push │ │ │ └──────────────────────────────────────┘</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
123<span class="line">#### 实际操作示例</span>
124<span class="line"></span>
125<span class="line">**场景**:开发一个用户注册API</span>
126<span class="line"></span>
127<span class="line">**Step 1:需求分析**</span>
128<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你的输入: &quot;我需要创建一个用户注册API,需要考虑哪些方面?&quot;</p><p>AI 输出:</p><ol><li>数据验证(邮箱、密码强度)</li><li>密码加密存储</li><li>邮箱唯一性检查</li><li>发送验证邮件</li><li>错误处理</li><li>速率限制</li><li>日志记录</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
129<span class="line">**Step 2:方案设计**</span>
130<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>你的输入: &quot;使用 FastAPI 实现,请给出技术方案&quot;</p><p>AI 输出: 技术栈:</p><ul><li>FastAPI(web 框架)</li><li>Pydantic(数据验证)</li><li>bcrypt(密码加密)</li><li>SQLAlchemy(数据库)</li><li>Celery(异步任务,发送邮件)</li></ul><p>架构设计: /api/auth/register ├─ 验证输入 ├─ 检查用户是否存在 ├─ 加密密码 ├─ 保存到数据库 └─ 触发邮件发送</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
131<span class="line">**Step 3:代码生成**</span>
132<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>你的输入: &quot;实现这个 API,包含完整的错误处理和验证&quot;</p><p>AI 生成完整代码(见下方)</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
133<span class="line">**Step 4:代码审查**</span>
134<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>你的输入: &quot;审查这段代码,重点关注安全性&quot;</p><p>AI 审查结果: ✅ 密码加密正确 ✅ SQL 注入防护 ⚠️ 建议添加请求频率限制 ⚠️ 建议添加邮箱格式二次验证 ❌ 缺少 CSRF 保护</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
135<span class="line">**Step 5:测试**</span>
136<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>你的输入: &quot;生成完整的测试用例&quot;</p><p>AI 生成 pytest 测试代码</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
137<span class="line">### 代码审查工作流</span>
138<span class="line"></span>
139<span class="line">#### AI 辅助代码审查检查清单</span>
140<span class="line"></span>
141<span class="line">\`\`\`yaml</span>
142<span class="line">代码质量:</span>
143<span class="line">  - [ ] 命名是否清晰</span>
144<span class="line">  - [ ] 代码是否简洁</span>
145<span class="line">  - [ ] 是否有重复代码</span>
146<span class="line">  - [ ] 注释是否充分</span>
147<span class="line"></span>
148<span class="line">功能正确性:</span>
149<span class="line">  - [ ] 是否实现了需求</span>
150<span class="line">  - [ ] 边界情况是否处理</span>
151<span class="line">  - [ ] 错误处理是否完善</span>
152<span class="line"></span>
153<span class="line">性能:</span>
154<span class="line">  - [ ] 是否有性能瓶颈</span>
155<span class="line">  - [ ] 数据库查询是否优化</span>
156<span class="line">  - [ ] 是否有内存泄漏</span>
157<span class="line"></span>
158<span class="line">安全性:</span>
159<span class="line">  - [ ] 输入验证</span>
160<span class="line">  - [ ] SQL 注入防护</span>
161<span class="line">  - [ ] XSS 防护</span>
162<span class="line">  - [ ] 敏感信息保护</span>
163<span class="line"></span>
164<span class="line">可维护性:</span>
165<span class="line">  - [ ] 代码结构清晰</span>
166<span class="line">  - [ ] 模块化设计</span>
167<span class="line">  - [ ] 文档完整</span>
168<span class="line">  - [ ] 易于测试</span>
169<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使用-ai-进行代码审查" tabindex="-1"><a class="header-anchor" href="#使用-ai-进行代码审查"><span>使用 AI 进行代码审查</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">code_review_with_ai</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span>
169 focus<span class="token punctuation">:</span> <span class="token builtin">str</span> <span class="token operator">=</span> <span class="token string">&quot;all&quot;</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
170<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;使用 AI 进行代码审查&quot;&quot;&quot;</span></span>
171<span class="line">    </span>
172<span class="line">    prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f&quot;&quot;&quot;</span>
173<span class="line">    请审查以下代码,重点关注:</span><span class="token interpolation"><span class="token punctuation">{</span>focus<span class="token punctuation">}</span></span><span class="token string"></span>
174<span class="line">    </span>
175<span class="line">    \`\`\`</span>
176<span class="line">    </span><span class="token interpolation"><span class="token punctuation">{</span>code<span class="token punctuation">}</span></span><span class="token string"></span>
177<span class="line">    \`\`\`</span>
178<span class="line">    </span>
179<span class="line">    请按以下格式输出:</span>
180<span class="line">    </span>
181<span class="line">    ## 🎯 整体评价</span>
182<span class="line">    [总体评价]</span>
183<span class="line">    </span>
184<span class="line">    ## ✅ 优点</span>
185<span class="line">    - [优点1]</span>
186<span class="line">    - [优点2]</span>
187<span class="line">    </span>
188<span class="line">    ## ⚠️ 问题</span>
189<span class="line">    ### 严重问题</span>
190<span class="line">    - [问题1]</span>
191<span class="line">      - 位置:[行号]</span>
192<span class="line">      - 说明:[...]</span>
193<span class="line">      - 建议:[...]</span>
194<span class="line">    </span>
195<span class="line">    ### 一般问题</span>
196<span class="line">    - [问题2]</span>
197<span class="line">      - 位置:[行号]</span>
198<span class="line">      - 说明:[...]</span>
199<span class="line">      - 建议:[...]</span>
200<span class="line">    </span>
201<span class="line">    ## 💡 优化建议</span>
202<span class="line">    - [建议1]</span>
203<span class="line">    - [建议2]</span>
204<span class="line">    </span>
205<span class="line">    ## 📝 改进后的代码</span>
206<span class="line">    \`\`\`[language]</span>
207<span class="line">    [改进后的代码]</span>
208<span class="line">    \`\`\`</span>
209<span class="line">    &quot;&quot;&quot;</span></span></span>
210<span class="line">    </span>
211<span class="line">    <span class="token keyword">return</span> call_ai<span class="token punctuation">(</span>prompt<span class="token punctuation">)</span></span>
212<span class="line"></span>
213<span class="line"><span class="token comment"># 使用示例</span></span>
214<span class="line">review <span class="token operator">=</span> code_review_with_ai<span class="token punctuation">(</span></span>
215<span class="line">    code<span class="token operator">=</span>my_code<span class="token punctuation">,</span></span>
216<span class="line">    focus<span class="token operator">=</span><span class="token string">&quot;安全性和性能&quot;</span></span>
217<span class="line"><span class="token punctuation">)</span></span>
218<span class="line"></span>
219<span class="line"><span class="token keyword">print</span><span class="token punctuation">(</span>review<span class="token punctuation">)</span></span>
220<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="测试驱动开发工作流" tabindex="-1"><a class="header-anchor" href="#测试驱动开发工作流"><span>测试驱动开发工作流</span></a></h3><h4 id="tdd-with-ai" tabindex="-1"><a class="header-anchor" href="#tdd-with-ai"><span>TDD with AI</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">传统 TDD:</span>
221<span class="line">  1. 写测试</span>
222<span class="line">  2. 运行测试(失败)</span>
223<span class="line">  3. 写代码</span>
224<span class="line">  4. 运行测试(通过)</span>
225<span class="line">  5. 重构</span>
226<span class="line"></span>
227<span class="line">AI 辅助 TDD:</span>
228<span class="line">  1. 描述需求 → AI 生成测试</span>
229<span class="line">  2. 运行测试(失败)</span>
230<span class="line">
230  3. 描述实现 → AI 生成代码</span>
231<span class="line">  4. 运行测试(可能失败)</span>
232<span class="line">  5. 与 AI 讨论问题 → 修复代码</span>
233<span class="line">  6. 运行测试(通过)</span>
234<span class="line">  7. AI 建议重构方案 → 重构</span>
235<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>示例</strong>:</p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># Step 1:让 AI 生成测试</span></span>
236<span class="line">你的输入:</span>
237<span class="line"><span class="token triple-quoted-string string">&quot;&quot;&quot;</span>
238<span class="line">功能:计算购物车总价</span>
239<span class="line">需求:</span>
240<span class="line">- 支持折扣</span>
241<span class="line">- 支持优惠券</span>
242<span class="line">- 满减活动</span>
243<span class="line">请生成测试用例</span>
244<span class="line">&quot;&quot;&quot;</span></span>
245<span class="line"></span>
246<span class="line"><span class="token comment"># AI 生成测试</span></span>
247<span class="line">\`\`\`python</span>
248<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_basic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
249<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;基本价格计算&quot;&quot;&quot;</span></span>
250<span class="line">    cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
251<span class="line">    cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">&quot;Apple&quot;</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
252<span class="line">    <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">20.0</span></span>
253<span class="line"></span>
254<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_with_discount</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
255<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;应用折扣&quot;&quot;&quot;</span></span>
256<span class="line">    cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
257<span class="line">    cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">&quot;Apple&quot;</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
258<span class="line">    cart<span class="token punctuation">.</span>
258apply_discount<span class="token punctuation">(</span><span class="token number">0.1</span><span class="token punctuation">)</span>  <span class="token comment"># 10% 折扣</span></span>
259<span class="line">    <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">18.0</span></span>
260<span class="line"></span>
261<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_with_coupon</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
262<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;使用优惠券&quot;&quot;&quot;</span></span>
263<span class="line">    cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
264<span class="line">    cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">&quot;Apple&quot;</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
265<span class="line">    cart<span class="token punctuation">.</span>apply_coupon<span class="token punctuation">(</span>Coupon<span class="token punctuation">(</span><span class="token string">&quot;SAVE5&quot;</span><span class="token punctuation">,</span> <span class="token number">5.0</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
266<span class="line">    <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">15.0</span></span>
267<span class="line"></span>
268<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_full_price</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
269<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;满减活动&quot;&quot;&quot;</span></span>
270<span class="line">    cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
271<span class="line">    cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">&quot;Apple&quot;</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span>  <span class="token comment"># 总计100</span></span>
272<span class="line">    <span class="token comment"># 满100减20</span></span>
273<span class="line">    <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">80.0</span></span>
274<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>
274<h1 id="step-2-让-ai-实现功能" tabindex="-1"><a class="header-anchor" href="#step-2-让-ai-实现功能"><span>Step 2:让 AI 实现功能</span></a></h1><p>你的输入: &quot;&quot;&quot; 根据上述测试用例,实现 Cart 类和相关逻辑 &quot;&quot;&quot;</p><h1 id="ai-生成实现代码" tabindex="-1"><a class="header-anchor" href="#ai-生成实现代码"><span>AI 生成实现代码...</span></a></h1><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span>
275<span class="line">---</span>
276<span class="line"></span>
277<span class="line">## ✅ 质量保证</span>
278<span class="line"></span>
279<span class="line">### 代码质量检查</span>
280<span class="line"></span>
281<span class="line">#### 自动化检查流程</span>
282<span class="line"></span>
283<span class="line">\`\`\`bash</span>
284<span class="line"># 1. 代码风格检查</span>
285<span class="line">pylint your_code.py</span>
286<span class="line">flake8 your_code.py</span>
287<span class="line"></span>
288<span class="line"># 2. 类型检查</span>
289<span class="line">mypy your_code.py</span>
290<span class="line"></span>
291<span class="line"># 3. 安全检查</span>
292<span class="line">bandit your_code.py</span>
293<span class="line"></span>
294<span class="line"># 4. 测试覆盖率</span>
295<span class="line">pytest --cov=your_module tests/</span>
296<span class="line"></span>
297<span class="line"># 5. 复杂度分析</span>
298<span class="line">radon cc your_code.py</span>
299<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使用-ai-辅助质量检查" tabindex="-1"><a class="header-anchor" href="#使用-ai-辅助质量检查"><span>使用 AI 辅助质量检查</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">ai_quality_check</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
300<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;AI 辅助质量检查&quot;&quot;&quot;</span></span>
301<span class="line">    </span>
302<span class="line">    checks <span class="token operator">=</span> <span class="token punctuation">{</span></span>
303<span class="line">        <span class="token string">&quot;代码风格&quot;</span><span class="token punctuation">:</span> check_code_style<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span>
304<span class="line">        <span class="token string">&quot;类型安全&quot;</span><span class="token punctuation">:</span> check_type_safety<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span>
305<span class="line">        <span class="token string">&quot;安全漏洞&quot;</span><span class="token punctuation">:</span> check_security<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span>
306<span class="line">
306        <span class="token string">&quot;性能问题&quot;</span><span class="token punctuation">:</span> check_performance<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span>
307<span class="line">        <span class="token string">&quot;代码复杂度&quot;</span><span class="token punctuation">:</span> check_complexity<span class="token punctuation">(</span>code<span class="token punctuation">)</span></span>
308<span class="line">    <span class="token punctuation">}</span></span>
309<span class="line">    </span>
310<span class="line">    <span class="token comment"># 生成报告</span></span>
311<span class="line">    report <span class="token operator">=</span> generate_report<span class="token punctuation">(</span>checks<span class="token punctuation">)</span></span>
312<span class="line">    </span>
313<span class="line">    <span class="token comment"># AI 提供改进建议</span></span>
314<span class="line">    suggestions <span class="token operator">=</span> ai_suggest_improvements<span class="token punctuation">(</span>code<span class="token punctuation">,</span> checks<span class="token punctuation">)</span></span>
315<span class="line">    </span>
316<span class="line">    <span class="token keyword">return</span> <span class="token punctuation">{</span></span>
317<span class="line">        <span class="token string">&quot;report&quot;</span><span class="token punctuation">:</span> report<span class="token punctuation">,</span></span>
318<span class="line">        <span class="token string">&quot;suggestions&quot;</span><span class="token punctuation">:</span> suggestions</span>
319<span class="line">    <span class="token punctuation">}</span></span>
320<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="安全性最佳实践" tabindex="-1"><a class="header-anchor" href="#安全性最佳实践"><span>安全性最佳实践</span></a></h3><h4 id="安全检查清单" tabindex="-1"><a class="header-anchor" href="#安全检查清单"><span>安全检查清单</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">security_checklist</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span>
321<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;安全检查清单&quot;&quot;&quot;</span></span>
322<span class="line">    </span>
323<span class="line">    prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f&quot;&quot;&quot;</span>
324<span class="line">    请检查以下代码的安全性:</span>
325<span class="line">    </span>
326<span class="line">    \`\`\`</span>
327<span class="line">    </span><span class="token interpolation"><span class="token punctuation">{</span>code<span class="token punctuation">}</span></span><span class="token string"></span>
328<span class="line">    \`\`\`</span>
329<span class="line">    </span>
330<span class="line">    重点检查:</span>
331<span class="line">    </span>
332<span class="line">    1. 输入验证</span>
333<span class="line">       - [ ] 所有用户输入都经过验证</span>
334<span class="line">       - [ ] 使用白名单而非黑名单</span>
335<span class="line">       - [ ] 长度限制</span>
336<span class="line">    </span>
337<span class="line">    2. SQL 注入</span>
338<span class="line">       - [ ] 使用参数化查询</span>
339<span class="line">       - [ ] 避免动态 SQL 拼接</span>
340<span class="line">    </span>
341<span class="line">    3. XSS 防护</span>
342<span class="line">       - [ ] 输出编码</span>
343<span class="line">       - [ ] Content Security Policy</span>
344<span class="line">    </span>
345<span class="line">    4. 认证授权</span>
346<span class="line">       - [ ] 密码加密存储</span>
347<span class="line">
347       - [ ] 会话管理安全</span>
348<span class="line">       - [ ] 权限检查</span>
349<span class="line">    </span>
350<span class="line">    5. 敏感数据</span>
351<span class="line">       - [ ] 不在日志中记录敏感信息</span>
352<span class="line">       - [ ] 使用环境变量存储密钥</span>
353<span class="line">       - [ ] 加密传输</span>
354<span class="line">    </span>
355<span class="line">    6. 错误处理</span>
356<span class="line">       - [ ] 不泄露系统信息</span>
357<span class="line">       - [ ] 统一错误响应格式</span>
358<span class="line">    </span>
359<span class="line">    对于每个检查项:</span>
360<span class="line">    - ✅ 通过</span>
361<span class="line">    - ⚠️ 需要改进</span>
362<span class="line">    - ❌ 存在问题</span>
363<span class="line">    </span>
364<span class="line">    并给出具体的改进建议。</span>
365<span class="line">    &quot;&quot;&quot;</span></span></span>
366<span class="line">    </span>
367<span class="line">    <span class="token keyword">return</span> call_ai<span class="token punctuation">(</span>prompt<span class="token punctuation">)</span></span>
368<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="常见安全问题及修复" tabindex="-1"><a class="header-anchor" href="#常见安全问题及修复"><span>常见安全问题及修复</span></a></h4><p><strong>问题 1:SQL 注入</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># ❌ 不安全</span></span>
369<span class="line"><span class="token keyword">def</span> <span class="token function">get_user</span><span class="token punctuation">(</span>username<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
370<span class="line">    query <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f&quot;SELECT * FROM users WHERE username = &#39;</span><span class="token interpolation"><span class="token punctuation">{</span>username<span class="token punctuation">}</span></span><span class="token string">&#39;&quot;</span></span></span>
371<span class="line">    <span class="token keyword">return</span> db<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>query<span class="token punctuation">)</span></span>
372<span class="line"></span>
373<span class="line"><span class="token comment"># ✅ 安全</span></span>
374<span class="line"><span class="token keyword">def</span> <span class="token function">get_user</span><span class="token punctuation">(</span>username<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
375<span class="line">    query <span class="token operator">=</span> <span class="token string">&quot;SELECT * FROM users WHERE username = ?&quot;</span></span>
376<span class="line">    <span class="token keyword">return</span> db<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>query<span class="token punctuation">,</span> <span class="token punctuation">(</span>username<span class="token punctuation">,</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
377<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>问题 2:密码存储</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment">
377# ❌ 不安全</span></span>
378<span class="line"><span class="token keyword">def</span> <span class="token function">save_password</span><span class="token punctuation">(</span>password<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
379<span class="line">    user<span class="token punctuation">.</span>password <span class="token operator">=</span> password  <span class="token comment"># 明文存储</span></span>
380<span class="line"></span>
381<span class="line"><span class="token comment"># ✅ 安全</span></span>
382<span class="line"><span class="token keyword">import</span> bcrypt</span>
383<span class="line"></span>
384<span class="line"><span class="token keyword">def</span> <span class="token function">save_password</span><span class="token punctuation">(</span>password<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
385<span class="line">    salt <span class="token operator">=</span> bcrypt<span class="token punctuation">.</span>gensalt<span class="token punctuation">(</span><span class="token punctuation">)</span></span>
386<span class="line">    hashed <span class="token operator">=</span> bcrypt<span class="token punctuation">.</span>hashpw<span class="token punctuation">(</span>password<span class="token punctuation">.</span>encode<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> salt<span class="token punctuation">)</span></span>
387<span class="line">    user<span class="token punctuation">.</span>password <span class="token operator">=</span> hashed</span>
388<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>问题 3:敏感信息泄露</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># ❌ 不安全</span></span>
389<span class="line">API_KEY <span class="token operator">=</span> <span class="token string">&quot;sk-1234567890abcdef&quot;</span>  <span class="token comment"># 硬编码在代码中</span></span>
390<span class="line"></span>
391<span class="line"><span class="token comment"># ✅ 安全</span></span>
392<span class="line"><span class="token keyword">import</span> os</span>
393<span class="line">API_KEY <span class="token operator">=</span> os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">&quot;API_KEY&quot;</span><span class="token punctuation">)</span>  <span class="token comment"># 从环境变量读取</span></span>
394<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="👥-团队协作" tabindex="-1"><a class="header-anchor" href="#👥-团队协作"><span>👥 团队协作</span></a></h2><h3 id="团队使用规范" tabindex="-1"><a class="header-anchor" href="#团队使用规范"><span>团队使用规范</span></a></h3><h4 id="提示词库管理" tabindex="-1"><a class="header-anchor" href="#提示词库管理"><span>提示词库管理</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">团队共享的提示词库:</span>
395<span class="line"></span>
396<span class="line">project/</span>
397<span class="line">├── .prompts/</span>
398<span class="line">│   ├── python/</span>
399<span class="line">│   │   ├── api-endpoint.md</span>
400<span class="line">│   │   ├── data-model.md</span>
401<span class="line">│   │   └── unit-test.md</span>
402<span class="line">│   ├── frontend/</span>
403<span class="line">│   │   ├── react-component.md</span>
404<span class="line">│   │   └── api-integration.md</span>
405<span class="line">│   └── devops/</span>
406<span class="line">│       ├── docker.md</span>
407<span class="line">│       └── ci-cd.md</span>
408<span class="line">└── README.md</span>
409<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>示例提示词模板</strong> (<code>api-endpoint.md</code>):</p><div class="language-markdown line-numbers-mode" data-highlighter="prismjs" data-ext="md"><pre><code class="language-markdown"><span class="line"><span class="token title important"><span class="token punctuation">#</span> API 端点开发模板</span></span>
410<span class="line"></span>
411<span class="line"><span class="token title important"><span class="token punctuation">##</span> 提示词</span></span>
412<span class="line"></span>
413<span class="line">创建一个 RESTful API 端点:</span>
414<span class="line"></span>
415<span class="line">【功能】</span>
416<span class="line">{功能描述}</span>
417<span class="line"></span>
418<span class="line">【路由】</span>
419<span class="line"><span class="token list punctuation">-</span> 方法:{GET/POST/PUT/DELETE}</span>
420<span class="line"><span class="token list punctuation">-</span> 路径:{/api/v1/...}</span>
421<span class="line"></span>
422<span class="line">【请求】</span>
423<span class="line"><span class="token list punctuation">-</span> Headers:{...}</span>
424<span class="line"><span class="token list punctuation">-</span> Body:{...}</span>
425<span class="line"></span>
426<span class="line">【响应】</span>
427<span class="line"><span class="token list punctuation">-</span> 成功:{200, 数据格式}</span>
428<span class="line"><span class="token list punctuation">-</span> 失败:{错误码, 错误格式}</span>
429<span class="line"></span>
430<span class="line">【验证】</span>
431<span class="line"><span class="token list punctuation">-</span> 输入验证规则</span>
432<span class="line"><span class="token list punctuation">-</span> 权限验证</span>
433<span class="line"></span>
434<span class="line">【错误处理】</span>
435<span class="line"><span class="token list punctuation">-</span> 异常类型及处理方式</span>
436<span class="line"></span>
437<span class="line">【文档】</span>
438<span class="line"><span class="token list punctuation">-</span> 生成 OpenAPI/Swagger 文档</span>
439<span class="line"></span>
440<span class="line"><span class="token title important"><span class="token punctuation">##</span> 使用示例</span></span>
441<span class="line"></span>
442<span class="line">[粘贴一个具体示例]</span>
443<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="代码风格统一" tabindex="-1">
443<a class="header-anchor" href="#代码风格统一"><span>代码风格统一</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># .ai-config.yaml</span></span>
444<span class="line"></span>
445<span class="line"><span class="token comment"># AI 生成代码的风格配置</span></span>
446<span class="line">code_style<span class="token punctuation">:</span></span>
447<span class="line">  language<span class="token punctuation">:</span> python</span>
448<span class="line">  version<span class="token punctuation">:</span> <span class="token string">&quot;3.10+&quot;</span></span>
449<span class="line">  </span>
450<span class="line">  formatting<span class="token punctuation">:</span></span>
451<span class="line">    line_length<span class="token punctuation">:</span> <span class="token number">88</span></span>
452<span class="line">    quotes<span class="token punctuation">:</span> double</span>
453<span class="line">    indent<span class="token punctuation">:</span> <span class="token number">4</span></span>
454<span class="line">    </span>
455<span class="line">  naming<span class="token punctuation">:</span></span>
456<span class="line">    function<span class="token punctuation">:</span> snake_case</span>
457<span class="line">    <span class="token keyword">class</span><span class="token punctuation">:</span> PascalCase</span>
458<span class="line">    constant<span class="token punctuation">:</span> UPPER_CASE</span>
459<span class="line">    </span>
460<span class="line">  documentation<span class="token punctuation">:</span></span>
461<span class="line">    style<span class="token punctuation">:</span> google  <span class="token comment"># Google, NumPy, or reStructuredText</span></span>
462<span class="line">    include_examples<span class="token punctuation">:</span> true</span>
463<span class="line">
463    include_types<span class="token punctuation">:</span> true</span>
464<span class="line">    </span>
465<span class="line">  imports<span class="token punctuation">:</span></span>
466<span class="line">    order<span class="token punctuation">:</span> <span class="token punctuation">[</span>stdlib<span class="token punctuation">,</span> third_party<span class="token punctuation">,</span> local<span class="token punctuation">]</span></span>
467<span class="line">    <span class="token builtin">format</span><span class="token punctuation">:</span> black</span>
468<span class="line">    </span>
469<span class="line">  type_hints<span class="token punctuation">:</span></span>
470<span class="line">    enabled<span class="token punctuation">:</span> true</span>
471<span class="line">    strict<span class="token punctuation">:</span> false</span>
472<span class="line">    </span>
473<span class="line">  error_handling<span class="token punctuation">:</span></span>
474<span class="line">    prefer_specific_exceptions<span class="token punctuation">:</span> true</span>
475<span class="line">    always_cleanup<span class="token punctuation">:</span> true</span>
476<span class="line">    </span>
477<span class="line">  testing<span class="token punctuation">:</span></span>
478<span class="line">    framework<span class="token punctuation">:</span> pytest</span>
479<span class="line">    coverage_target<span class="token punctuation">:</span> <span class="token number">80</span></span>
480<span class="line">    include_edge_cases<span class="token punctuation">:</span> true</span>
481<span class="line"></span>
482<span class="line"><span class="token comment"># 使用方式</span></span>
483<span class="line"><span class="token comment"># 在提示词中引用:</span></span>
484<span class="line"><span class="token comment"># &quot;请按照我们的代码风格配置生成代码(参考 .ai-config.yaml)&quot;</span></span>
485<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="git-commit-规范" tabindex="-1"><a class="header-anchor" href="#git-commit-规范"><span>Git Commit 规范</span></a></h4><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh"><pre><code class="language-bash"><span class="line"><span class="token comment"># 使用 AI 生成规范的 commit message</span></span>
486<span class="line"></span>
487<span class="line"><span class="token comment"># 你的输入:</span></span>
488<span class="line"><span class="token function">git</span> <span class="token function">diff</span> <span class="token operator">|</span> ai-commit</span>
489<span class="line"></span>
490<span class="line"><span class="token comment"># AI 生成:</span></span>
491<span class="line">feat<span class="token punctuation">(</span>auth<span class="token punctuation">)</span>: 添加用户注册API</span>
492<span class="line"></span>
493<span class="line">- 实现用户注册端点</span>
494<span class="line">- 添加邮箱验证</span>
495<span class="line">- 实现密码加密存储</span>
496<span class="line">- 添加单元测试(覆盖率85%)</span>
497<span class="line"></span>
498<span class="line">Breaking Changes: None</span>
499<span class="line">Closes: <span class="token comment">#123</span></span>
500<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="知识库建设" tabindex="-1"><a class="header-anchor" href="#知识库建设"><span>知识库建设</span></a></h3><h4 id="项目知识库结构" tabindex="-1"><a class="header-anchor" href="#项目知识库结构"><span>项目知识库结构</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">项目知识库/</span>
501<span class="line">├── 01-架构设计/</span>
502<span class="line">│   ├── 系统架构.md</span>
503<span class="line">│   ├── 数据库设计.md</span>
504<span class="line">│   └── API设计.md</span>
505<span class="line">│</span>
506<span class="line">├── 02-开发规范/</span>
507<span class="line">│   ├── 代码风格指南.md</span>
508<span class="line">│   ├── Git工作流.md</span>
509<span class="line">│   └── 测试规范.md</span>
510<span class="line">│</span>
511<span class="line">├── 03-常见模式/</span>
512<span class="line">│   ├── 认证授权模式.md</span>
513<span class="line">│   ├── 错误处理模式.md</span>
514<span class="line">│   └── 数据验证模式.md</span>
515<span class="line">│</span>
516<span class="line">├── 04-问题解决/</span>
517<span class="line">│   ├── 常见问题FAQ.md</span>
518<span class="line">│   ├── 性能优化案例.md</span>
519<span class="line">│   └── Bug修复记录.md</span>
520<span class="line">│</span>
521<span class="line">└── 05-最佳实践/</span>
522<span class="line">    ├── 安全最佳实践.md</span>
523<span class="line">    ├── 性能最佳实践.md</span>
524<span class="line">    └── 可维护性最佳实践.md</span>
525<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使用-ai-维护知识库" tabindex="-1"><a class="header-anchor" href="#使用-ai-维护知识库"><span>使用 AI 维护知识库</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">async</span> <span class="token keyword">def</span> <span class="token function">update_knowledge_base</span><span class="token punctuation">(</span>
525code_changes<span class="token punctuation">,</span> issue_resolution<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
526<span class="line">    <span class="token triple-quoted-string string">&quot;&quot;&quot;自动更新知识库&quot;&quot;&quot;</span></span>
527<span class="line">    </span>
528<span class="line">    <span class="token comment"># 1. 分析代码变更</span></span>
529<span class="line">    patterns <span class="token operator">=</span> <span class="token keyword">await</span> ai_analyze_patterns<span class="token punctuation">(</span>code_changes<span class="token punctuation">)</span></span>
530<span class="line">    </span>
531<span class="line">    <span class="token comment"># 2. 提取最佳实践</span></span>
532<span class="line">    <span class="token keyword">if</span> is_good_practice<span class="token punctuation">(</span>patterns<span class="token punctuation">)</span><span class="token punctuation">:</span></span>
533<span class="line">        <span class="token keyword">await</span> add_to_knowledge_base<span class="token punctuation">(</span></span>
534<span class="line">            category<span class="token operator">=</span><span class="token string">&quot;最佳实践&quot;</span><span class="token punctuation">,</span></span>
535<span class="line">            content<span class="token operator">=</span>patterns</span>
536<span class="line">        <span class="token punctuation">)</span></span>
537<span class="line">    </span>
538<span class="line">    <span class="token comment"># 3. 记录问题解决方案</span></span>
539<span class="line">    <span class="token keyword">if</span> issue_resolution<span class="token punctuation">:</span></span>
540<span class="line">        <span class="token keyword">await</span> add_to_knowledge_base<span class="token punctuation">(</span></span>
541<span class="line">            category<span class="token operator">=</span><span class="token string">&quot;问题解决&quot;</span><span class="token punctuation">,</span></span>
542<span class="line">            content<span class="token operator">=</span><span class="token punctuation">{</span></span>
543<span class="line">                <span class="token string">&quot;problem&quot;</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>problem<span class="token punctuation">,</span></span>
544<span class="line">                <span class="token string">&quot;solution&quot;</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>solution<span class="token punctuation">,</span></span>
545<span class="line">                <span class="token string">&quot;code&quot;</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>code</span>
546<span class="line">            <span class="token punctuation">}</span></span>
547<span class="line">        <span class="token punctuation">)</span></span>
548<span class="line">    </span>
549<span class="line">    <span class="token comment"># 4. 生成文档</span></span>
550<span class="line">    doc <span class="token operator">=</span> <span class="token keyword">await</span> ai_generate_documentation<span class="token punctuation">(</span>patterns<span class="token punctuation">)</span></span>
551<span class="line">    <span class="token keyword">await</span> save_documentation<span class="token punctuation">(</span>doc<span class="token punctuation">)</span></span>
552<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="💡-最佳实践总结" tabindex="-1"><a class="header-anchor" href="#💡-最佳实践总结"><span>💡 最佳实践总结</span></a></h2><h3 id="核心原则" tabindex="-1"><a class="header-anchor" href="#核心原则"><span>核心原则</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">1. 人机协同</span>
553<span class="line">   └─ AI 生成,人工审查</span>
554<span class="line"></span>
555<span class="line">2. 持续迭代</span>
556<span class="line">   └─ 不断优化提示词和工作流</span>
557<span class="line"></span>
558<span class="line">3. 质量优先</span>
559<span class="line">   └─ 代码质量不能妥协</span>
560<span class="line"></span>
561<span class="line">4. 安全第一</span>
562<span class="line">   └─ 始终考虑安全性</span>
563<span class="line"></span>
564<span class="line">5. 团队协作</span>
565<span class="line">   └─ 统一规范,共享知识</span>
566<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="常见陷阱" tabindex="-1"><a class="header-anchor" href="#常见陷阱"><span>常见陷阱</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">❌ 盲目信任 AI 生成的代码</span>
567<span class="line">   ✅ 始终审查和测试</span>
568<span class="line"></span>
569<span class="line">❌ 提示词过于简单</span>
570<span class="line">   ✅ 提供充分的上下文和约束</span>
571<span class="line"></span>
572<span class="line">❌ 忽视安全性</span>
573<span class="line">   ✅ 重点关注安全问题</span>
574<span class="line"></span>
575<span class="line">❌ 不写测试</span>
576<span class="line">   ✅ AI 可以帮助生成测试</span>
577<span class="line"></span>
578<span class="line">❌ 缺乏文档</span>
579<span class="line">   ✅ 利用 AI 生成文档</span>
580<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="🎯-下一步" tabindex="-1"><a class="header-anchor" href="#🎯-下一步"><span>🎯 下一步</span></a></h2><p>掌握了最佳实践后,继续学习:</p>`,127)),a("ul",null,[a("li",null,[n[1]||(n[1]=s("📖 ",-1)),l(e,{to:"/ai-programming/codex/07-optimization-tips.html"},{default:i(()=>[...n[0]||(n[0]=[s("07 - 性能优化技巧",-1)])]),_:1}),n[2]||(n[2]=s(" - 提升效率和降低成本",-1))]),a("li",null,[n[4]||(n[4]=s("📖 ",-1)),l(e,{to:"/ai-programming/codex/08-practical-cases.html"},{default:i(()=>[...n[3]||(n[3]=[s("08 - 实战案例集",-1)])]),_:1}),n[5]||(n[5]=s(" - 实践项目",-1))]),a("li",null,[n[7]||(n[7]=s("📖 ",-1)),l(e,{to:"/ai-programming/codex/09-troubleshooting.html"},{default:i(()=>[...n[6]||(n[6]=[s("09 - 常见问题与故障排除",-1)])]),_:1}),n[8]||(n[8]=s(" - 解决具体问题",-1))])]),n[12]||(n[12]=a("hr",null,null,-1)),a("p",null,[n[10]||(n[10]=s("👉 ",-1)),l(e,{to:"/ai-programming/codex/07-optimization-tips.html"},{default:i(()=>[...n[9]||(n[9]=[s("下一章:07 - 性能优化技巧",-1)])]),_:1})])])}const b=p(o,[["render",r]]),k=JSON.parse('{"path":"/ai-programming/codex/06-best-practices.html","title":"Codex 最佳实践","lang":"zh-CN","frontmatter":{"title":"Codex 最佳实践","description":"掌握高效使用 Codex 的策略、技巧和工作流","lang":"zh-CN"}
580,"git":{"updatedTime":1766413539000,"contributors":[{"name":"wsyx","username":"","email":"[email protected]","commits":1}],"changelog":[{"hash":"6f88b92aa0bd0fb67a38a1ba536877d410aa38fb","time":1766413539000,"email":"[email protected]","author":"wsyx","message":"feat:文章结构优化"}]},"filePathRelative":"ai-programming/codex/06-best-practices.md"}');export{b as comp,k as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.