Vibe Coding 使用心得

1.确定总体需求
在开发前我们需要明确需求,知道我们要做什么,怎么做,得到什么交付件。
2.需求描述
这一步就是要求我们说清楚我们要做什么。
最重要的就是我们需要列出我们的核心功能,例如基本的用户登录注册功能,也可以在一个用户的视角说明功能,通过说明用户可以进行什么操作说明。
我们也可以说清楚我们所需要的性能要求,安全要求,并且我们需要适配什么平台。
3.技术描述
这一步如果你知道什么功能使用什么技术背景。
正向使用技术:我们要求工具使用指定的技术进行开发,前端(Vue3/Vite/TS)、后端(Node.js/Express、Python/FastAPI)等等。
反向技术:我们要求不要模型不要使用某些工具开发,例如数据库不是用原生SQL语句等等。
4.交付件描述
这一步就是我们需要得到的内容是什么,主要包括以下几个方面:
项目的结构目录,Readme,单元测试,执行和部署步骤,API文档等内容。

------------------以上我们可以得到一个基础的prompt内容:
我需要开发一个法律隐私生成项目,该项目是前后端分离的。
功能要求如下:
要求有一个前端界面,该界面包含2个输入模式,问卷模式和自由输入模式,并且具备用户登录功能。
后端界面对接dify后端workflow接口,完成法律隐私的生成。
技术要求如下:
前端使用react框架完成,后端使用python/FastAPI完成。
交付件要求如下:
交付物:项目的结构目录,Readme,单元测试,执行和部署步骤,API文档。

额外步骤:
1.首先让AI输出设计方案,然后再编码
可以添加额外的提示词:
请根据我提出的以上需求,首先输出以下内容:
项目的目录结构,核心模块的交互逻辑,关键接口的定义,核心算法的逻辑等。
这样的好处在于,我们可以适当调整他的项目架构和逻辑,是否合理是否考虑周全。
2.分模块生成代码
让AI根据模块生成代码:例如首先生成前端的自由写入模块的代码,再生成登录模块,随后生成和Dify的交互模块。
每一次完成一个模块的生成,需要干2个事情。
输出该模块的实现逻辑,避免维护困难。
如何验证,生成测试用例,查看功能是否可验证。
期间遇到问题或者不对的地方都可以让他修复,并且修改。

纠错与修复
当我们遇到报错的内容的时候,我们只需要讲完整的错误日志以及相关的出错的代码,以及是如果出错的操作步骤告诉AI,然后说明一下:请帮我排查问题并且修改代码即可。
🤔 我在执行xxxxxx动作的报错:
报错日志:xxxxxxx
请帮我排查问题并修改代码。
最好的办法就是没生成一次步骤就让他生成一次单元测试,并且手动检查一下接口的问题。
增加维护性
因为我们每一步都会让它生成一次功能的描述和项目的结构,因此我们对项目的整体的逻辑一定是有一个整体的把控的。
因此我们需要让AI生成Readme文档,里面说明了项目的部署情况,API情况,以及每个模块的交互和内部实现逻辑等。
如果后续有更新那个也可以使用一下提示词:
现有法律隐私生成Agent已实现xxxxx功能,现在需要新增xxxxx功能:
1.需求描述:xxxxxx
2.技术描述:xxxx
3.交付件描述:xxxxxx
4.约束:请注意xxxxx
请基于现有项目结构,生成响应的代码,解释内部逻辑,并且补充测试用例以及模块交互说明在对应文档中。

总结:明确需求 → 设计方案 → 分模块生成(期间逐段验证)→ 调试优化 → 文档补全(可维护性) #AI Coding的使用心得#
全部评论

相关推荐

