Eli Kang 提问于 3周后

怎么用 AI 写代码、解决技术问题?

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. 构建新项目

  • 使用“逐步放大”法:
    1. 先让 AI 设计项目结构和核心抽象
    2. 实现核心领域模型
    3. 再添加基础设施代码

三、高阶技巧

  • Chain of Verification (CoV):让 AI 分步验证自己的方案
  • Self-Consistency:让它用3种不同角度生成方案,然后对比
  • 使用工具:Cursor + Claude 3.5 Sonnet(目前代码能力最强)> GPT-4o > Claude 3 Opus
  • Aider(命令行工具):特别适合大型代码库的修改
  • 让 AI 写测试先行,再根据测试写实现(类似 TDD)

四、重要认知边界(必须记住)

  1. AI 目前不具备真正的工程判断力,它擅长局部最优,但不擅长系统最优。
  2. 复杂系统中的权衡(trade-off)仍然需要人类主导。
  3. 最新技术(<6个月) 的使用需要你提供最新文档或论文。
  4. 安全相关代码(鉴权、加密、支付)必须人类专家严格审查。

最终建议

把 AI 编程能力当作把你的工程水平提升 2-3 个档次 的杠杆,而不是替代你思考。真正的高手不是让 AI 写得越多越好,而是提问质量越高越好

Lucas Perkins 回答于 3周后

登录以回答此问题

登录