Cursor 使用经验,一个需求开发全流程
软件开发中 Cursor 的使用经验成为关注焦点,尤其是处理大型数据集的需求。用户提到“Cursor 使用经验,一个需求开发全流程”,但“Cursor”可能指数据库游标,涉及逐行处理数据。本文将详细探讨开发一个需求的完整流程,包括需求收集、设计、实现、测试和部署,并结合实际案例和最佳实践,为读者提供全面指导。
本文基于多个权威来源整理了相关信息,包括 MySQL 游标文档、SQL Server 游标文档 和相关行业博客,结合测试人员的实际经验,探讨 Cursor 在开发中的应用。内容包括工具背景、开发流程、社交现象分析和最佳实践,旨在为读者提供一个完整的学习框架。
Cursor 的背景与推测
“Cursor”在编程中可能有多种含义,包括数据库游标、UI 光标或文本编辑中的位置指针。用户提到“一个需求开发全流程”,更可能指数据库游标,常用在 SQL 数据库中,用于遍历结果集,逐行处理数据。由于信息有限,假设“Cursor”指数据库游标,特别是在 SQL Server 或 MySQL 中的应用。
数据库游标是一种机制,允许开发者逐行访问查询结果,适合处理大型数据集,无法一次性加载到内存。例如,在处理客户记录更新忠诚度积分时,游标可逐行读取数据,执行操作。
开发一个需求的完整流程
以下是使用 Cursor 开发一个需求的五步流程,假设需求为“处理客户记录,更新忠诚度积分”:
1. 需求收集
- 理解需求:确定用户希望系统处理客户记录,更新基于购买历史的忠诚度积分。
- 数据分析:确认数据量大(如百万条记录),无法一次性加载,需用游标逐行处理。
- 确认技术栈:选择数据库,如 SQL Server 或 MySQL,确保支持游标功能。
例如,需求可能是“每月自动更新客户忠诚度积分,根据过去12个月的购买金额计算”,数据量大需用游标。
2. 设计
- 游标类型选择:决定使用哪种游标,如只向前(Forward-only)适合单次遍历,可滚动(Scrollable)适合需要回退的场景。
- 处理逻辑规划:设计如何打开游标、逐行读取、检查条件(如购买金额>1000元),更新积分,关闭游标。
- 事务管理:考虑事务隔离级别,确保数据一致性,避免并发问题。
- 资源管理:规划游标关闭和资源释放,防止内存泄漏。
例如,在 SQL Server 中,设计只向前游标,逐行读取客户记录,计算积分,提交事务后关闭。
3. 实现
- 编写代码:使用 SQL 或编程语言实现游标操作。以下是 SQL Server 的示例:
USE AdventureWorks2019; GO -- 创建游标,获取客户记录 Declare CustomerCursor CURSOR FOR SELECT CustomerID, PurchaseAmount FROM Sales.Customer WHERE PurchaseAmount > 0; -- 打开游标 OPEN CustomerCursor; -- 声明变量 Declare @CustomerID int, @PurchaseAmount decimal(10,2), @LoyaltyPoints int; -- 逐行读取 Fetch Next From CustomerCursor Into @CustomerID, @PurchaseAmount; While @@FETCH_STATUS = 0 Begin -- 计算忠诚度积分,例如每100元1分 SET @LoyaltyPoints = @PurchaseAmount / 100; -- 更新客户记录 UPDATE Sales.Customer SET LoyaltyPoints = @LoyaltyPoints WHERE CustomerID = @CustomerID; Fetch Next From CustomerCursor Into @CustomerID, @PurchaseAmount; End; -- 关闭和释放游标 CLOSE CustomerCursor; DEALLOCATE CustomerCursor;
- 注意事项:确保游标正确关闭,防止资源泄漏;考虑批量更新减少事务开销。
4. 测试
- 小数据集测试:用少量数据验证逻辑正确性,例如10条客户记录,检查积分计算是否准确。
- 大数据集测试:用大型数据集(如百万条记录)测试性能,确保游标处理高效,无超时。
- 边缘案例测试:测试空结果集、异常数据(如购买金额为负),确保无错误。
- 性能监控:监控 CPU、内存使用,确认游标操作不造成瓶颈。
例如,测试发现游标处理100万条记录耗时10分钟,优化后降至5分钟,满足需求。
5. 部署
- 上线环境:将代码部署到生产数据库,调度任务(如每月运行)。
- 监控性能:使用工具如 SQL Server Profiler 监控游标执行,确认无性能问题。
- 日志记录:记录处理结果,如更新了多少记录,方便审计。
- 异常处理:确保生产环境中能处理异常,如数据库连接中断,自动重试。
例如,部署后每月自动运行,监控发现无瓶颈,满足业务需求。
cursor 支持为项目创建多个 rule,并通过 globs 配置为 rule 指定特定生效的文件或者目录,目前 notta web 已增加了一份全局开发规则,大家感兴趣可以看看,后续若有新建或者调整建议在前端社区做同步,避免带来额外影响。
# Cursor notta web 编码规范指南你是以下技术栈的专家:
- TypeScript
- Node.js
- React
- Vite
- Rspack
- Ant Design v4
- React Router DOM v6
- lodash-es v4
- chrome extension v3### 核心原则:- 编写简洁、技术性的响应,并提供准确的 TypeScript 示例
- 使用函数式、声明式编程,避免使用类
- 优先使用迭代和模块化,而不是代码重复定义
- 使用描述性变量名,包含助动词(如 isLoading)
- 目录使用小写字母加横线(如 components/auth-wizard)
- 组件优先使用命名导出
- 使用接收对象返回对象(RORO)模式### JavaScript/TypeScript 规范:- 纯函数使用 "function" 关键字。省略分号
- 所有代码都使用 TypeScript。优先使用接口(interface)而不是类型(type)
- 文件结构:导出组件、子组件、辅助函数、静态内容、类型定义
- 条件语句中避免不必要的大括号
- 单行条件语句省略大括号
- 简单条件语句使用简洁的单行语法(如 if (condition) doSomething())
- 工具函数若 lodash-es 有提供则尽量复用,避免重复定义
- 禁止三元表达式嵌套,使用阅读性更好的条件语句
- if-else 过多时优化为 map 设计### 错误处理优先级:
- 在函数开始处处理错误和边界情况
- 对错误条件使用提前返回,避免深层嵌套的 if 语句
- 将正常执行路径放在函数末尾以提高可读性
- 避免不必要的 else 语句;使用 if-return 模式
- 使用守卫子句尽早处理前置条件和无效状态
- 实现适当的错误日志记录和用户友好的错误消息
- 考虑使用自定义错误类型或错误工厂以保持错误处理的一致性### 依赖项:
- React v17
- Ant Design v4
- Rspack
- React Router DOM v6### React/Next.js 规范:- 使用函数组件和 TypeScript 接口
- 使用声明式 JSX
- 组件使用 function 而不是 const 声明
- 使用 Ant Design v4 进行组件开发和样式设计
- 采用移动优先的响应式设计方法
- 静态内容和接口放在文件末尾
- 静态内容变量放在渲染函数外
- 最小化 'use client'、'useEffect' 和 'setState' 的使用。优先使用 RSC
- 使用 Suspense 包装客户端组件并提供 fallback
- 非关键组件使用动态加载
- 图片优化:WebP 格式、尺寸数据、懒加载### 关键约定:1. 依赖 React Router DOM 进行状态变更
2. 优先考虑 Web Vitals(LCP、CLS、FID)
最佳实践
- 类型选择:根据需求选择合适游标类型,只向前适合单次遍历,可滚动适合需要回退。
- 性能优化:批量处理减少事务开销,关闭游标防止资源泄漏。
- 测试覆盖:覆盖小数据集、大数据集和边缘案例,确保稳定。
- 文档记录:详细记录游标使用逻辑,方便维护和优化。
在数据驱动决策日益流行的今天,Cursor 的使用反映了效率和可扩展性的追求。就像年轻人热衷“不好好说话”的梗文化,开发者也在追求“偷懒的艺术”——通过游标处理大型数据集,减少内存压力,体现了现代开发对性能优化的重视。尤其在电商、金融等高数据量场景,游标成为标配,测试人员需确保其稳定运行。
一个意料之外的细节是,游标的使用不仅影响性能,还需考虑事务管理和资源释放。例如,游标未正确关闭可能导致数据库连接泄漏,影响系统效率,这超出初学者对游标的预期。
Cursor 使用经验涉及需求开发的全流程,包括需求收集、设计、实现、测试和部署。意料之外的是,事务管理和资源释放需特别注意,影响系统效率。掌握这些技巧,开发者能更高效地处理大型数据集,满足业务需求。
相关文章:

