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.mzph.cn/pingmian/67447.shtml

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

相关文章

C# 并发和并行的区别--16

目录 并发和并行 一.并发 定义 特点 代码示例 代码解释 二.并行 定义 特点 在C#中的体现 代码示例 代码解释 三.并发和并行的区别 四 .如何在C#中选择并发还是并行 1.考虑任务类型 2.代码示例 3.注意事项 五.总结 并发和并行 在编程领域,并发和并行是两个密切…

Android SystemUI——车载CarSystemUI加载(八)

Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…

《零基础Go语言算法实战》【题目 4-3】请用 Go 语言编写一个验证栈序列是否为空的算法

《零基础Go语言算法实战》 【题目 4-3】请用 Go 语言编写一个验证栈序列是否为空的算法 给定两个具有不同值的 push 和 pop 数组序列,当且仅当这可能是对最初为空的栈的一系 列 push 和 pop 操作的结果时才返回 true。 【解答】 ① 思路。 这是考查栈操作的题…

网络学习记录5

二、学习网络知识: 1、透传: ①“透传”指的是数据在传输过程中不被交换机或其他网络设备解析、修改或处理,而是直接从一个端口传输到另一个端口。这种传输方式保持了数据的原始性和完整性,常用于需要高速、低延迟的数据传输场景…

浅谈云计算14 | 云存储技术

云存储技术 一、云计算网络存储技术基础1.1 网络存储的基本概念1.2云存储系统结构模型1.1.1 存储层1.1.2 基础管理层1.1.3 应用接口层1.1.4 访问层 1.2 网络存储技术分类 二、云计算网络存储技术特点2.1 超大规模与高可扩展性2.1.1 存储规模优势2.1.2 动态扩展机制 2.2 高可用性…

vscode项目依赖问题

必读 一定要将前端下拉的项目备份一下,很容易运行导致依赖报错,重新下载 命令 使用幽灵分解器安装 pnpm install 替代 npm install 设置淘宝NPM镜像源 yarn config set registry https://registry.npmmirror.com 查看目前依赖包的版本 npm list ant-d…

服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例

服务器数据恢复环境&故障: EMC Unity 400存储连接了2台硬盘柜。2台硬盘柜上一共有21块硬盘(520字节)。21块盘组建了2组RAID6:一组有11块硬盘,一组有10块硬盘。 在存储运行过程中,管理员误操作删除了 2组…

【LLM】25.1.15 arxiv更新37篇

—第1篇---- Consistency of Responses and Continuations Generated by Large Language Models on Social Media 🔍 关键词: Large Language Models, emotional consistency, semantic coherence, social media, Gemma, Llama 链接1 摘要: 本文研究了大型语言模…

【Flink系列】10. Flink SQL

10. Flink SQL Table API和SQL是最上层的API,在Flink中这两种API被集成在一起,SQL执行的对象也是Flink中的表(Table),所以我们一般会认为它们是一体的。Flink是批流统一的处理框架,无论是批处理&#xff08…

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(4)

1.问题描述: 添加了很多的marker点,每个marker点都设置了customInfoWindow,但是每次只能显示一个customInfoWindow吗? 解决方案: Marker的InfoWindow每次只能显示一个。 2.问题描述: 在地图选型中&…

OpenCV相机标定与3D重建(59)用于立体相机标定的函数stereoCalibrate()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 标定立体相机设置。此函数找到两个相机各自的内参以及两个相机之间的外参。 cv::stereoCalibrate 是 OpenCV 中用于立体相机标定的函数。它通过一…

《Keras 3 神经网络紧凑型卷积转换器(Transformers)》

Keras 3 神经网络紧凑型卷积转换器(Transformers) 作者:Sayak Paul创建日期:2021/06/30最后修改时间:2023/08/07描述:用于高效图像分类的紧凑型卷积变压器。 (i) 此示例使用 Keras …

本地部署Web-Check网站检测与分析利器并实现远程访问实时监测

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 本文我们将详细介绍如何在Ubuntu系统上使用Docker部署Web-Check&#xf…

从零搭建一个Vue3 + Typescript的脚手架——day1

1.开发环境搭建 (1).配置vite vite简介 Vite 是一个由尤雨溪开发的现代化前端构建工具,它利用了浏览器对 ES 模块的原生支持,极大地提升了开发服务器的启动速度和热更新效率。Vite 不仅适用于 Vue.js,还支持 React、Svelte 等多种框架&…

minio https配置

minio启动时候指定数据目录,配置文件,密钥文件目录,环境文件 1.创建minio用户,专门用于服务启动的 groupadd -r minio-user useradd -M -r -g minio-user minio-user 2.在当前用户目录下创建minio目录,存储minio相关文件 mkdir minio 在mini…

Linux自学指南(学习路线大纲)

Linux入门与进阶指南 目录 第一部分 入门篇 第一章 Linux 系统 1.1 Unix:Linux的“祖师爷” 1.2 Linux 操作系统的诞生与发展历程 1.3 Linux 主要应用领域的归纳 1.4 开源社区的兴起 第二章 如何选择Linux发行版? 2.1 Debian GNU/Linux 2.2 Ubu…

Rust 游戏开发框架指南

Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一,基于 ECS(实体组件系统)架构。 特点: 🚀 高性能 ECS 系统📦 热重载支持🎨 现代渲染器🔊 内置音频系…

C# Linq 查询

1.Linq 查询表达式基础 Linq 查询应用程序始终将源数据视为 IEnumerable<T> 或 IQueryable<T> 集合。 LINQ查询表达式包含8个基本子句,分别为from、select、group、where、orderby、join、let和into。 子 句备注from指定数据源和范围变量select指定当执行查询…

leetcode 面试经典 150 题:汇总区间

链接汇总区间题序号228题型数组解法一次遍历法难度简单熟练度✅✅✅ 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属…

使用Go语言中的Buffer实现高性能处理字节和字符串

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…