cursor重构谷粒商城01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。
一、为什么重构谷粒商城
谷粒商城是一个典型的 B2C(Business to Customer)电商项目,专注于实现线上商品交易平台的功能。它模拟真实的电商业务流程,从用户注册到商品浏览、下单、支付、物流等全流程,采用微服务架构,结合多种主流技术栈,适合用于学习微服务开发、分布式架构、和高并发处理的技术。
主要会使用的技术栈:java、spring boot、spring cloud、Spring Data JPA、MyBatis-Plus、Spring Security、OAuth2、Vue.js、Element-UI / Ant Design、Vue Router、Vuex、Axios、MySQL、redis、Nginx、RabbitMQ / RocketMQ、ElasticSearch (ES)、Logstash + Kibana、Docker、Kubernetes (K8s)、Jenkins、Maven 、Swagger、JWT、OSS 、FastDFS、Zookeeper。
可以说,学会了它,就意味着你掌握了主流的技术栈。能够拿下大部分的offer,甚至可以成为独立开发者。

但是,谷粒商城也有不足。
1、年代久远,部分技术栈过时
2、官方文档不够细致,很多内容在视频中有,文档中没有,手动做笔记又太浪费时间
3、有些内容存在缺漏、错误。
4、对很多技术栈,默认你已经具有基础,并非真正的0基础。
5、cursor为代表的AI编程工具突飞猛进,我们完全没有任何必要再向过去那样学习一大堆技术栈,再进行项目实战,这样会浪费你大量宝贵时间。
基于此,我决定出一个重构版的系列博客,解决以上问题。
二、需要你具有哪些基础
Java 基础(掌握面向对象和基本多线程)。
Spring Boot(能启动服务、开发 REST API)。
MySQL(掌握基础数据库操作)。
其它的技术栈,在使用之前,我尽量会用最精简语言,出一篇单独的番外篇文章,帮你快速入门。

三、会做哪些更新
Spring Cloud Netflix 组件:Netflix 系列中的部分组件已进入维护模式,将迁移至 Spring Cloud 官方推荐的替代方案。
Eureka:考虑迁移至 Nacos 或 Consul,以获得更丰富的服务注册与发现功能。
Ribbon:使用 Spring Cloud LoadBalancer,提供更现代的负载均衡机制。
Hystrix:替换为 Resilience4j,以利用更轻量级的熔断与限流功能。
MyBatis-Plus:虽然 MyBatis-Plus 仍被广泛使用,但随着 JPA 和 Spring Data 的发展,许多项目更倾向于使用这些更高层次的持久化框架,以简化开发流程。本项目将尝试进行这一升级。
RabbitMQ:在某些高并发场景下,Kafka 等消息队列因其高吞吐量和分布式特性,正逐渐成为更受欢迎的选择。
另外,对于其它技术栈,我们也会基于较新且稳定的版本进行迭代。
本系列博客,是可以持续升级迭代的,后期如果时间、精力允许,还考虑扩展其它模块、功能。增加新的技术栈,等等。当然,也许我还会重构其它类型的项目,比如线上教育、直播、办公系统…
四、课程大纲
为了同时兼容做过谷粒商城和没有做过谷粒商城的同学。本项目将分成两个大部分。第一个部分,完全照搬原来谷粒商城的技术栈,做到复制。第二个部分,对谷粒商城进行技术重构。所有使用到的技术栈,都会单独出一篇番外篇进行介绍。
因为本专栏完全是个人兴趣驱动,如果觉得写的不错,请三连支持,不要白嫖哦。。这样,我也可以更有动力持续更新。

五、什么是cursor
Cursor 是一款基于 AI 的编程工具,旨在提高开发者的编程效率。它结合了现代代码编辑器的功能和强大的 AI 辅助编程技术。以下是关于 Cursor 的主要特点和功能的介绍:
- 智能代码补全
Cursor 通过 AI 模型(如 OpenAI 的 GPT 系列)提供智能代码补全功能。
它能够理解代码上下文并提供精确的代码建议,减少开发者的输入量。
不仅适用于简单的语法补全,还可以帮助完成复杂的函数、算法或逻辑。 - 代码生成
开发者可以用自然语言描述需求,Cursor 能自动生成对应的代码段。
适用于创建模板代码、处理繁琐的重复性任务,以及快速实现原型。 - 错误检测与调试
内置 AI 功能能够实时检测代码中的错误,并提供详细的分析和修复建议。
调试过程中,Cursor 可以帮助定位问题的根本原因,优化调试效率。 - 文档生成
Cursor 可以自动生成代码文档,包括函数注释、接口描述和类说明等。
这种功能特别适用于提高代码可读性和团队协作效率。 - 多语言支持
支持多种编程语言(如 Python、JavaScript、Java、C++ 等),能够适应不同开发场景。
它可以根据语言特性提供定制化的建议和功能。 - 版本控制集成
支持与常见版本控制系统(如 Git)集成,方便开发者在项目管理中应用 AI 辅助功能。
cursor官网:https://www.cursor.com/

六、下载cursor
cursors是基于VSCODE进行扩展的,需要先下载VSCODE。这里我就跳过下载过程了
接下来,官网下载好cursor

点击右下角,Install cursor,安装命令行命令。


登录

像打开vscode一样打开。我这里打开了一个之前的项目给大家展示用。