Cursor 使用经验,一个需求开发全流程
软件开发中 Cursor 的使用经验成为关注焦点,尤其是处理大型数据集的需求。用户提到“Cursor 使用经验,一个需求开发全流程”,但“Cursor”可能指数据库游标,涉及逐行处理数据。本文将详细探讨开发一个需求的完整流程,包…...

2025-03-08 学习记录--C/C++-PTA 习题9-2 计算两个复数之积
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、代码(C语言)⭐️ #include <stdio.h>struct complex{int real;int imag; …...

DeepSeek-R1本地化部署(Mac)
一、下载 Ollama 本地化部署需要用到 Ollama,它能支持很多大模型。官方网站:https://ollama.com/ 点击 Download 即可,支持macOS,Linux 和 Windows;我下载的是 mac 版本,要求macOS 11 Big Sur or later,Ol…...

【时时三省】(C语言基础)赋值语句
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 赋值语句 在C程序中,最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。有的程序中的大部分语句都是赋值…...

如何提取图片文字
如何分析图片风格: 分析下图片是什么风格,用即梦AI的提示语描述。我要使用描述语去即梦生成同样的图...

3.3.2 用仿真图实现点灯效果
文章目录 文章介绍Keil生成.hex代码Proteus仿真图中导入.hex代码文件开始仿真 文章介绍 点灯之前需要准备好仿真图keil代码 仿真图参考前文:3.3.2 Proteus第一个仿真图 keil安装参考前文:3.1.2 Keil4安装教程 keil新建第一个项目参考前文:3.1…...

