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

news2025/1/21 13:34:34

前言:这个系列将使用最前沿的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.coloradmin.cn/o/2279836.html

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

相关文章

Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器 创建第一个vim编辑的代码 1.新建文件 2.使用vim打开 3.打开默认是命令模式,写代码需要在屏幕上输出“i”字符 1.写完代码后要按Esc键退出到指令模式2.再按shift:wq即可保存并退出vim (因为不支持鼠标,通常 使用键盘上的箭…

ESP-Skainet语音唤醒技术,设备高效语音识别方案,个性化交互应用

在当今数字化、智能化飞速发展的时代,物联网(IoT)与人工智能(AI)的深度融合正在重塑我们的生活和工作方式。 在智能家居的生态系统中,语音唤醒技术不仅能够为用户提供个性化的服务,还能通过定制…

25西湖ctf

2025西湖冬季 图片不全去我blog找👇 25西湖 | DDLS BLOG 文章所有参考将在文末给出 web web1 ssti 太简单的不赘述,知道用就行 {{cycler.__init__.__globals__.__builtins__[__import__](os).popen($(printf "\150\145\141\144\40\57\146\1…

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 Lin…

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用,适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架,是因为它与一些大型 Web 框架…

python+pygame+pytmx+map editor开发一个tiled游戏demo 05使用object层初始化player位置

代码 import mathimport pygame# 限制物体在屏幕内 import pytmxdef limit_position_to_screen(x, y, width, height):"""限制物体在屏幕内"""x max(0, min(x, SCREEN_WIDTH - width)) # 限制x坐标y max(0, min(y, SCREEN_HEIGHT - height))…

上位机工作感想-2024年工作总结和来年计划

随着工作年限的增增长,发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了,或许是逐渐被工作逼得“成熟”了吧。2024年,学到了很多东西,做了很多项目,也帮别人解决了很多问题,唯独没有涨工资。来这…

Ubuntu离线docker compose安装DataEase 2.10.4版本笔记

1、先准备一个可以正常上网的相同版本的Ubuntu系统,可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包,解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Data Filtering Network 论文阅读和理解

目录 一、TL&#xff1b;DR 二、Introduction 2.1 apple的结论 2.2 业界做法&#xff1a; 2.3 我们的做法&#xff08;Apple&#xff09; 2.4 如何获取好的DFN 三、未完待续&#xff08;这周出去购物了&#xff0c;下周继续补充&#xff09; 一、TL&#xff1b;DR 核心…

计算机网络 (48)P2P应用

前言 计算机网络中的P2P&#xff08;Peer to Peer&#xff0c;点对点&#xff09;应用是一种去中心化的网络通信模式&#xff0c;它允许设备&#xff08;或节点&#xff09;直接连接并共享资源&#xff0c;而无需传统的客户端-服务器模型。 一、P2P技术原理 去中心化架构&#…

.Net Core微服务入门全纪录(五)——Ocelot-API网关(下)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

Python网络自动化运维---SSH模块

目录 SSH建立过程 实验环境准备 一.SSH模块 1.1.Paramiko模块 1.1.1实验代码 1.1.2代码分段讲解 1.1.3代码运行过程 1.2Netmiko模块 Netmiko模块对比paramiko模块的改进&#xff1a; 1.2.1实验代码 1.2.2代码分段讲解 1.2.3代码运行过程 二.Paramiko模块和Ne…

Linux:进程概念详解

进程详解 一、冯诺依曼计算机体系&#xff08;一&#xff09;体系概念&#xff08;二&#xff09;计算机之间的数据传输 二、操作系统&#xff08;一&#xff09;操作系统设计的意义&#xff08;二&#xff09;操作系统的管理功能&#xff08;三&#xff09;系统调用的实质 三、…

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

STM32之CubeMX图形化工具开发介绍(十七)

STM32F407 系列文章 - STM32CubeMX&#xff08;十七&#xff09; 目录 前言 一、CubeMX 二、下载安装 1.下载 2.安装 3.图解步骤 三、用户界面 1.项目配置 2.项目生成 3.项目文件解释 4.新建工程 5.查看原工程 四、FAQ 总结 前言 STMCube源自意法半导体&#xf…

top命令返回值有异常问题解决

异常问题&#xff1a;load average值不正常 排查思路&#xff1a; 1.找到是哪个进程引起的异常&#xff0c;看看是否有cpu占用过高或者mem占用过高的进程 再根据具体情况分析原因。 定位到异常进程后&#xff0c;首先打堆栈&#xff0c;留存现场日志&#xff0c;然后停止进…

sqlfather笔记

这里简单记录写学习鱼皮sqlfather项目的笔记&#xff0c;以供以后学习。 运行 将前后端项目clone到本地后&#xff0c;修改对应配置文件运行项目。 后端 1.配置好mysql后运行这个sql文件建立对应的表。 2.修改数据库密码 3.修改完后运行启动类即可 4. 启动结果 5.查看A…

【Axure高保真原型】数字滚动效果

今天和大家分享数字滚动效果的原型摸吧原型模板&#xff0c;效果包括&#xff1a; 在输入框输入目标数值后&#xff0c;点击滚动按钮&#xff0c;下方数字自动滚动到对应的数值&#xff1b; 在输入框输入初始数值后&#xff0c;点击设置初始值按钮&#xff0c;可以设置下方数字…

“AI人工智能内容辅助创作平台:让创意不再“卡壳”

在如今这个信息爆炸的时代&#xff0c;内容创作成了每个人的“必修课”。无论是自媒体大V、文案策划&#xff0c;还是普通学生写作文&#xff0c;大家都会遇到一个让人抓狂的问题——“创意枯竭”。有时候&#xff0c;脑袋里空空如也&#xff0c;一个字都写不出来&#xff0c;那…