AI编程辅助工具和cursor的使用
目录
AI编程辅助工具和cursor的使用
前言
Cursor简介
1.1 cursor介绍
1.2 官网使用
1.3 cursor操作
Cursor使用心得
2.1 关于前后端开发
关于ai你了解多少,单从ai应用方面来说,甚至于说我了解他,才不超过三年,但是他已经在我的生活中埋下了不可磨灭的印记。一开始对于ai,还停留在与其聊天,问他问题的方向,到后来,代码问题的解决,训练成某个方向的聊天人等等。ai的应用领域越来越广,甚至发展速度可以说有点出人意料了。
对于程序员来说,很重要的一部分其实就是编码能力,虽然以前编码部分,很大一部分需要人力来实现,但是随着现在ai的发展,已经有了很多不同方向的ai编程工具浮出市场;比如前端的bolt,V0;已经可以制作很全面的前端框架了,而对于其他方面的编码,其实各个ai也已经能够学习到大致的编码方式了。设置不只是说仅限于前后端编程,移动端app编程,PC端应用程序编程,甚至linux shell编程等等ai都已经能够学习到很多了。
其实,最近我也使用ai实现了很多关于不同方面的项目,感觉上手难度都比较低;最近我主要在使用的辅助编程工具是cursor,对于cursor来说,他不仅集成了很多不同的大模型去实现代码编程,而且还对应训练了很多关于编程方面的语言模型。可以说,使用体验非常好了。虽然也听过说过很多其他的可以编写后端的编程辅助工具,但是这里我就主要介绍一下cursor,以及我的一些使用经历,如果大家感兴趣这一方面,还可以继续去了解一下codeium,Copilot等编程工具,相信你一定会喜欢的。
cursor是一个集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手,从下图中的页面可以看出cursor的布局和vscode基本一致,并且cursor的使用操作也和vscode一致,包括extension下载、python编译器配置、远程服务器连接和settings等,如果你是资深vscode用户,那么恭喜你可以直接无缝衔接cursor。以下就是我的cursor使用界面:
另外,cursor可以直接在官网下载安装即可,并且注册账号,在第一次打开cursor时输入账号信息即可。Cursor - The AI Code Editor:Cursor - The AI Code Editor
第一次使用cursor的用户可以有十四天的试用时间,这十四天是有2000次对话,50慢速额外请求(但其实使用起来,前几天自我感觉和专业版区别不大,但是大概五六天之后就会变得很慢)。如果你想升级到专业版,如果只是日常需求也不一定要去官网购买完整的,具体该怎么做其实有还有很多方法。
这里还有一些关于cursor的教程:
学习 Cursor ,拥抱 AI 编程 | Cursor 101
1.3 cursor操作
cursor最常用的快捷键就四个,非常好记:
Tab:自动填充
Ctrl+K:编辑代码
Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码
Ctrl+i:编辑整个项目代码(跨文件编辑代码)
但其实本人这里用的最多的带式Ctrl+i,他会学习你的整个项目代码,然后如果需要实现某个功能或者界面只需要提示他即可。
Cursor使用心得
当你需要开发一个前后端项目的时候,如果前后端分离,你可以先想好关于给cursor的提示词,告诉他你即将使用的语言,框架,数据库,以及持久层连接技术,文件存储目录等信息等都可以提前告诉cursor:
比如这里我有几个关于启动cursor的一些例子:
1.前端启动:
你好,这是一个店长积分管理系统,主要使用react框架,主要页面文件在pages文件目录下,我现在需要设计的这个系统,主要有两个身份可以登录,一个是店长,另一个是管理员;对于管理员而言,有可获得积分项目管理,用户管理,奖品管理,兑换管理,数据报表以及系统设置部分,而对于店长来说,可以看到仪表盘,我的积分,积分兑换三个表目。前端对后端的请求使用的是import { api } from '../services/api';请你根据以上信息,完成后续问题(这里最好是传入api.ts,传入启动ts,为了让他更好修改api接口部分):
(注意这里的前端启动,你最好是指定好前端对后端请求使用的是什么,否则以后如果他会给你创建太多请求的地方,需要修改请求头的话就比较难做)
2.后端启动:
你好,这是一个店长积分管理系统,我后端使用的是springboot,我的后端文件都放在com.example.demo里面,并且数据库使用的是mybatis-plus,如果我需要你帮我完成api,请你给出相应的简略api接口文档,首先请你完成下面问题(这里需要传入数据库的sql文件,最好是初始化数据库文件和数据库示例数据导入文件):
(这里给出数据库文件之后,他才能更好的返回相应数据)
数据接口部分
(1)后端部分:
请你再帮我写个api,传入请求记录id,以及变更状态,如果是已批准,则将状态改为已批准即可;如果是已拒绝,则需要去reward表里面找到对应的奖励所需积分,然后将这个积分加入对应人id的current_points表里面,然后再改变状态;如果是已完成,也只需要改变状态即可。(这里我的api没有返回,如果你有返回值也可以告诉他你想要返回什么数据,什么类型的数据,或者如果数据过多,难以描述,只要你给出数据库信息,你也可以告诉他需要返回每条某某记录,所有用户等等)
(2)前端部分:
我现在有一个api,需要传入id和状态,api文档如下所示:
接口地址:/api/points/exchange/audit
请求方法:POST
请求体示例:
{
"id": 1,
"status": "已拒绝" // 或 "已批准" 或 "已完成"
}
主要功能:
如果状态变更为"已批准":
只更新状态为已批准
如果状态变更为"已拒绝":
查询对应奖品的所需积分
将积分返还给用户(更新 current_points 表)
增加奖品库存
更新状态为已拒绝
如果状态变更为"已完成":
只更新状态为已完成
请你完成操作部分:如果点击对,则传入已批准;如果点击错,则传入已拒绝;如果点击完成兑换,则传入已完成。
于是乎,这样我就可以得到一个审批界面,一个功能完整的审批界面:
其实这样就能做到大部分的网页制作,因为踩过很多坑,后来才发现这样子去告诉大模型你的有关需求,可能是最方便制作的:
- 使用技术
- 文件目录
- 重要文件
- 指示说明
- 系统介绍
那么如果按照上述的要求告诉cursor,其实还能得到很多不同的应用模板。
当然,你也可以将这些重要的东西放在prompt里面(Rules For AI)
这是一篇我参考到其他文章的prompt设置(如果不了解prompt的小伙伴可以去学习一下什么是prompt engineering:什么是提示工程(Prompt Engineering) - AI百科知识 | AI工具集):
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。
# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。
在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。
## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。
### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。
### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。
## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中
当然你也可以不将他放到readme文件里面,我大部分使用的是生成一个api文档,将他放到api文档里面。
参考文献
全网最全面详细的Cursor使用教程,让开发变成聊天一样容易-CSDN博客
关于Cursor使用的小白第一视角_cursor教程-CSDN博客