大家好,我是六哥!最近不少小伙伴和我吐槽,在使用Cursor时,AI老是把代码改坏,让人头疼不已。我自己也用了大几十个小时Cursor,今天就来给大家分享一些实用小窍门,教大家如何巧妙规避这类问题。

一、项目开始,搭建“行动指南”

在项目根目录下创建一个名为“.cursorrules”的文件,这就相当于给AI制定了一份“行动指南”。文件里详细写上代码开发的提示词,涵盖角色设定、项目目标、项目初始化步骤、需求分析与开发要点、代码编写规范、问题解决思路,以及项目总结优化等内容。举个例子:

# Role
你是一个XX开发专家……
# Goal 在理解用户需求、编写代码和解决问题时,你应始终遵循以下原则: ## 第一步:项目初始化 ## 第二步:需求分析和开发 ### 理解用户需求时: ### 编写代码时:
-SwiftUI项目结构:(这里以IOS开发为例) -SwiftUI UI设计规则:(这里以IOS开发为例) ### 解决问题时: ## 第三步:项目总结和优化

不仅如此,你还可以把项目的具体开发内容也写进去。比如

# Project
目前需开发一款XX功能的iOS APP,其中包含的功能:
##1. XX功能:详细功能、布局、样式等等
##2. ……

有了这份指南,AI每次基于代码库创建代码时,都会严格参照执行。

二、开发过程,及时测试

在使用不太熟悉的编程语言开发项目时,建议在Cursor交互的第二三轮就开始测试运行。千万别等代码量积累得很多了才去测试,到那时,调试的成本极高,耗费大量时间不说,甚至可能导致项目需要重建。另外,每次增加新功能后,都要立刻进行测试,确保代码能正常编译和运行,再进行功能优化。

三、巧用工具,保驾护航

Git和Cursor的restore功能堪称“救星”。每次完成一个新增功能,或者搭建好一个MVP版本,都要及时使用Git将代码上传到代码仓库。这样一旦出现问题,就能轻松回滚到之前的版本。

此外,如果遇到反复修补都解决不了的bug,还能通过Cursor自带的restore功能。

向上翻阅历史交互记录,回滚到指定交互记录前的代码版本。

四、精准引导,避免混乱

哪怕对当前编程语言不太熟悉,至少要清楚项目中每个功能所在的具体代码文件和模块位置。不清楚的话,直接向AI提问就行。在后续精细化处理功能时,明确指定对应模块名称,避免AI误解需求。也可以让AI输出一份features.md文档,详细记录每个功能模块、实现方法、UI样式和字体等参数。另外,将画好的原型图粘贴到Cursor的聊天框里,让AI更直观地了解界面布局。还能在设置界面的“rules for AI”中,写上禁止随意删改的规则,约束AI的“自由发挥”。

五、明确指令,及时验证

在让AI变更功能时,务必给出详细的指令,并在最后加上“其他功能不动”“其他功能逻辑不做改动”“最小化代码改动”“复用XX功能逻辑”等限定词。每次AI修改代码后,都要及时编译验证,确认其他功能是否受到影响。

我看到北海章鱼留言说,昨晚让AI加个小功能,结果几天做好的功能全被改废了,最后只能通过Git历史手动回滚。其实,复杂项目中AI有时会“失忆”,但只要掌握上面这些方法,就能大大降低AI改坏代码的概率,让开发过程更加顺畅!

