最近在用 Cursor 开发项目,开发效率大大提升,感觉就是:你不会的AI会,你会的AI更会,如果能利用好AI,你的能力将被无限扩展。本文将以实际的项目开发来进行分享,使用文中的 prompt 你将能快速实现 GitHub 用户点赞查看器的开发。如果你不是很了解如何使用 Cursor 来进行有效开发,那么文中的实战经验也许对你有用。
本文不会介绍如何安装 Cursor,也不会介绍如何使用 Cursor 的基本功能。下面的对话也适合其他的 AI 编辑器,在这不一一赘述。
新建一个空文件打开 Chat 模式或者使用 Composer 模式,然后以对话的形式完成 GitHub 用户点赞查看器应用的开发。
预览图:
界面功能: 1、输入框,用户可以输入GitHub用户名称 2、用户的 star 项目列表,根据输入的GitHub用户名称。 要求: 使用 GitHub 官方提供了 GitHub API 来访问用户的 star 项目列表,请给出合适的UI界面。要求使用tailwindcss
在第一次完成的界面中,我们发现,AI 只调用了第一页数据,并没有进行分页获取数据处理。于是我们进行如下对话:
其实有个问题,接口返回的接口只是第一页的数据,并没有给出完整的收藏数据,该如何优化这个问题呢?
其实上面第二轮对话后整个功能已经出来了,在此基础上我们让你进行优化,如下:
我希望请求分页数据时,可以把分页数据放到sessionStorage里,你看这样行吗?或者有更好的缓存方案吗?
我希望输入框增加一个清空文本内容的按钮,清空用户名时,下面的列表也清空。干脆,输入框使用 ant-desgin组件吧?这样会方便些
我看了你的缓存逻辑,其实是有问题,你应该根据用户名称区分进行缓存,比如用户输入了用户名命中了缓存数据应该使用缓存数据。
很不错了,但是我希望增加一个可以检索已获取数据的功能。增加一个内容检索框,根据输入的检索内容对列表数据的description字段进行列表过滤。
上面我要求他的缓存数据放在sessionStorage里,后面我发现这种很不友好,于是想改用 localStorage 进行缓存。
我仔细思考了下,缓存还是放在localstorage 里吧。
代码中我希望对搜索过的用户名进行保存,最多保存10个用户名,用户点击用户名后可以快速查询。
以上所有的对话结束后就完成了整个应用GitHub 用户点赞列表查看器,如果你希望进行界面或者功能的增加可以继续以对话的形式完成。
当我们主要针对一个功能模块或者单一文件时,可以只使用 Chat 模式,如你只是在某个文件里加个按钮,或者加上某个单一功能,使用 Chat 模式可能更为方便。
当我们涉及的功能牵扯很多功能模块(文件)时,这时候用 Composer 能更准确的分析文件的上下文,从而让 Cursor 更好的了解你的整体项目文件架构和功能。
总结:
Chat 模式是对话式的,更适合即时互动和快速生成代码片段。
Composer 模式是结构化的,更适合长期编写、修改或重构代码的场景。
一次详细且完整的功能描述会让 AI 事半功倍,错误的描述可能会影响下面所有功能的对话,所以一开始给 AI 正确的引导是一个获取良好反馈的开始。
请实现一个 Github 用户点赞查看器。
AI 接受到信息后,要思考什么是Github 用户点赞查看器?Github 用户点赞查看器是干嘛的?🤔,用什么语言,想了下,那随机吧。
一通思考之后给你了一个界面丑陋,功能简易的界面。
请帮我实现一个 Github 用户点赞查看器。 界面功能如下: 1、输入框,用户可以输入GitHub用户名称,带有清除文本内容功能。 2、用户的 star 项目列表,根据输入的GitHub用户名称。 3、对查询的数据进行本地缓存。 要求: 使用 GitHub 官方提供了 GitHub API 来访问用户的 star 项目列表,请给出合适的UI界面。要求使用tailwindcss
把 AI 想象成一个带有情绪的人,把他当成你的合作伙伴,你给予他肯定和赞美时,他会更友好的配合你完成功能。
你太垃圾了,怎么还没修复这个问题。 算了,别搞了。
你实现的已经很完美了,但是我希望增加一个xx功能,你觉得这样好吗? 你太牛逼了,老板要给你加工资,老板希望增加一个xx 功能。 已经很不错了,好像xx功能有问题,你可以看下吗?
实际情况中,我们对一个功能描述的越多,对话次数越多,AI 可能会陷入混乱,导致功能无法实现或者出现偏离。这时,我们可以做如下处理:
在对话前,你可以加上如下 prompt:
在写代码前,我希望你分析文件所有的代码,然后在实现xx功能。
你可以对整个功能进行重构来实现xx功能。
请从第一性原理出发思考,来完成xx功能。
工欲善其事必先利其器,善于运用 AI 工具,提升的不仅是你的效率还有你的创造力。 当然现在很多AI 编辑器还有很多局限性,也不是所有的功能都能用 AI 来实现,我们是说现在不能,但不是未来不能。拥抱 AI,改变自己的编程方式才是真正通往 AI 黄金时代的开始。