当前位置: 首页 > news >正文

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 的主要特点和功能的介绍:

  1. 智能代码补全
    Cursor 通过 AI 模型(如 OpenAI 的 GPT 系列)提供智能代码补全功能。
    它能够理解代码上下文并提供精确的代码建议,减少开发者的输入量。
    不仅适用于简单的语法补全,还可以帮助完成复杂的函数、算法或逻辑。
  2. 代码生成
    开发者可以用自然语言描述需求,Cursor 能自动生成对应的代码段。
    适用于创建模板代码、处理繁琐的重复性任务,以及快速实现原型。
  3. 错误检测与调试
    内置 AI 功能能够实时检测代码中的错误,并提供详细的分析和修复建议。
    调试过程中,Cursor 可以帮助定位问题的根本原因,优化调试效率。
  4. 文档生成
    Cursor 可以自动生成代码文档,包括函数注释、接口描述和类说明等。
    这种功能特别适用于提高代码可读性和团队协作效率。
  5. 多语言支持
    支持多种编程语言(如 Python、JavaScript、Java、C++ 等),能够适应不同开发场景。
    它可以根据语言特性提供定制化的建议和功能。
  6. 版本控制集成
    支持与常见版本控制系统(如 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模板语法、数据映射与表达式

模板字符串 表达式中获取变量 可以支持在普通文本中&#xff0c;使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值&#xff0c;并渲染 HTML "<h1>Hello<…...

频域增强通道注意力机制EFCAM模型详解及代码复现

背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...

GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效

代码托管平台 GitLab 国际站&#xff08;GitLab.com&#xff09;近日发布公告&#xff0c;官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务&#xff0c;并提供 60 天过渡期自行迁移账户数据&#xff0c;超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...

BPG图像库和实用程序(译)

1)快速介绍 编辑Makefile以更改编译选项&#xff08;默认编译选项对于Linux应该是OK的&#xff09;。输入make来编译&#xff0c;输入make install来安装编译后的二进制文件。bpgview&#xff1a;为了编译它&#xff0c;你需要安装SDL和SDL_image库。Emscripten的使用&#xff…...

简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程

以下是一个常见的业务过程示例&#xff0c;展示了从客户端调用接口&#xff0c;再到调用中间件&#xff08;Nacos、Redis、Kafka、Feign&#xff09;和数据库的过程&#xff1a; 假设我们有一个电商系统&#xff0c;客户端要查询某个商品的详细信息&#xff0c;这个商品信息可…...

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 在这道题中&#xff0c;我们的任务是判断两个字符串 s1 和 s2 是…...

什么是.NET中的反射,它有哪些应用场景

反射是.NET框架提供的一种强大的机制&#xff0c;它允许程序在运行时查询和操作对象的类型信息。以下是对.NET中反射的详细解释及其应用场景&#xff1a; 一、反射的定义 在.NET中&#xff0c;所有类型的信息&#xff08;包括类、结构、委托、接口、枚举等以及它们的成员信息…...

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 就始终进不去了… 各种检查&#xff0c;ip地址、证书&#xff0c;ssl设置等等都正常&#xff0c;就是进不去。 在一位好心人的提醒下得到了一个解决办法。那就是换一个地址 最新地址是: charlesproxy…...

Rust 游戏开发框架指南

Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一&#xff0c;基于 ECS&#xff08;实体组件系统&#xff09;架构。 特点&#xff1a; &#x1f680; 高性能 ECS 系统&#x1f4e6; 热重载支持&#x1f3a8; 现代渲染器&#x1f50a; 内置音频系…...

hadoop3.3和hive4.0安装——单节点

hadoop3.3x和hive4.0安装部署 为什么我要安装hive4.0&#xff0c;因为阿里云镜像只有hive4.0 软件相互兼容性版本 系统centos7 uname -a如果内核3.0以上可以用 安装jdk1.8以上的版本&#xff08;配置好环境变量&#xff09; 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 的连接 博图装在虚拟机里&#xff0c;PLC 通过网线与电脑连接 可以是使用网线直接连接&#xff0c;也可以中间接个路由器或交换机 问题在于虚拟机提供多种网络连接方式&#xff0c;但不是每种都可以与 PLC 建立连接 以 VMware 虚拟机为例&#xff0c;进入编辑/虚拟网…...