更改下菜单栏位置。ctrl+shift+P,输入settings。找到VScode Settings。


七、解决cursor快捷键冲突
cursor的快捷键可能与电脑其它快捷键冲突,这一节我们来重点解决下这个问题。点左下角齿轮就好。

相关文章:
cursor重构谷粒商城01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...
如何在 ASP.NET Core 中实现速率限制?
在 ASP.NET Core 中实现速率限制(Rate Limiting)中间件可以帮助你控制客户端对 API 的请求频率,防止滥用和过载。速率限制通常用于保护服务器资源,确保服务的稳定性和可用性。 ASP.NET Core 本身并没有内置的速率限制中间件&…...
STM32-笔记43-低功耗
一、什么是低功耗? 低功耗是指通过优化设计和采用特定的技术手段,降低电子设备在运行过程中消耗的能量,从而延长电池寿命、提高性能和减少发热。低功耗设计主要从芯片设计和系统设计两个方面进行,旨在减少所有器件的功率损耗&am…...
Facebook 隐私风波:互联网时代数据安全警钟
在社交媒体飞速发展的今天,个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一,Facebook面临的隐私问题,尤其是数据泄露事件,频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏,Facebook的隐私挑…...
Java 中的 ZoneOffset
介绍 在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。 时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东 8 区的时间等。 当…...
amis模板语法、数据映射与表达式
模板字符串 表达式中获取变量 可以支持在普通文本中,使用数据映射语法:${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法:${xxx} 获取数据域中变量的值,并渲染 HTML "<h1>Hello<…...
频域增强通道注意力机制EFCAM模型详解及代码复现
背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...
GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
代码托管平台 GitLab 国际站(GitLab.com)近日发布公告,官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务,并提供 60 天过渡期自行迁移账户数据,超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...
BPG图像库和实用程序(译)
1)快速介绍 编辑Makefile以更改编译选项(默认编译选项对于Linux应该是OK的)。输入make来编译,输入make install来安装编译后的二进制文件。bpgview:为了编译它,你需要安装SDL和SDL_image库。Emscripten的使用ÿ…...
简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程
以下是一个常见的业务过程示例,展示了从客户端调用接口,再到调用中间件(Nacos、Redis、Kafka、Feign)和数据库的过程: 假设我们有一个电商系统,客户端要查询某个商品的详细信息,这个商品信息可…...
01.02、判定是否互为字符重排
01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 在这道题中,我们的任务是判断两个字符串 s1 和 s2 是…...
什么是.NET中的反射,它有哪些应用场景
反射是.NET框架提供的一种强大的机制,它允许程序在运行时查询和操作对象的类型信息。以下是对.NET中反射的详细解释及其应用场景: 一、反射的定义 在.NET中,所有类型的信息(包括类、结构、委托、接口、枚举等以及它们的成员信息…...
Linux离线部署ELK
文章目录 前期准备开始安装安装elastic search安装logstash安装kibana 配置ELK配置ElasticSearch配置logstash配置kibana 启动ELK启动命令启动测试 设置ELK策略创建ILM策略将ILM策略与日志index关联查看索引是否被ILM策略管理 前期准备 ELK包含三部分软件 ElasticSearch用作搜…...
解决 chls.pro/ssl 无法进入问题
使用charles的xdm不知道有没有遇到这样的问题。手机上访问 chls.pro/ssl 就始终进不去了… 各种检查,ip地址、证书,ssl设置等等都正常,就是进不去。 在一位好心人的提醒下得到了一个解决办法。那就是换一个地址 最新地址是: charlesproxy…...
Rust 游戏开发框架指南
Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一,基于 ECS(实体组件系统)架构。 特点: 🚀 高性能 ECS 系统📦 热重载支持🎨 现代渲染器🔊 内置音频系…...
hadoop3.3和hive4.0安装——单节点
hadoop3.3x和hive4.0安装部署 为什么我要安装hive4.0,因为阿里云镜像只有hive4.0 软件相互兼容性版本 系统centos7 uname -a如果内核3.0以上可以用 安装jdk1.8以上的版本(配置好环境变量) hadoop3.3.x与hive4.0.x 创建目录 mkdir -p /us…...
centos安装golang
1.下载golang golang所有版本网址 https://studygolang.com/dl //下载并解压到/usr/local文件下 wget https://studygolang.com/dl/golang/go1.18.3.linux-amd64.tar.gz //解压并复制到/user/local文件夹下 tar -C /usr/local -zxf go1.18.3.linux-amd64.tar.gz 2.编辑环境变…...
博图 linucx vmware
电脑与 PLC 的连接 博图装在虚拟机里,PLC 通过网线与电脑连接 可以是使用网线直接连接,也可以中间接个路由器或交换机 问题在于虚拟机提供多种网络连接方式,但不是每种都可以与 PLC 建立连接 以 VMware 虚拟机为例,进入编辑/虚拟网…...
Service Work离线体验与性能优化
Service Work离线体验与性能优化 引言 先放个意外事件,万事开头难🤣🤣🤣 原计划是分享离线应用与数据资源缓存的应用实践,结果发现这一技术已被web标准废弃 曾经做过一个PC应用,业务需求要求应用具备容灾…...
Unity 语音转文字 Vosk 离线库
市场有很多语音库,这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的,(确保麦克风正常,且索引正确)分大…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