03-28 10:27
已编辑
门头沟学院 Java
没有手撕算法环节一面 技术面1.==和equal的区别2.主要考察的是对jvm的理解吧静态变量 实例变量 局部变量的存储在jvm哪个位置,什么时候会释放2.集合遍历的时候能删除元素吗3.SpringBean的生命周期4.设计模式 讲一讲策略模式 然后问了一下优缺点5.如何做一个接口限流 一分钟限制一百次?我答用redis在拦截器层直接做就好了 有请求过来用户标识对应的接口路径请求次数+1  用过期时间来维护一分钟然后我突然想到了边界性问题 万一是还剩五秒过期请求了80次然后过期后的五秒钟又请求了80次 不是还会突破限流吗 然后我在那里想这个 卡了一下面试官问有什么疑问吗 我重新回答了一下 说可能会临界窗口突刺 这种情况要用滑动窗口了 他说没事 不用考虑这种复杂情况 就是很简单的做限流就好了 所以考察的应该是redis的简单使用吧6.在5的基础上问的 说这个接口限流要一起给同事用 怎么操作 其实我没太听明白这道题的意思 我问了两遍啥意思 还是没太听懂 最后他引导了我一下 我答出来了 原来考察的是aop 用注解的形式对方法进行功能增强拓展7.在6的基础上问了spring三大特性应该就没了…中间可能有一点点遗漏的问题 前一段时间面的 不太记得了 但一面整体难度偏低二面 技术面纯项目 无自我介绍1.让我说说我的项目2.问我项目中用到微信支付 出现一笔订单支付两次的情况怎么办 第一次支付了回调没过来 第二次又支付了 这一点我没考虑过 我一直觉得一笔订单只能支付一次 支付过的订单就没法支付了 微信服务端会替我处理好 下来问了问ai 还真有可能出现这种情况 还是太才疏学浅了3.问微信支付回调中 如果我代码逻辑有问题 或者网络抖动 没有回调成功 边界性问题我怎么处理的我稍微答出来一点点 微信回调避免业务逻辑耦合 直接推rabbitmq处理 其它是真想不到了 因为我做的平台和pdd这种电商平台是完全不一样的 实体产品可能网络恢复后还可以做重发货处理 但我是虚拟产品 用户也不用注册没有标识 都是匿名操作 退出页面 我也没办法继续操作了 只能用户手动补偿 我觉得面试官没太理解我的项目的机制 他直接按传统的货物交易平台来直接问我经典的场景问题了 导致我对他的问题感觉无从下手 因为很多策略都不通用4.问我对ai的了解和使用5.分享一下用ai的技巧6.prompt在哪个文件里改…基本就没了 二面整体感觉强度挺大的 每一个点都要刨根问底 你回答的时候他觉得你会的就会直接跳过 然后你不会的 他就会一直逮着问 问的很具体很细致 给我营造了一种我什么都答不上来的感觉 到后面直接压力爆炸了 感觉二面应该是G了
查看14道真题和解析
点赞 评论 收藏
分享
先说结论,我认为今年是否有一段暑期实习对秋招的影响会比以往都要大(甚至实习内容在不在ai应用的链路上都会有很大的区别)因为众所周知的原因,在年后所有的中大厂都开始推进代码ai率,而是否在实习会关系到两点:1.是否能关注到最前沿的有关于ai应用的实践 2.是否能在日常中去学习了解这些最前沿的技术就我暑期面的这么多场面试来说,越往后面试官明显对于agent llm skill mcp spec这些和ai领域有关的名词提问的占比越高,问的深度也越深,那么我们能从哪些地方去实际掌握到这些信息呢?最简单的来说,你如果在中大厂,你会主动/被动地开始学习并且使用这些最新应用,而且还有内部的技术论坛可以不断的有人教你最新技术的核心原理。但是假如说你不在实习的话,你想要了解这些信息就会困难很多。然而相比于了解和使用这些新技术,更大的差距在于实习可以在一个大的项目中总结经验,发现目前技术的缺点,这和没有实习甚至项目都没办法上线相比是完全不一样的。反映到面试上就是一个对什么问题都能弹几句自己的看法和改进措施,另一个却只能一直说自己不太了解,这对于面试通过率明显是毁灭性的降低。ai时代的另一个特点就是迭代速度极快,在年前还很火很好用的openspec框架,对于现在最新大模型的高性能来说,与其用重量级的openspec还不如用轻量级的plan mode框架,能带来时间与正确率的双提升,然而现在很多面试官(包括公司)还会去强调spec框架的好用,在大厂中的人尚且如此,没有实习的人又怎么能去跟上最新的发展。说了这么多,你一定觉得我有什么好的方法能够解决这个困境吧,很遗憾我并没有,我本身也是在一个不断学习的过程中,是不是从公司内部论坛上偷一些最新理解更新自己的知识库,但是在实际面试中有一些相关的问题我还是没有办法回答得很深。但是我仍然可以给出一些意见:1.不管你要应聘的岗位是什么,你一定要从agent开始分解(包括训练和使用),了解其中的每个概念是做什么的,常用的架构是什么,设计初衷是什么等,保证出现一个相关的名词你不会哑口无言。2.流行的技术背后的核心和出发点,和前一代的区别在哪,虽然可能没办法接触到最最前沿的应用,但是其实大部分人都是有一些滞后的,一般而言对开发也不要求做到完美无缺。ps:发完上一个帖子之后面试就很顺利,也是顺利找到下一家了,还有几家在流程中,什么时候能让我体验一下选offer的快乐
查看3道真题和解析
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务