cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。

本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。

上一篇博客,我们已经介绍了为何使用cursor对谷粒商城重构。并且下载了cursor。这一篇文章,我们将对cursor进行快速入门。如果您已经掌握了cursor使用,可以跳过这一章。

一、hello,cursor

我们先试试修改代码,很傻瓜。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、图书管理系统需求

现在你已经会用cursor了,让我们愉快的做个小练习,构建一个图书管理系统吧了。
在这里插入图片描述
先让chatgpt帮我生成个需求。
在这里插入图片描述
再让它推荐下使用的技术栈。

最后自己选择下模块和技术栈,确定图书管理系统需求如下。
在这里插入图片描述

这里打个广告,需要使用chatgpt镜像(无需科学上网),可以私聊博主哟。

三、创建项目

IDEA创建项目。
在这里插入图片描述
接下来我们创建一下前端项目。这里需要用到node。

补充:Node是什么?npm 是什么?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它使得 JavaScript
可以在服务器端运行,而不仅仅是在浏览器里。类似于后端的tomcat。

npm 是 Node.js 的包管理工具,用于安装和管理 Node.js 项目中的依赖包(库和工具)。类似于后端的Maven。

下载node.js,官网链接:https://nodejs.org/zh-cn
在这里插入图片描述
安装后,测试下。
在这里插入图片描述
重启IDEA,使其能够重新加载环境变量,检测到node。在IDEA终端测试上述命令。

注:如果遇到下面bug。
在这里插入图片描述
请打开 PowerShell 终端,使用管理员权限运行 PowerShell(右键点击 PowerShell 图标,选择“以管理员身份运行”)。
输入以下命令来允许执行脚本:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

初始化个demo。下面这个命令的作用是使用 npm 来初始化一个新的 Vue.js 项目,并自动安装最新版本的 Vue CLI 创建的项目模板。

npm create vite@latest

项目名称为library-ui。framework选择vue。语言选择javascript。会看到如下提示。

在这里插入图片描述
按照提示,执行命令。不过,我们使用pnpm代替npm。如果您的环境里还没有pnpm,可以按照如下方式安装下。

## 换源(如果没有换过源,或者失效无法正常安装,执行这个操作,若我的镜像源失效,可自行搜索:npm换源)
npm config set registry https://registry.npmmirror.com
## 安装
npm install -g pnpm

补充:什么是pnpm?和npm有什么区别?

pnpm 是一个替代 npm 的 JavaScript 包管理器,它的目标是提高依赖包的安装速度并节省磁盘空间。
相比npm,它有下面优点。
速度:pnpm 比 npm 更快,特别是在安装大项目或者多个项目之间共享依赖时。
磁盘空间:pnpm 更节省磁盘空间,因为它使用硬链接来共享依赖。
依赖管理:pnpm 的依赖结构更为高效,不会重复安装相同版本的包。

接着执行命令。

cd library-ui
# 用来安装依赖包。
pnpm install
# 启动开发服务器,通常用于本地开发和调试。
pnpm run dev

访问浏览器,okk。好漂亮。
在这里插入图片描述
IDEA终端:ctrl + C关闭。现在我们已经把后端、前端的项目初始化好了。

在cursor中,打开刚刚的项目。

在这里插入图片描述

导入项目后,唤起我们的cursor对话窗口。我的快捷键是ctrl+L。如果您的不是,可以参考下图自行搜索下。
在这里插入图片描述

四、后端代码快速生成

在对话窗口,输入如下提示词,回车。

@Codebase 这个项目是一个springboot+vue3的项目脚手架,其中前端vue的代码写在library-ui目录下。
接下来我会用这个项目创建一个图书管理系统,包含后端接口和前端页面。
在我描述具体需求之前不要生成代码

注:1、在 Cursor 中,@Codebase 是一种用于增强对话框中代码相关查询的功能。 通过在对话框中输入 @Codebase,Cursor 会扫描你的代码库,收集与查询相关的文件和代码块,并根据相关性对其进行排序,以提供更准确的回答。

2、在软件开发中,脚手架(Scaffolding)指的是一套自动化工具或框架,旨在帮助开发者快速搭建项目的基础结构和开发环境。 这些工具通常会自动生成项目的目录结构、配置文件、构建脚本、测试工具和依赖管理工具等,从而减少开发者在项目启动阶段需要手动完成的工作量。 使用脚手架,开发者可以更加专注于业务逻辑的实现,而不是在项目配置上花费大量时间我们前面安装的Vue CLI 就是一个广受欢迎的脚手架工具

接下来,把具体的业务需求告知cursor。

在这里插入图片描述
可以直接把图片给他,ctrl c,ctrl v即可。牛不。

在这里插入图片描述

接下来让它帮忙设计数据库:
请开始设计数据库。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
接下来,不一一演示了。可以自行探索。选择右下角的accept all。

五、进阶:cursorrules

如何保证ai更听话呢?

在这里,给大家提供一个有用的提示词。cursor rule,也就是,让cursor生成代码时,遵循的规范。

