让 AI 写代码一年了,聊聊真实感受

1552 字
8 分钟
让 AI 写代码一年了,聊聊真实感受

概述#

AI 编程是 2026 年落地最深、价值最明确的 AI 场景之一。但很多人的体验还停留在”生成的代码不能直接用”的阶段。问题不在 AI,在使用方法

这篇文章分享我一年多来用 AI 编程的实践经验,覆盖日常开发的各个环节。


一、AI 编程的定位#

首先想清楚一件事:AI 不是替代你写代码,而是放大你的能力

AI 擅长 你不该让 AI 做的事
──────────────────────────────────────────────
写样板代码、CRUD 设计系统架构
写单元测试 理解复杂业务规则
写正则、数据结构 做安全敏感的操作
重构/重命名/提取函数 维护依赖版本兼容性
查文档、写注释 写一次性密码/密钥
调试(读错误日志定位问题) 做代码审查的最终决策

使用 AI 的正确姿势是:你负责”做什么”和”对不对”,AI 负责”怎么写”


二、Prompt 技巧#

2.1 给足够的上下文#

AI 没有读心术。最常犯的错误就是只丢一句”帮我写个用户管理模块”,然后怪 AI 写得不合要求。

好的 prompt 结构:

角色 + 任务 + 约束 + 输出格式 + 示例

示例:

你是一个资深 Python 后端开发。请为 Flask 应用实现用户注册接口。要求:

  • 使用邮箱+密码登录,密码 bcrypt 加密
  • 邮箱需要格式校验和唯一性检查
  • 返回统一的 JSON 格式:{code, message, data}
  • 用 SQLAlchemy 2.0 语法
  • 写完后给一个完整的 curl 测试示例

2.2 分步对话,不要一次性#

复杂任务不要试图一次完成。应该像和人结对编程一样,分步沟通:

第 1 轮:帮我设计数据库模型
第 2 轮:基于这个模型,写注册 API
第 3 轮:现在加上邮箱验证码逻辑
第 4 轮:帮我写这些接口的单元测试

每一轮都在上一轮的基础上迭代,AI 的后续输出会更精准。

2.3 给 AI “自我修正”的机会#

写 prompt 时加上这句话:

在输出代码之前,先分析一下可能的问题和边界情况。

这会让 AI 先生成思考过程,再写代码,质量明显更高。

2.4 用 System Prompt 设定全局规则#

在 opencode 或 Cursor 的 system prompt 中设置全局规则:

- 使用 TypeScript 5.x,strict 模式
- React 函数组件 + Hooks,不要 class 组件
- 错误处理统一用 try-catch 包裹 async 函数
- 注释只写 Why,不写 What
- 单文件不超过 300 行

这样后续所有对话都会遵循这些约定,不需要每次都重复。


三、工作流设计#

3.1 我的日常开发流程#

需求分析
│ 人写需求文档/TODO List
方案设计
│ AI 辅助出技术方案 + 人审核
编码实现
│ AI 写代码 + 人 review
测试
│ AI 写测试 + 人审查边界条件
Code Review
│ 人做最终审查 + AI 辅助检查
部署

每个环节的人机分工在开头的表格里。

3.2 Agentic 模式 vs Chat 模式#

Chat 模式(传统) Agentic 模式(推荐)
──────────────────────────────────────────────
对话式,每次需要手动粘贴代码 自主完成多步任务
需要你把代码复制过去 直接读写项目文件
适合问问题、小段代码 适合功能开发、重构
工具:ChatGPT、Claude.ai 工具:opencode、Cursor

对于超过 100 行的代码任务,Agentic 模式的效率远高于 Chat 模式。opencode 可以直接操作文件系统、运行命令、读取项目上下文,完成从代码编写到测试验证的完整闭环。

3.3 测试先行#

让 AI 先写测试是一个很有效的策略:

  1. 你定义接口签名和预期行为
  2. AI 根据描述写测试用例
  3. 你审核测试是否覆盖了关键场景
  4. 再让 AI 写实现代码
  5. 跑测试验证

这样做的好处:测试就是需求文档,AI 和人都按照同一套标准验证。


四、常见陷阱#

陷阱 1:过度信任 AI 的输出#

AI 写的代码看起来往往很合理,但可能有:

  • 不存在的 API(幻觉)
  • 不安全的写法(硬编码密钥、SQL 注入)
  • 性能问题(N+1 查询、不必要的循环)

应对:每条 AI 生成的代码都要 review,像 review 新人代码一样。

陷阱 2:prompt 太模糊#

❌ “帮我改一下这个函数” ✅ “这个函数在并发场景下有问题,请用 asyncio.Lock 保护共享资源,并加上类型注解”

应对:把你对人类同事会说的话,再具体一倍。

陷阱 3:一次对话塞太多需求#

AI 的注意力有限。长对话中后面提到的需求可能被忽略。

应对

  • 复杂任务拆成多个子任务
  • 重要的约束放在 prompt 末尾(AI 更容易记住最近的内容)
  • 定期开启新对话,把关键上下文贴在开头

陷阱 4:忽略错误处理#

AI 倾向于写”快乐路径”——正常情况跑得通,异常情况直接崩。

应对:明确要求 AI 处理边界情况:

“请确保处理以下场景:传入参数为空、网络超时、数据库连接失败、并发写入冲突”


五、2026 年的最佳实践总结#

  1. 选对工具:写代码用 Claude + opencode/Cursor,不要用通用聊天工具
  2. 给够上下文:文件内容、项目结构、技术栈约束——信息越全,输出越好
  3. 分步迭代:复杂任务拆成小步骤,每一步让 AI 做完后你审核
  4. 测试先行:用测试定义需求,让 AI 按测试写实现
  5. 始终 review:AI 是协作者,不是替代者。最终责任在你
  6. 建立规则库:把常用的约束写成 system prompt,形成团队 AI 编程规范

最后一条建议:不要因为 AI 写代码快就忽略基本功。好的架构能力、领域知识、安全意识,是 AI 教不了你的——而这些恰恰是决定代码质量的关键。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

让 AI 写代码一年了,聊聊真实感受
https://selfstack.xiaoxiaotan.online/posts/ai编程一年/
作者
zicai
发布于
2026-05-18
许可协议
CC BY-NC-SA 4.0
zicai
Hello, I'm zicai.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
11
分类
4
标签
56
总字数
29,238
运行时长
0
最后活动
0 天前

文章目录