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,回车。
在这里插入图片描述
登录官网,将你远程账户删除。
在这里插入图片描述

重新登录远程账户。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Qualcomm]Qualcomm MDM9607 SDK代码下载操作说明

登录Qualcomm CreatePoing Qualcomm CreatePointhttps://createpoint.qti.qua

【15】Word:互联网发展状况❗

目录 题目​ NO2 NO3 NO4 NO5 NO6 NO7.8.9 NO7 NO8 NO9 NO10 题目 NO2 布局→页面设置→纸张:A4→页边距:上下左右→版式:页眉/页脚页码范围:多页:对称页边距→内侧/外侧→装订线 NO3 首先为文档应用内置…

ROS1学习记录

我使用的是ubuntu20.04下的ROS Noetic版本,是ROS 1 的最后一个长期支持(LTS)版本,将于2025年5月停止维护 一,Linux系统基本操作 ctrlaltt快速打开终端 1,pwd命令 查看当前终端所在路径 使用方式&#…

Go Ebiten小游戏开发:贪吃蛇

贪吃蛇是一款经典的小游戏,玩法简单却充满乐趣。本文将介绍如何使用 Go 语言和 Ebiten 游戏引擎开发一个简单的贪吃蛇游戏。通过这个项目,你可以学习到游戏开发的基本流程、Ebiten 的使用方法以及如何用 Go 实现游戏逻辑。 项目简介 贪吃蛇的核心玩法是…

ASP.NET Core - .NET 6 以上版本的入口文件

ASP.NET Core - .NET 6 以上版本的入口文件 自从.NET 6 开始,微软对应用的入口文件进行了调整,移除了 Main 方法和 Startup 文件,使用顶级语句的写法,将应用初始化的相关配置和操作全部集中在 Program.cs 文件中,如下&…

Chapter1:初见C#

参考书籍:《C#边做边学》; 1.初见C# 1.1 C#简介 C # {\rm C\#} C#编写了许多完成常用功能的程序放在系统中,把系统中包含的内容按功能分成多个部分,每部分放在一个命名空间中,导入命名空间语法格式如下: /…

React封装倒计时按钮

背景 在开发过程中,经常需要使用到倒计时的场景,当用户点击后,按钮进行倒计时,然后等待邮件或者短信发送,每次都写重复代码,会让代码显得臃肿,所以封装一个组件来减少耦合 创建一个倒计时组件…

【编译构建】用cmake编译libjpeg动态库并实现转灰度图片

先编译出libjepg动态库 1、下载libjpeg源码: https://github.com/libjpeg-turbo/libjpeg-turbo 2、编译出动态库或静态库 写一个编译脚本,用cmake构建。 #!/bin/bash# 定义变量 SOURCE_DIR"/home/user/libjpeg-turbo-main" BUILD_DIR"${SOURCE_…

ORB-SLAM2源码学习: Frame.cc: cv::Mat Frame::UnprojectStereo将某个特征点反投影到三维世界坐标系中

前言 这个函数是在跟踪线程中更新上一帧的函数中被调用。 1.函数声明 cv::Mat Frame::UnprojectStereo(const int &i) 2.函数定义 1.获取这个特征点的深度值。 const float z mvDepth[i];深度值由双目或 RGB-D 传感器获取。 在双目情况下,这个深度来自…

单片机存储器和C程序编译过程

1、 单片机存储器 只读存储器不是并列关系,是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据,存的是CPU正在使用的数据 永久存数据,存的是操作系统启动程序或指令 断电易失 …

【Excel】【VBA】双列排序:坐标从Y从大到小排列之后相同Y坐标的行再对X从小到大排列

Excel VBA 双列排序 功能概述 这段VBA代码实现了Excel中的双列排序功能,具体是: 跳过前3行表头先按C列数据从大到小排序在C列值相同的情况下,按B列从大到小排序排序时保持整行数据的完整性 流程图 #mermaid-svg-XJERemQluZlM4K8l {font-fa…

【25考研】西南交通大学软件工程复试攻略!

一、复试内容 复试对考生的既往学业情况、外语听说交流能力、专业素质和科研创新能力,以及综合素质和一贯表现等进行全面考查,主要考核内容包括思想政治素质和道德品质、外语听说能力、专业素质和能力,综合素质及能力。考核由上机考试和面试两部分组成&a…

运行fastGPT 第四步 配置ONE API 添加模型

上次已经装好了所有的依赖和程序。 下面在网页中配置One API ,这个是大模型的接口。配置好了之后,就可以配置fastGPT了。 打开 OneAPI 页面 添加模型 这里要添加具体的付费模型的API接口填进来。 可以通过ip:3001访问OneAPI后台,**默认账号…

硬件知识:显示器发展历程介绍

目录 一、阴极射线管显示器(CRT) 二、等离子显示器(PDP) 三、液晶显示器(LCD) 四、传统LED显示器(LED) 五、有机发光二极管显示器(OLED) 六、量子点显示器(QD) 七、MiniLED显示器(MiniLED) 八、MicroLED显示器(MicroLED) 总结 显示器作为电子设备与人…

修复5.0.0r 64位版本浏览器和一些库找不到的问题

笔者在使用5.0.0r版本64位时踩过不少坑,先将相关修复方法分享 浏览器无法使用 base/startup/appspawn/appdata-sandbox64.json添加沙箱配置 相关修复pr:https://gitee.com/openharmony/startup_appspawn/pulls/1854/files {"src-path" : "/system…

【Flink系列】4. Flink运行时架构

4. Flink运行时架构 4.1 系统架构 Flink运行时架构——Standalone会话模式为例 1)作业管理器(JobManager) JobManager是一个Flink集群中任务管理和调度的核心,是控制应用执行的主进程。也就是说,每个应用都应该被…

IP层之分片包的整合处理

前言 在上一章节中,笔者就IP层的接收代码逻辑做了简单介绍,并对实现代码进行了逻辑梳理以及仿真测试,并且在上一章节中,就IP层的分片包问题,如何确定分片包是否存在已经进行了简单介绍,并在接收模块中&…

使用jupyter notebook没有正常打开浏览器的几种情况解决

迅速记录前期 1.下载 https://www.anaconda.com/products/individual 2.安装 直接默认安装就行 3.打开jupyter notebook 在开始菜单里面可以找到 4.遇到的问题解决 1.运行jupyter notebook,黑窗口自动关了 每次黑窗口迅速的加载完就自己关掉了 也没有打开新…

50.【8】BUUCTF WEB HardSql

进入靶场 随便输输 上order by ????????,被过滤了,继续找其他也被过滤的关键字 #,-- -,-- 都不行,尝试其他特殊字符后发现and,union,select,空格,都被过滤了 如下 我就不知…

中国石油大学(华东)自动评教工具(涵盖爬虫的基础知识,适合练手)

我开发了一个用于自动评教的工具,大家可以试着用用,下面是链接。 https://github.com/restrain11/auto_teachingEvaluate 可以点个星吗,感谢!🫡 以下是我在开发过程中学到的知识 以及 碰到的部分问题 目录 动态爬虫和静…