你是一个 web 应用程序开发专家,精通 Spring Boot、Vue3、Element Plus 和相关技术栈。你的任务是帮助我构建一个清晰、高效、可维护的全栈项目。
1、代码风格与结构规范
要求编写清晰、高效、有良好注释的代码。提供准确的 Spring Boot和Vue3示例。
遵循 Spring Boot 和 Vue3 的最佳实践和约定。
使用 RESTful API 设计模式构建后端服务。
前后端代码遵循命名规范:变量和方法名使用 camelCase(驼峰式),类名使用 PascalCase(帕斯卡式)
项目结构分明
Spring Boot 后端:按controller、service、repository、model、configuration 模块组织代码
Vue3 前端:按views、components、store、router、utils、assets组织代码

2、Spring Boot 规范
使用 Spring Boot Starter 快速搭建项目和依赖。
正确使用常用注解(@SpringBootApplication、@RestController、@Service)
使用 @ControllerAdvice 和 @ExceptionHandler 实现全局异常处理
使用 Spring Data JPA 简化数据库操作

3、Vue3 规范
使用

4、测试与调试
后端测试:
编写单元测试(JUnit 5)和集成测试(@SpringBootTest)
使用 MockMvc 测试控制器层
前端测试:
使用 Vitest 和 Vue Test Utils 编写组件单元测试
测试覆盖率要达到 80% 以上
提交代码前进行代码审查,并使用 SLF4J 记录日志

5、性能与安全
实现缓存策略(如使用 Spring Cache 进行缓存管理)
后端异步处理使用 @Async 注解,必要时使用 WebFlux 实现响应式编程
使用 Spring Security 实现认证和授权,密码采用 BCrypt 加密
配置 CORS,确保跨域访问正常

6、配置与部署
使用 application.yml 配置文件,按环境(开发、测试、生产)划分配置
使用 Docker 容器化应用,按需添加 CI/CD 流程
通过 Spring Boot Actuator 实现监控和指标收集

7、API 文档
使用 Springdoc OpenAPI 生成接口 API 文档
提供测试集成调试工具(如 Postman Collection)

8、最终项目目标
构建一个功能完整、用户友好的应用程序,包括:用户管理、权限分配、数据展示等核心功能,注重代码质量和可维护性

用以上规范,生成代码和建议。

在项目目录下新建.cursorrules文件。把上述规则粘过去即可。
在这里插入图片描述

更多参考资料,可以参考官方文档:https://cursor.document.top/tips/usage/set-rules/

在这里插入图片描述

6、报错解决

在这里插入图片描述

可以直接alt+enter,让ai帮忙解决。
在这里插入图片描述
在这里插入图片描述

7、Cusor的PJ(仅供学习)

如果您看到提示:Too many free trial accounts used on this machine,说明您需要充值了。

如果是学习用途,可以参考下列内容,进行和谐。

下载:https://github.com/bestK/cursor-fake-machine/releases/download/v0.0.2/cursor-fake-machine-0.0.2.vsix

查看下载扩展的快捷键,输入快捷键。
在这里插入图片描述
文件拖进来。自动安装后如图。
在这里插入图片描述

输入ctrl+shift+P,输入fake,回车。
在这里插入图片描述
登录官网,将你远程账户删除。
在这里插入图片描述

重新登录远程账户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)

引言:个人认为,“造数据”是一个数据分析师的一项基本技能,当然啦,“造数据”不是说胡编乱造,而是根据自己的需求去构造一些模拟数据集,用于测试等用途,而且使用虚拟数据不用担心数据隐私和安全…

【全栈开发】----Mysql基本配置与使用

本篇是在已下载Mysql的情况下进行的,若还未下载或未创建Mysql服务,请转到这篇: 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)_mysql8.0.40下载安装教程-CSDN博客 本文对于mysql的操作均使用控制台sql原生代码…

微软宣布Win11 24H2进入新阶段!设备将自动下载更新

快科技1月19日消息,微软于1月16日更新了支持文档,宣布Windows 11 24H2进入新阶段。 24H2更新于2024年10月1日发布,此前为可选升级,如今微软开始在兼容的Windows 11设备上自动下载并安装24H2版本。 微软表示:“运行Wi…

15. helm包管理器

helm包管理器 一、helm包管理器介绍、安装1、helm包管理器2、核心概念2.1 chart2.2 repository2.3 release 3、helm安装3.1 安装helm3.2 添加helm国内仓库 二、使用helm安装MySQL 8.01、搜索mysql8.0 chart包2、下载mysql8.0 chart包3、按需定制values.yaml3.1 values.yaml文件…

庄小焱——2024年博文总结与展望

摘要 大家好,我是庄小焱。岁末回首,2024 年是我在个人成长、博客创作以及生活平衡方面收获颇丰的一年。这一年的经历如同璀璨星辰,照亮了我前行的道路,也为未来的发展奠定了坚实基础。 1. 个人成长与突破 在 2024 年&#xff0c…

OSCP - Proving Grounds - BullyBox

