为了更好的使用Cursor的AI编程效果,也为了让从IDEA切换到Cursor更方便,今天继续在Curosr里面进行一些配置
一、快捷键
快捷键汇总 : 请先安装插件 IntelliJ IDEA Keybindings
- 打开左侧导航栏
command + b
- 打开底部导航栏
command + j
- 打开右边AI窗口
command + i
- 切换AI窗口模式
command + .
- 切换AI窗口模型
command + /
- 打开Cursor配置
shift + command + j
- 打开 setting
command + ,
- 接口到实现类
option + command + b
- 定位代码行数
comand + L
- 搜接口
双击shift + #
- 查看当前类的情况
双击shift + @
- 变量引用
command + 鼠标左键
https://www.bilibili.com/video/BV1WRX8YAEYi
看过很多使用Cursor,一天完成一个应用的文章或视频,前些日子脑子刚好有一个想法——搭建一个点餐管理系统,便用Cursor完成了前后端的开发。
具体功能可以看视频里面的演示。也算是从0到1完成了一个小的项目构建,来说说对它的看法。
Curosr 可以完成从 0到1的完整项目搭建吗?
https://www.bilibili.com/video/BV1t9QDY8EQj
学习之前,需要知道什么是MCP(Model Context Protocol,模型上下文协议),官方的解释如下
MCP 是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。
有一张配置表,表中有一个类型字段, type 有A、B 两种
产品提出要求,当用户选择不同类型的时候出现不同的交互
- 选择 type-A的时候,页面新增两个字段 X和Y。X是个开关字段,开了之后就可以选择Y
- 选择 type-B的时候,页面隐藏这两个字段
注:即便是选择 type-A,Y也并不是必填的
这篇文章来教大家如何使用Cursor来开发Java,开始之前先来回答一个问题:Cursor是基于VSCODE二开的,可以用来写Java吗?
答案是可以的,就我使用了一段时间来说,虽然不如IDEA那么顺手,但它的Ai功能完全掩盖其它的不足。
一、Cursor的安装
直接去官网下载: https://www.cursor.com , 交互什么的和vscode一样(毕竟是基于vscode二开的)
一、开始
最近公司要求使用Ai提效,我这边的一个主题是使用AI生成Java单元测试。从结果来看,要比预期好很多,最开始的目标是在写单元测试的效率提升 30%,从结果来看是要大于这个预期的。
从结果来看就是 Cursor + 提示词,生成单元测试,如果想直接看结果可以直接跳到【四、使用Cursor】,如果想要看看对比,可以一步步往下看。
最近有一个需求,需要把Nacos上某个配置文件,从A_data-id迁移到B_data-id上。
本质上就是看删除某个配置,会不会影响到正在运行的服务。我们知道Nacos有一个功能是热更新,在Nacos控制台上修改变量会实时被应用感知,那如果删除某个热更新变量,会不会导致我们正在运行的环境这个值为 null呢?
答案是不会
比如某个变量原本的值是 1,在Nacos删除这个变量发布后,未重启的服务读取的还是 1。
这虽然和理解上热更新有一点点差异(代码的值不应该和Nacos时刻保持一致吗?)但我个人觉得也合理,这是一种特殊的保护机制。
服务的拆分相对偏理论,不像代码对错一眼明了,下面关于微服务的拆分也只是我个人的经历和见解。
一、微服务的目的
在开始的时候项目几乎都是单体,只有大单体和小单体之分。单体存在的主要问题是:牵一发而动全身。
想要避免这个问题,最好的解决办法就是分而治之。大部分时候的开发都是对于某个模块的某个功能进行开发,拆分成微服务之后就可以最大程度避免牵一发而动全身。(也没办法全然避免,服务之间也是有依赖的)
拆分成微服务之后就会带来其它的很多问题,比如服务注册、发现、服务之间调用、分布式事务,服务增多本身的维护也会变得更加困难。