Cursor 老改坏代码?六哥这几招超管用!的更多相关文章

  1. OO之美4(好代码与坏代码)

    前言:写代码不仅仅要做到能与机器交流,更要做到能和人交流 编码规范:编码规范就是最佳实践,是前辈在编码这件事上的积累和总结,是智慧的延续和工业的实践,如下: ⑴命名规范 ⑵避免行数过多的方法 ⑶代码缩 ...

  2. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  3. /etc/profile文件被改坏导致命令不可用

    这几天在装一个软件,设置环境变量的时候,不小心把/etc/profile文件改坏了(就是没配置对),在source /etc/profile后导致所有命令都不可用了.出现如下报错: -bash: xx ...

  4. java中CRUD(增删查改)底层代码的实现

    java中CRUD(增删查改)底层代码的实现: package com.station.dao; import com.station.model.Product; import java.sql.* ...

  5. Ubuntu改坏sudoers后无法使用sudo的解决办法

    练习安装odoo的时候,创建了一个odoo用户,想把它赋予sudo权限,然而,编辑的时候不留意,改坏了,导致sudo无法使用,无法编辑sudoers文件修改回来. 总提示如下信息: >>& ...

  6. 【转载】sudoers改坏后无法使用sudo的解决办法

    练习安装odoo的时候,创建了一个odoo用户,想把它赋予sudo权限,然而,编辑的时候不留意,改坏了,导致sudo无法使用,无法编辑sudoers文件修改回来. 提示如下信息: >>&g ...

  7. 代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码

    代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码

  8. PHP童鞋改JAVA代码怎么处理

    用线上升级平台代码练手,学习JAVA.飞哥建议我们自己从头再搭建一套,提高会大.我自己作为一个JAVA出身的人,用了几天时间学会PHP的经验来看.最好,先在原来代码基础上改些东西.熟悉了基本语法之后再 ...

  9. 取消开机logo,改成代码刷屏

    将开机logo改成开始时代码刷屏,这样就能很方便看到开始时的一些问题 首先 sudo chmod 666 /etc/default/grub 然后将 GRUB_CMDLINE_LINUX_DEFAUL ...

  10. 改改"坏"代码

    程序猿很多时候费了九牛二虎之力使用各种黑科技实现了某个功能,终于可以交差,但整个过程就像个噩梦,一般人是不太愿意回过头去阅读自己写的代码的,交出去的代码就让它如往事般随风吧. 可你不愿读自己的代码,却 ...

随机推荐

  1. 阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化

    本文由阿里闲鱼技术团队逸昂分享,原题"消息链路优化之弱感知链路优化",有修订和改动,感谢作者的分享. 1.引言 闲鱼的IM消息系统作为买家与卖家的沟通工具,增进理解.促进信任,对闲 ...

  2. SpringBoot整合Netty+WebSocket

    SpringBoot整合Netty+WebSocket 构建环境 pom.xml <?xml version="1.0" encoding="UTF-8" ...

  3. Golang-包8

    http://c.biancheng.net/golang/package/ Go语言包的基本概念 Go语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方 ...

  4. 【推荐】一款开源且成熟的OA协同办公系统,自带低代码开发功能!

    项目介绍 今天给大家推荐一款开源且拥有成熟的OA办公系统功能,自带低代码开发平台,可以快速搭建OA系统.人事系统.CRM系统.办公用品系统.项目管理系统.合同管理系统等,让你可以快速上手.快速实施.快 ...

  5. 二叉树神级遍历算法:morris遍历算法

    morris遍历的实质 建立一种机制,对于没有左子树的节点只到达一次,对于有左子树的节点会到达两次 morris遍历的实现原则 记作当前节点为cur. 如果cur无左孩子,cur向右移动(cur=cu ...

  6. 记一次 .NET某数字化协同管理系统 内存暴涨分析

    一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doubl ...

  7. Codeforces Round 961 (Div. 2)

    题目链接:Codeforces Round 961 (Div. 2) 总结:B1wa两发可惜,C出得有点小慢. A. Diagonals fag:贪心 Description:给定一个\(n * n\ ...

  8. IDEA测试Flink程序

    一.导入项目,添加jar包 右键项目=>open module setting 选择Flink1.9的lib目录下flink-dist_2.11-1.9.2.jar包(对应运行版本) 保存即可. ...

  9. Luogu P10843 Turtle and Cycles 题解 [ 蓝 ] [ 差分 ] [ 前缀和 ] [ 贪心 ] [ 数学 ]

    Turtle and Cycles:修改转化为交换差分数组的 trick 运用.这个 trick 实际上在 NOIp2021 里出过一次了. 转化 首先,\(a_{(i - 1) \bmod n} + ...

  10. Linux驱动---按键

    目录 一.Input子系统 1.1.简介 1.2.Input子系统构成 1.3.input_dev结构体 二.输入设备驱动开发流程 2.1.分配和初始化输入设备 2.2.注册设备 2.3.事件上报 2 ...