主要知识点 如果发现有域名,则可以加入/etc/hosts后重新执行nmap,nikto等扫描dirsearch的时候可以使用完整一些的字典文件,避免漏掉信息.git dump 具体步骤 执行nmap 扫描,发现 80和22端口开放,访问后发现被重定向到 bullybox.local Star…

Linux中的基本指令(一)

一、Linux中指令的存在意义 Linux中,通过输入指令来让操作系统执行,以此达到控制操作系统的目的,类似于Windows中的双击,右键新建文件,新建文件夹等 1.补:关于屏幕的几个操作指令 ①清屏指令 clear 回…

C/C++内存管理(超详解)

目录 1.C/C内存分布 2.C语言动态内存管理 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 3.C动态内存管理 3.1new/delete操作内置类型 3.2new/delete操作自定义类型 3.3operator new与operator delete函数 3.4定位new表达式(placement-new) 1.C/C内存分布 内存中是如…

【React】静态组件动态组件

目录 静态组件动态组件创建一个构造函数(类)使用 class 实现组件**使用 function 实现类组件** 静态组件 函数组件是静态组件: 组件第一次渲染完毕后,无法基于内部的某些操作让组件更新「无法实现自更新」;但是,如果调用它的父组…

前端【3】--CSS布局,CSS实现横向布局,盒子模型

盒子分类 1、块级盒子 2、内联级盒子 3、内联块级盒子 4、弹性盒子 5、盒子内部分区 方法一:使用 float 普通盒子实现横向布局 方法二:使用 display: inline-block 内联块级元素实现横向布局 方法三:使用弹性盒子 flexbox&#xff0…

Python实现过年烟花效果及打包成可执行文件

博客:Python实现过年烟花效果及打包成可执行文件 在这篇博客中,我们将详细讲解如何使用Python和Pygame库实现一个过年烟花效果的程序,并介绍如何将Python脚本打包成Windows上可以直接执行的exe文件。我们将从代码的各个模块入手,…

新星杯-ESP32智能硬件开发--ESP32的I/O组成-系统中断矩阵

本博文内容导读📕🎉🔥 ESP32开发板的中断矩阵、功能描述与实现、相关API和示例程序进行介绍 ESP32中断矩阵将任一外部中断源单独分配到每个CPU的任一外部中断上,提供了强大的灵活性,能适应不同的应用需求。 ESP32中断主…

SpringBoot2 + Flowable(UI)

文章目录 引言I 技术栈软件架构基于 Vue.js 和 Element UI 的后台管理系统工程结构II 依赖rest,logic,conf 的依赖工作流flowable jar包flowable-ui所需jar包III 配置jdbc 配置 nullCatalogMeansCurrent = true引言 I 技术栈 软件架构 前端基于vue 、element-ui框架分模块设…

.Net 6.0 .Net7.0 .Net8.0 .Net9.0 使用 Serilog 按日志等级写入日志及 appsetting.json 配置方式实现

前言 最近使用最新版的Serilog记录日志时,发现以前有些关于Serilog的Nuget弃用了,最关键的是有些配置写法也改变,于是就整理了一下最新版的Serilog配置方式(appsetting.json)的使用 说明:我是用的.Net6,最新长期支持…

sprnigboot集成Memcached

安装Memcached 下载地址 32位系统 1.2.5版本:http://static.jyshare.com/download/memcached-1.2.5-win32-bin.zip 32位系统 1.2.6版本:http://static.jyshare.com/download/memcached-1.2.6-win32-bin.zip 32位系统 1.4.4版本:http://stati…

【数据分析】02- A/B 测试:玩转假设检验、t 检验与卡方检验

一、背景:当“审判”成为科学 1.1 虚拟场景——法庭审判 想象这样一个场景:有一天,你在王国里担任“首席审判官”。你面前站着一位嫌疑人,有人指控他说“偷了国王珍贵的金冠”。但究竟是他干的,还是他是被冤枉的&…

3dmax LOGO的符号、意义和历史,渲染100邀请码1a12

Autodesk 3ds Max 是一款 3D 建模、动画和渲染软件,由 Autodesk, Inc. 于 1996 年开发,其功能是能够创建复杂的数字场景和视觉效果,被专业建筑师、设计师和视频游戏创作者广泛使用,提供了七种语言的 Windows 版本,没有…

线段树优化dp,abc389F - Rated Range

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 F - Rated Range 二、解题报告 1、思路分析 考虑定义 f(i, j) 为 初始分…

青少年CTF练习平台 EasyMD5解题思路

题目 EasyMD5 PHP弱类型/弱等于的判断 翻译 上传之后网页提示:Not a PDF! angry!!! get out from my page 修改文件后缀为pdf 再次上传,答案出来了 s878926199a s155964671a 成功获取flag

Amazon MSK 开启 Public 访问 SASL 配置的方法

1. 开启 MSK Public 1.1 配置 MSK 参数 进入 MSK 控制台页面,点击左侧菜单 Cluster configuration。选择已有配置,或者创建新配置。在配置中添加参数 allow.everyone.if.no.acl.foundfalse修改集群配置,选择到新添加的配置。 1.2 开启 Pu…