1 回答
已采纳答案
如何用 AI 高效写代码、解决技术问题
核心结论
最有效的方式是把 AI 当作“极高水平但偶尔会犯错的初级合伙人”,而非“会写代码的搜索引擎”。真正的生产力提升来自结构化的协作流程,而非简单地扔一个问题过去。
高质量输出 = 清晰意图 × 结构化提示 × 严格验证迭代。
一、系统性工作方法(推荐框架)
1. 问题定义阶段(最重要)
在和 AI 对话前,先自己完成以下思考:
- 业务/技术目标是什么?(用一句话说清楚)
- 约束条件有哪些?(语言、框架、性能、兼容性、安全等)
- 成功标准是什么?(可观测指标)
- 已有的上下文(现有代码架构、关键决策)
示例:不要说“帮我写一个用户登录”,而是说:
“在 NestJS + TypeScript + Prisma + Redis 的项目中,实现邮箱+密码登录,要求支持速率限制、登录失败锁定、Refresh Token 轮换,且符合 OWASP 推荐做法。现有项目已使用 Clean Architecture。”
2. 提示工程结构(生产级模板)
使用以下四段式提示结构,效果显著优于随意提问:
【角色】
你现在是10年经验的XXX领域首席工程师,极度严谨,注重可维护性、安全性和性能。
【任务】
请帮我...
【上下文】
- 技术栈:...
- 现有架构决策:...
- 关键约束:...
【输出要求】
1. 先进行分析和潜在风险说明
2. 给出整体方案和理由(为什么这么设计)
3. 提供完整可运行代码
4. 说明关键决策点和备选方案
5. 给出单元测试和可能的边界情况
3. 迭代开发流程(推荐)
阶段1:架构与方案设计
- 先让 AI 做技术方案对比(Trade-off Analysis)
- 要求它列出至少3种方案及优缺点
阶段2:分模块实现
- 采用“先骨架、再血肉”策略
- 先让 AI 输出接口定义、类型、目录结构
- 再逐个模块实现
阶段3:批判性审查
- 故意用“红队”模式提问:
- “这个方案有哪些潜在风险和坏味道?”
- “如果你是资深工程师来Review这段代码,你会提出哪些问题?”
- “如何在不修改核心逻辑的前提下提升可测试性?”
阶段4:验证与修复
- 提供真实错误信息、日志、复现步骤
- 让 AI 进行根因分析(Root Cause Analysis)
二、不同场景的策略
1. 调试疑难问题
- 提供最小可复现示例(Minimal Reproducible Example)
- 附上:错误信息、相关代码、日志、已经尝试过的方案
- 要求 AI 按“科学调试法”一步步推导
2. 学习新技术栈
- 让 AI 扮演“导师+架构师”双重角色
- 要求它先输出学习路径 + 核心概念心智模型
- 再要求它出进阶练习题让你动手
3. 重构遗留代码
- 先让 AI 分析当前代码的坏味道和风险
- 再要求它提出重构路线图(分阶段)
- 每次只重构一个模块
4. 构建新项目
- 使用“逐步放大”法:
- 先让 AI 设计项目结构和核心抽象
- 实现核心领域模型
- 再添加基础设施代码
三、高阶技巧
- Chain of Verification (CoV):让 AI 分步验证自己的方案
- Self-Consistency:让它用3种不同角度生成方案,然后对比
- 使用工具:Cursor + Claude 3.5 Sonnet(目前代码能力最强)> GPT-4o > Claude 3 Opus
- Aider(命令行工具):特别适合大型代码库的修改
- 让 AI 写测试先行,再根据测试写实现(类似 TDD)
四、重要认知边界(必须记住)
- AI 目前不具备真正的工程判断力,它擅长局部最优,但不擅长系统最优。
- 复杂系统中的权衡(trade-off)仍然需要人类主导。
- 最新技术(<6个月) 的使用需要你提供最新文档或论文。
- 安全相关代码(鉴权、加密、支付)必须人类专家严格审查。
最终建议:
把 AI 编程能力当作把你的工程水平提升 2-3 个档次 的杠杆,而不是替代你思考。真正的高手不是让 AI 写得越多越好,而是提问质量越高越好。
登录以回答此问题
登录