Service Work离线体验与性能优化

Service Work离线体验与性能优化 引言 先放个意外事件&#xff0c;万事开头难&#x1f923;&#x1f923;&#x1f923; 原计划是分享离线应用与数据资源缓存的应用实践&#xff0c;结果发现这一技术已被web标准废弃 曾经做过一个PC应用&#xff0c;业务需求要求应用具备容灾…...

Unity 语音转文字 Vosk 离线库

市场有很多语音库&#xff0c;这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的&#xff0c;&#xff08;确保麦克风正常&#xff0c;且索引正确&#xff09;分大…...

VSCode连接Github的重重困难及解决方案!

一、背景&#xff1a; 我首先在github创建了一个新的项目&#xff0c;并自动创建了readme文件其次在vscode创建项目并写了两个文件在我想将vscode的项目上传到对应的github上时&#xff0c;错误出现了 二、报错及解决方案&#xff1a; 1.解决方案&#xff1a; 需要在git上配置用…...

《AI赋能鸿蒙Next,打造极致沉浸感游戏》

在游戏开发领域&#xff0c;鸿蒙Next系统与人工智能技术的结合为开发者们带来了前所未有的机遇&#xff0c;使打造更具沉浸感的游戏成为可能。以下将深入探讨如何利用人工智能在鸿蒙Next上开发出令人身临其境的游戏。 利用AI优化游戏角色智能行为 在传统游戏中&#xff0c;非…...

小白:react antd 搭建框架关于 RangePicker DatePicker 时间组件使用记录 2

文章目录 一、 关于 RangePicker 组件返回的moment 方法示例 一、 关于 RangePicker 组件返回的moment 方法示例 moment方法中日后开发有用的方法如下&#xff1a; form.getFieldsValue().date[0].weeksInWeekYear(),form.getFieldsValue().date[0].zoneName(), form.getFiel…...

<C++学习>C++ std 多线程教程

C std 多线程教程 理解多线程的概念 多线程是一种并发编程技术&#xff0c;它允许程序同时运行多个任务。每个线程共享同一进程的资源&#xff08;如内存&#xff09;&#xff0c;但拥有独立的执行路径。多线程编程在现代 C 中变得更加便捷和安全&#xff0c;标准库提供了强大…...

用 Python 自动化处理日常任务

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…...

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(28):DSA数字签名

《深入浅出HTTPS​​​​​​​​​​》读书笔记&#xff08;28&#xff09;&#xff1a;DSA数字签名 对称加密算法有很多算法&#xff0c;标准算法是RSA机密算法&#xff0c;数字签名技术也有一个标准DSS&#xff08;Digital Signature Standard&#xff09;&#xff0c;其标准…...

type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)

1.图标类型 <uni-icon>组件中&#xff0c;type可以用来指定图标的不同样式。 <uni-icons type"circle" size"30" color"#007aff"></uni-icons> //表示圆形 <uni-icons type"square" size"30" co…...

PSINS工具箱学习(四)捷联惯导更新算法

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、捷联惯导更新1、insinit():初始化 ins 结构体2、ethupdate():地球自转角速度和牵连角速度更新3、insupdate():捷联惯导更新1. 速度更新2. 位置更新3.…...

P1Linux和Docker常用终端命令:保姆级图文详解

文章目录 前言1、Docker 常用命令1.1、镜像管理1.2、容器管理1.3、网络管理1.4、数据卷管理1.5、监控和性能管理 2、Linux 常用命令分类2.1、文件和目录管理2.2、用户管理2.3、系统监控和性能2.4、软件包管理2.5、网络管理 前言 亲爱的家人们&#xff0c;创作很不容易&#xf…...

Windows重装后NI板卡LabVIEW恢复正常

在重新安装Windows系统后&#xff0c;NI&#xff08;National Instruments&#xff09;板卡能够恢复正常工作&#xff0c;通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后&#xff0c;系统重新加载驱动程序、清理了潜在的冲突或损坏的…...