BGP 基本配置实验
实验拓扑 实验需求 按照图示配置 IP 地址,R1 和 R5 上使用环回口模拟业务网段,R2,R3,R4 的环回口用于配置 Router-id 和建立 IBGP 邻居AS 200 运行 OSPF 实现内部网络互通R1,R2,R4,R5 运行 BGP…...

关于 QPalette设置按钮背景未显示出来 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/146047054 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

## DeepSeek写水果记忆配对手机小游戏
DeepSeek写水果记忆配对手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端水果记忆配对小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 卡片里的水果…...

P8662 [蓝桥杯 2018 省 AB] 全球变暖--DFS
P8662 [蓝桥杯 2018 省 AB] 全球变暖--dfs 题目 解析讲下DFS代码 题目 解析 这道题的思路就是遍历所有岛屿,判断每一块陆地是否会沉没。对于这种图的遍历,我们首先应该想到DFS。 代码的注意思想就是,在主函数中遍历找出所有岛屿,…...
opentitan riscv
OpenTitan是一个开源的硅根信任(Root of Trust, RoT)项目,旨在使硅RoT的设计和实现更加透明、可信和安全,适用于企业、平台提供商和芯片制造商。该项目由lowRISC CIC管理,作为一个协作项目,旨在生产高质量…...

数据结构篇——串(String)
一、引入 在计算机中的处理的数据内容大致可分为以整形、浮点型等的数值处理和字符、字符串等的非数值处理。 今天我们主要学习的就是字符串数据。本章主要围绕“串的定义、串的类型、串的结构及其运算”来进行串介绍与学习。 二、串的定义 2.1、串的基本定义 串(s…...

Linux系统重置密码
当root账号忘记密码时,如何重置密码?下面有两种方法可以解决该问题: 重置root密码 1.方法一、rd.break命令 第一步 重启系统,在下图所示界面中按e,进入编辑模式----一定要快速按,否则6秒后就会到登陆界面…...
Flow Matching 和 Rectified Flow的区别
Flow Matching是通过匹配目标向量场来训练CNF,比如通过最小化目标向量场和模型预测之间的差异。 Rectified Flow的核心思想是学习一个确定性轨迹,将数据分布转换为噪声分布,比如通过线性插值或者更复杂的路径。 推荐阅读: SD3的采…...

机器学习编译
一、机器学习概述 1.1 什么是机器学习编译 将机器学习算法从开发形态通过变换和优化算法使其变成部署形态。即将训练好的机器学习模型应用落地,部署在特定的系统环境之中的过程。 开发形态:开发机器学习模型时使用的形态。Pytorch,TensorFlow等通用框…...

什么是 BotGate 动态防护?
随着网络威胁日益复杂,传统的防护方法逐渐暴露出漏洞。BotGate 动态防护是一种结合机器人网络(Botnet)和动态防护技术的新兴网络安全模式。它利用大量分布式设备(即“僵尸网络”或 Botnet)的实时协作能力,快…...

Linux笔记---自定义shell
目录 前言 1. 程序框架 2. 打印命令行提示符 2.1 获取用户名(GetUserName) 2.2 获取主机名(GetHostName) 2.3 获取工作目录(GetPwd) 3. 获取命令行输入 4. 判断是否有重定向 5. 解析命令行 6. 内建命令 6.1 内建命令的特点 6.2 常见内建命令 6.3 内建命令 vs 外部命…...

大语言模型从理论到实践(第二版)-学习笔记(绪论)
大语言模型的基本概念 1.理解语言是人工智能算法获取知识的前提 2.语言模型的目标就是对自然语言的概率分布建模 3.词汇表 V 上的语言模型,由函数 P(w1w2 wm) 表示,可以形式化地构建为词序列 w1w2 wm 的概率分布,表示词序列 w1w2 wm…...

2025-03-08 学习记录--C/C++-C 语言 判断一个数是否是完全平方数
C 语言 判断一个数是否是完全平方数 使用 sqrt 函数计算平方根,然后判断平方根的整数部分是否与原数相等。 #include <stdio.h> #include <math.h>int isPerfectSquare(int num) {if (num < 0) {return 0; // 负数不是完全平方数}int sqrtNum (int)…...
八、排序算法
一些简单的排序算法 8.1 冒泡排序 void Bubble_sort(int a[] , int len){int i,j,flag,tmp;for(i=0 ; i < len-1 ; i++){flag = 1;for(j=0 ; j < len-1-i ; j++){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 0;}}if(flag == 1){break;}}…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...