AI帮我写代码

背景描述

当下推理模型的能力进一步增强,gemini-2.5pro, kimi-k2在代码编辑层面都非常强。因此在尝试一种新的写代码方式,那就是人机协同

人机协同:人提供关键的信息以及这些信息是需要模型能够看的懂,模型根据提供的信息,输出对应的代码。在模型输出代码的过程,人只需要在关键时刻进行代码review,剩余时间,抽烟、喝酒、烫头样样来。

下面我以我当下的体验,进行记录与反馈。

AI能看懂的材料

在让AI帮你干活之前的第一步,就是需要先给模型灌输对应的上下文 ,没有清晰的上下文,模型就像瞎子摸象,出现幻觉。反过来被你说一句:不过如此,还不如我写

当下,不管是屎山代码或是新项目,总归是服务于业务,服务于业务,那就有非常清晰的流程图(虽然可能充斥着if else 逻辑,但总归是有起点与终点),后端对应的表设计、产品的PRD,前后端技术栈、前后端项目目录,这些都是模型需要的上下文信息,而且越具体以及精确,越能激发模型的潜能。

那以上信息我们该以什么方式喂给模型呢?在讨论这个问题之前,我们首先需要思考的就是模型能看得懂什么,从而可以反推出以什么方式喂给模型作为上下文。总不可能我丢给模型一篇文档,里面有流程图截图、有零碎的上下文信息,然后告诉模型,给我干,干不出来我就PUA你垃圾,不过如此。因此我们需要看模型能够看懂什么。

不管如何,第一步都是需要先梳理出流程图、交互图、业务信息、项目信息、技术栈信息等。再考虑下一步。关于以上信息如何高效的喂给模型,我从我的实际体验出发,给出对应的建议。

流程图 : 在使用AI的过程中,当我描述一个业务流程时,模型输出的流程图、时序图等,均是以mermaid 进行输出,原因也很简单,从文字描述 + 对应的规范即可生成可视化的流程图,因此在流程图层面推荐使用mermaid进行提供,并且最好提供流程图(告诉业务逻辑)以及时序图(告诉技术层面如何实现)。

PRD: 产品层面可能会有很多PRD,但是细想,PRD无非是新的业务链路或是对之前已有链路的逻辑改造。因此我们应该维护的是大而全的PRD,在PRD中抽象出对应的业务功能,针对每次改动,在下发增加change log,最后在对最新的业务功能进行细分描述,并可与上文所说的流程图做关联。

DB表: DB表等信息较为简单,只需要维护好对应的md文档,以及维护好更新历史。比如:字段的增删是因为什么原因,可以关联PRD中的具体某个change log。

技术框架&目录: 不管前后端,都会有自己的技术栈,例如:前端的是react/vue等,后端java/c++等,精准的告诉模型,方便模型做向量匹配,相当于prompt中的 Role一样,目录能够加快模型快速去查找或定位对应的功能,在我的项目中,当下喂给模型的如下:

text 复制代码
前端技术栈
跨端框架:Taro 3 
UI组件库:Taro UI
状态管理:zustand
网络请求:axios
编码语言:ts

文件目录
src
├── components # 全局组件
├── pages # 页面
├── services # 服务层
├── utils # 工具函数
├── xxx # 其他文件

### 页面目录
src/pages
├── index # 模板页
├── xxx # 其他文件
    
### 组件目录
src/components
├── common # 全局组件
├── index # 首页组件
├── template # 模板页组件


后端技术栈
node框架: Koa
数据库:MySQL
数据缓存:Redis
数据库操作SDK: sequelize
编码语言:TS
鉴权:JWT

文件目录
src
├── controllers # 控制器
├── middleware # 中间件
├── config # 配置
├── routes # 路由
├── services # 服务层
├── utils # 工具函数
├── app.js # 应用入口
├── db.js # 数据库连接
├── index.js # 应用初始化

Prompt

在有了上述信息后,我们在后续的开发过程中,就可以引用对应的文档或者流程图,以及告诉模型我们本次技术层面需要实现的功能,以及当下的流程图以及前后端如何交互的泳道图,帮我们实现对应的代码片段。以trae为例:方便模型能够快速的理解业务需求和技术要改造的点(如能精确到具体文档,则更好),

text 复制代码
该项目是一个前后端分离项目,其中client是前端,server是后端。

对应的细分目录在 README.md 中,

对应的该流程图以及时序图在 sequenceDiagram.md 中

对应的PRD以及change log在prd.md中,其中每个业务流程中,包含之前的业务逻辑以及本次的 change log

对应的DB设计在 db.md 中,请参照以上,实现server端代码

要求的功能有:


1. 任何请求,都需要经过jwt校验,如果未校验通过,则返回401状态码。校验通过则进入后续流程,后续流程中返回的数据结构必须有statusCode以及statusMsg,statusCode为0,表示业务正确请求,非0表示业务处理错误

1. 用户登录接口,执行xxx逻辑。

2. 查询用户接口,如果没有查询到,返回非0状态码,如果查询到,则返回用户信息。

3.提供xx创建接口,需要校验xx,yy, zz,xx演示地址URL是否存在,如不存在,返回非0状态码。

4.xxxxxxxx

根据以上信息,帮我生成对应的代码片段以及解释这样写的原因。

效果展示

写在最后

实践是检验真理的唯一办法,对待新事物,要拥抱,而非抵触或担忧。

相关推荐
锋行天下1 天前
公司内网部署大模型的探索之路
前端·人工智能·后端
1024肥宅1 天前
手写 EventEmitter:深入理解发布订阅模式
前端·javascript·eventbus
海市公约1 天前
HTML网页开发从入门到精通:从标签到表单的完整指南
前端·ide·vscode·程序人生·架构·前端框架·html
山顶夕景1 天前
【LLM应用】Codex & Codex CLI使用
大模型·llm·ai编程
行云流水6261 天前
前端树形结构实现勾选,半勾选,取消勾选。
前端·算法
diudiu_331 天前
web漏洞--认证缺陷
java·前端·网络
阿珊和她的猫1 天前
<video>` 和 `<audio>` 标签的常用属性解析
前端
LSL666_1 天前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
草梅友仁1 天前
草梅 Auth 1.11.1 版本发布与 AI 辅助代码重构实践 | 2025 年第 49 周草梅周报
开源·github·ai编程
yinuo1 天前
前端跨页面通讯终极指南⑤:window.name 用法全解析
前端