大家好,我是六哥!最近不少小伙伴和我吐槽,在使用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. MCU命令

    三D打印常用MCU命令 allocate_oids count=42 分配 42 个 OIDs,后续用于标识和管理不同的设备或组件 config_spi oid=0 pin=PD7 cs_active ...

  2. 对象池框架 commons pool2 原理与实践

    当资源对象的创建/销毁比较耗时的场景下,可以通过"池化"技术,达到资源的复用,以此来减少系统的开销.增大系统吞吐量,比如数据库连接池.线程池.Redis 连接池等都是使用的该方式. ...

  3. HTTPS 证书自动化运维:告别手动管理,迎接自动化时代

    1. 引言 随着互联网的发展,网络安全变得越来越重要.HTTPS(Hypertext Transfer Protocol Secure)通过使用 SSL/TLS 协议加密数据传输,确保了用户与网站之间 ...

  4. 一、CAN协议基础知识

    一.CAN总线基础知识 注:参考江科大教程,瑞萨电子<CAN入门教程>. CAN (Controller Area Network),是ISO国际标准化的串行通信协议.CAN协议经过ISO ...

  5. TCP/IP协议笔记

    TCP/IP 一.TCP/IP简介 TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol),是用于因特网 (Int ...

  6. .NET最佳实践:webapi返回IAsyncEnumerable提升性能

    什么是IAsyncEnumerable IAsyncEnumerable<T> 是 .NET 中用于表示异步数据流的接口. 它允许你逐个异步地获取数据项,而不是将所有数据一次性加载到内存中 ...

  7. stay:将代码翻译为Gif动图,妈妈再也不用担心我调试找不到bug了

    本文首发于微信公众号:呼哧好大枫.原作者与本文作者是同一人. 平常在做算法题或者是 debug 的时候很需要一款能够实时地将代码执行逻辑和数据以图形化的形式渲染出来的工具.之前尝试了几款(visual ...

  8. SQL Server 2005与2008清空日志方法

    SQL2008 的收缩日志 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:SQL2005 清空日志的方法:Backup Log D ...

  9. stream流中toMap()api和Duplicate key问题

    1.指定key-value,value是对象中的某个属性值. Map<Integer,String> userMap = userList.stream().collect(Collect ...

  10. Coordinate Spaces

    Coordinate Spaces 本主题包含以下部分: 根空间 用户空间 像素空间 任何VisionPro图像支持一系列坐标空间,以提供一个数值框架来表达特定特征的位置.最有用的空间是根空间,它将点 ...