Cursor实战回顾:花慧小程序开发

798 阅读7分钟

前言

Cursor作为“AI程序员”,很多人都有所尝试或有所了解,但是普遍不够深入,这也导致很多的人对Cursor的态度比较消极。

今天这篇分享,主要回顾一下使用Cursor开发一款小程序的情况,希望可以为大家展示更多Cursor的能力,也为大家提供更多应用AI的灵感。

项目概述

背景

个人喜好养花,看着生机盎然的植物,总会让繁忙的心平静下来。但是个人养花水平实在有限,尤其是容易忘记浇水,历史战绩包括并不限于养死了“绿萝”、“多肉”等多种“怎么养怎么活”的绿植。

为了更好的管理自己的绿植,也为了应用学到的大模型能力,我自己开发了一款AI助力养花的小程序“花慧”,目前处于小范围内测阶段,还不完善,大家轻喷哈。

简介

花慧是一款专为花卉爱好者研发的AI小程序,应用将大模型技术融入花卉养护全过程,简化日常养护管理,提供个性化养护指导,同时,通过AI技术为花卉提供更多有意思的用法。

效果展示

  • 首页

20250201145158

  • 添加花卉

20250201145230

  • 花卉详情

20250201145244

  • AI问答

20250201145310

  • 日常检查

20250201145324

过程与思考

开发概况

借助Cursor,初版开发合计3.5人天。

相同功能呢,如果个人全人工开发,估计6-7人天。

当然,这里都是事后主观总结的,非精准数字,仅供大家参考。

技术栈

  • UI:uniapp+uview2.0
  • 后端:uniCloud Serverless
  • 大模型API:智谱的对话模型GLM-4-FLASH、图片识别模型GLM-4V-PLUS,后续的功能用到了Gitee部署的Kolors和字节的Coze API。

过程记录

  1. 周五晚上:主要想直接通过Cursor搭建uniapp+uview2.0项目脚手架,并生成初版,尝试多次,但是生成结果都不是很满意。

  2. 周六上午:再次尝试一步生成环境+初版,依然不满意。主要是uniapp命令行创建项目后引入插件及相关版本冲突的问题,Cursor不太好解决,遂放弃。最终采用HbuilderX建立项目,配置各类插件,然后导入到Cursor。

  3. 周六下午和晚上:基于上午配置的工程,使用Cursor按照上述提示词生成各个模块及初步功能,包括多Tab、页面风格、花卉管理(包括拍照识别建档)、浇水、施肥等待办管理、知识库、个人中心。

  4. 周日上午:既然都是基于AI的应用了,直接把知识库更改为AI问答,采用ChatGPT对话方式提供服务,代码全部由Cursor引入GLM文档后自动生成。

  5. 周日下午:通过Cursor实现“AI用法”中的拍照识花、花卉日常状态检查功能。

  6. 周一:Cursor生成的界面和我指定的参考图已经比较接近了,但是整体不是很好看,找了个朋友花费半天帮我把界面给优化了下。

至此小程序第一版已经实现了,功能如下:

  • 登录
  • 首页
    • 浇水、施肥提醒及快捷操作
    • 关注花卉
  • 花园
    • 拍照识别建档
  • AI
    • 拍照识花
    • 花卉日常检查
  • AI问答
  • 我的

初版提示词

## 目标
基于uniapp,搭建一个绿植管理小程序。

## 功能
多tab模式,以下是五个tab,中间tab需要与其他tab有明显区分。
### 首页
主要展示提醒、关注绿植。
- 提醒:当前待办事项,比如浇水、施肥,这些事项会根据每个绿植的情况自动计算,然后发送提醒。
- 关注绿植:花园中重要的绿植可以在首页展示,方便关注。
### 花园
所有绿植列表,展示绿植缩略图、名称、当前花龄。
该页面需要有新增按钮。
点击每个绿植可以进入详情页面,详情页面主要包括:
- 基本信息:绿植缩略图、绿植名称、种植时间、
- 养殖信息:种植建议、浇水间隔、施肥间隔
- 养殖记录:可以拍照记录养殖过程,每次拍照可以记录图片、日期、心得
### AI
页面主要是拍照按钮,拍照后识别,识别结果包括绿植信息、养殖注意事项,同时还包括当前绿植状态、病情,已经后续养殖建议。
### 知识库
整体界面包括两部分。上部是一个分类的知识库,占据大部分界面,会有很多绿植相关文章可以查看。底部是一个对话框,录入信息发送后,会进入对话界面,就是一个大模型对话效果,可以直接询问绿植相关知识。
### 个人中心
主要展示个人头像,包括提醒间隔、使用手册、隐私政策等。

## 设计要求

整体界面要求绿色为主色调,给人生机盎然的感觉,设计风格要求尽量高端大气。

其中花园界面尽可能好看。

## 技术要求

采用uniapp实现小程序,UI使用uview2.0,接口在api中进行模拟返回。
图标采用uniapp内置图标,不用引入新的图标库。
图片可以使用upsplash 图片。

重点展示

挑选开发过程中比较典型的场景进行截图展示。

初始功能一键生成

基于HBuilderX创建的工程脚手架,使用“过程记录-初版提示词”让Cursor直接生成设计好的多个功能界面。

Snipaste_2025-02-01_14-32-53 Snipaste_2025-02-01_14-33-26

页面调整

预览后页面个别地方不满意,直接告诉Cursor改动意见。

Snipaste_2025-02-01_14-33-59

页面实现

“初始功能一键生成”Cursor已经直接生成很多页面,此处以花卉录入(即:拍照识别建档页面)展示。

Snipaste_2025-02-01_14-34-58

业务逻辑实现

实现绿植的管理接口,此处使用unicloud实现。

Snipaste_2025-02-01_14-35-57

前后端对接

实现绿植模块的前后端对接。

Snipaste_2025-02-01_14-35-27

AI使用心得

2-8原则

大模型目前肯定无法全部完成开发工作,80%其实也达不到,这次这个项目,个人估计也就50%。

2-8原则更多的是说明一个思路:目前AI助力开发的方式应该是AI与程序员协同,AI做AI擅长的,我们做我们擅长的。

这其实也引出了目前AI助力开发的一个重要学习方向,就是选定一个产品、一个模型,深入使用,比如我选择的“Cursor+Claude3.5”,只有深入了解后,我们才能准确的划分哪些内容交给AI,哪些内容留给自己。

提示词工程

这个已经是老生常谈了,只有清晰明了的提示词,才能让大模型快速响应正确结果,才能做到提升效率,反之,可能来回问答的时间都超过自己实现的时间了。

基础环境搭建不适合

我们开发过程可能会遇到很多环境搭建、插件引入的场景,这些场景如果存在应用不广、文档不全、或者步骤比较繁琐的情况,更建议大家人工搭建,可能性价比更高。

人为限定上下文

鉴于于目前大模型的上下文限制,目前使用AI时,如果遇到比较大的功能模块,建议针对分解后的子模块分别使用AI进行实现,这样准确度会比较高。

总结

这次小程序初版开发的过程,如果抛开Cursor,我一个人估计得6-7天才能完成,但实际只花费了不到一半的时间,这应该算得上是生产力级别的提升了,这也使我下定决心将新项目的主力开发工具更换为Cursor了。

个人感悟

Cursor等“AI程序员”不可能一次性就达到“贾维斯”的地步,但是,AI对开发工作的提升,还是很明显的,并且,它们一直在进步。

大模型的发展不会因为我们不接受这种方式就停止,也许,我们应该调整一下自身开发的流程和范式,与AI协同,让AI更加紧密的提升我们的开发效率。