Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Copilot AI 编程训练营第二天:1 小时 0 手写开发一个购物车系统

Copilot AI 编程训练营第二天:1 小时 0 手写开发一个购物车系统

作者头像
伍六七AI编程
发布于 2024-01-03 10:09:21
发布于 2024-01-03 10:09:21
30400
代码可运行
举报
文章被收录于专栏:preparedprepared
运行总次数:0
代码可运行

经过训练营第一天的学习,大家都已经能基本熟练的使用 GitHub Copilot 进行辅助编程啦。

第二天,是考验学习成果的一天,我们需要在 2 小时内,通过 GitHub Copilot 完全 0 代码开发一个购物车系统。

熟练使用的同学,大概 1 小时就能完成啦!

我们开始今天的分享~

前置内容(可以文末领取)

  1. 一个默认的 Spring Boot 框架。
  2. 一段需求描述。
  3. 一段啤酒数据的 Json 数据。

分析需求

输入需求文档,可以复制内容到 Copilot,也可以直接上传文件到 GPT-4.0。

@workspace 目标:开发一个购物车。购物车应该允许用户添加和删除产品。 需求描述: 1、创建一个带有以下方法的 API Rest 1)使用页偏移和限制获取啤酒列表。 2)按 id 获取啤酒详细信息。 3)通过名称、描述、标语、与食物搭配和价格搜索啤酒。 2、在主页面创建产品列表。 3、创建一个搜索栏来筛选产品。 4、当用户点击产品时跳转到描述页面。 5、创建一个购物车。 1)将产品添加到购物车。 2)从购物车中删除产品。 3)计算购物车中产品的总价格。 请你分析上述需求文档,结合项目结构,生成 controller 层代码。

controller 层代码框架就生成好了,我们直接复制粘贴到 Controller 目录下即可。

解析 Json 数据

解析 Json 数据生成 Java Bean 对象

这个 Json 文件有点大,生成 Java Bean 对象的时候,可以选择其中一个对象进行生成。

也可以,把文件 copy 到 VS Code Studio 中,在 chat 中可以和 Edit 区域进行联动(这个还是很高级的~),可以直接问 Chat。

阅读这个 json 文件,帮我生成一个 Java Bean 对象

我们把代码 copy 到 model 目录(可以自己创建)下。这个时候,我们的代码是如下图结构所示:

解析 Json 数据工具类

根据 Json 数据文件,直接生成一个工具类,帮我们读取 Json 数据。

阅读这个json文件,帮我生成一个读取完整json数据的Java工具类。

我们 copy 包配置到 pom.xml 文件中,然后创建一个 util 文件夹,存放工具代码。

这个方法是我们的核心工具方法,我们让 Copilot 帮我们生成单元测试

选中这个方法,选择 Copilot,下拉选择 Gernerate Tests 生成单元测试。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class JsonUtilTest {

    @Test
    void testReadJsonFile() {
        // Arrange
        String fileName = "beers.json";

        // Act
        List<Beer> beers = JsonUtil.readJsonFile(fileName);

        // Assert
        assertNotNull(beers);
        assertEquals(3, beers.size());
        // Add more assertions based on your specific JSON file and expected results
    }
}

验证无误之后,继续往下,如果有问题,让 Copilot 帮你修复代码!

后端代码

啤酒商品 Controller 代码

这一步,我们让 Copilot 帮我们完善具体的方法内容。

使用页偏移和限制获取啤酒列表,啤酒列表数据使用 JsonUtil 类读取 src/main/resources/beers.json 文件获取。 请你根据上述描述,生成 getProducts 方法的完整内容

我们把内容 copy 到方法体中。

第二个方法,prompt:

按 id 获取啤酒详细信息,啤酒列表数据使用 JsonUtil 类读取 src/main/resources/beers.json 文件获取。然后使用 stream api 进行过滤返回匹配的 beer 对象进行返回。请你按照上述描述,生成 getProductById 方法的完整内容。

第三个方法,prompt:

通过名称、描述、标语、与食物搭配和价格搜索啤酒。啤酒列表数据使用 JsonUtil 类读取 src/main/resources/beers.json 文件获取。然后使用 stream api 进行过滤返回匹配的 beer 对象数组。请你按照上述描述,生成 searchProducts 方法的完整内容。

购物车 Controller 代码

我们使用 workspace 命令,直接让 Copilot 生成 CartController 代码。

@workspace 请你使用本地缓存购物车数据的方式,实现购物车的controller代码编写。

生成前端代码

虽然阿七是一个后端工程师,不会前端代码,但是无所谓,Copilot 什么语言都会。

有了 workspace 命令,全局性质的代码也不在话下!

@workspace 生成一个html页面,能够查询 beers 分页数据、详情数据;往购物车里添加beer、删除beer,计算购物车里的总价格。要求:能够正确调用对应的接口。现在,请你输出对应的html页面

我们在 Resources 下创建一个 static 文件夹,创建一个 index.html 文件,把 Copilot 生成的内容 Copy 到 index.html 文件中。

启动 Spring Boot 项目,浏览器打开 localhost:8080/index.html。

我们发现有些问题,包括页面的问题,以及后端代码的问题,不要慌,都可以扔给 Copilot,让它帮我们解决。

问题排查

编译问题

启动项目的时候,我们发现 ProductController.java 类有编译问题,我们让 Copilot 帮我们修复。

实体类导入 lombok 包

我们直接复制粘贴,就能解决代码问题。

总价格计算

修改计算购物车总价格的接口,让总价格等于购物车中所有beer的price之和

前端页面问题

刚开始页面很丑,可能也很大部分不满足我们的要求,我们让 Copilot 帮我们修改,直到满足我们的要求。

这个html文件,啤酒列表展示了啤酒的描述。 但是描述内容太多了,修改展示的字段,只展示 name、tagline、price 三个字段

最后的功能展示

我们选择 Add to Cart,Cart 列表中就会多一个 beer 商品,Total Price 区域就会计算购物车中的总价格。

我们选择 Remove from Cart,Cart 列表中就会删除一个 beer 商品,Total Price 区域就会重新计算,扣减这个 beer 商品的价格。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伍六七AI编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue2.0实现购物车功能
购物车功能是一件比较繁琐的事情,逻辑功能太多,今天就用vue2.0实现一个简单的购物车功能,数据都本地自己写的假数据
小周sir
2019/09/23
1.3K0
vue2.0实现购物车功能
商城项目-已登录购物车
购物车系统只负责登录状态的购物车处理,因此需要添加登录校验,我们通过JWT鉴权即可实现。
cwl_java
2020/01/14
9651
商城项目-已登录购物车
Android 购物车实现(思路+步骤+源码)
  购物车作为电商APP来说,是必备的。并且很多公司面试初级Android会问你购物车的实现思路和步骤,第一是想看你是否思路清晰,第二是否有过实践。里面的逻辑我相信用过淘宝、天猫、京东等电商APP的都比较清楚,但是写这个功能并不容易,很容易把逻辑写错,或者写着写着人就懵逼了,这是因为已经深陷其中,当然了,我也是一个菜鸟,在这里也是分享一下自己写这个购物车的一些思路和想法,大神大佬就一笑而过吧。
晨曦_LLW
2021/01/26
7.7K0
购物车原理以及实现
可以看到,购物车这样一个功能模块,在各种购物类APP或者web应用中绝对是必不可少的东西.不论在大学中的课程设计,还是在实际的项目开发中,绝对非常重要且有些复杂的内容. 在实际操作中,身边有很多的小伙伴遇到编写购物车的代码的时候,有时候真的是一脸懵逼,总是搞不明白设计的思路,这就是本文写作的原因. 所以,本文适合搞不清楚购物车实现原理,知道原理但是实际编码不知道如何下手的小伙伴,我将给出一个思路以及实际的代码供大家参考. 在本文中,我将会用尽可能简单的句子,表达出我想表达的意思.废话不多说,开始我们的购物车实战!
roobtyan
2019/02/21
6.5K0
购物车原理以及实现
VUE实现一个购物车
想象每个组件都分别为家中的成员:爸爸、妈妈、孩子们。但是,作为一个家庭,他们需要共享状态。在这个家庭中,充当看家狗的Vuex就是来帮助我们解决问题的。
HelloWorldZ
2024/03/20
2030
VUE实现一个购物车
一个更复杂的 PHP 代码示例,我将展示一个购物车系统的基本实现,它包括商品类、购物车类和一些基本的操作方法。 <?php // 定义商品类 class Product { private $n
一个更复杂的 PHP 代码示例,我将展示一个购物车系统的基本实现,它包括商品类、购物车类和一些基本的操作方法。
青灯古酒
2023/10/23
3030
购物车的原理以及实现
  今天模拟京东的购物车实现原理完成了购物车模块的开发, 给大家分享下。 京东的购物车实现原理:在用户登录和不登录的状态下对购物车存入cookie还是持久化到redis中的实现。下面就来具体说次购物车的实现过程 两种情况: 用户登录,购物车存入redis中 用户未登录,购物车存入cookie中 比较两种方式的优缺点:  cookie:优点:数据保存在用户浏览器中,不占用服务端内存;用户体检效果好;代码实现简单      缺点:cookie的存储空间只有4k;更换设备时,购物车信息不能同步;cookie禁用,
用户2146856
2018/05/18
2.5K0
【愚公系列】2022年01月 Django商城项目 30-购物车功能实现
文章目录 一、添加购物车 1.后端逻辑代码 2.前台请求接口代码 3.实际效果 二、获取购物车 1.后端逻辑代码 2.前台页面代码 3.实际效果 三、更新购物车 1.后端逻辑代码 2.前台页面代码 3.实际效果 四、删除购物车 1.后端逻辑代码 2.前台页面代码 五、合并购物车 一、添加购物车 1.后端逻辑代码 """ 一 前后端需求分析需求 前端需要收集: 商品id,商品数量, 选中是可选的(默认就是选中) 如果用户登陆了则请求携带session id
愚公搬代码
2022/02/04
5890
【愚公系列】2022年01月 Django商城项目 30-购物车功能实现
商品购物车微服务(4)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】
第十八章 1024电商平台-商品购物车微服务介绍和项目创建 第1集 1024电商平台-商品购物车微服务功能需求介绍 简介:商品-购物车-微服务功能需求介绍 电商里面的知识介绍 类目 一个树状结构的系统,根据业务可以分成4-5级。如手机->智能手机->国产手机 类目,在这里面,手机是一级类目,国产手机是三级类目,也是叶子类目 SPU Standard Product Unit:标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗
高大北
2022/09/16
7680
商品购物车微服务(4)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】
谷粒商城-高级篇(购物车)
​ 参考京东,在点击购物车时,会为临时用户生成一个name为user-key的cookie临时标识,过期时间为一个月,如果手动清除user-key,那么临时购物车的购物项也被清除,所以 user-key 是用来标识和存储临时购物车数据的
OY
2022/03/20
7160
谷粒商城-高级篇(购物车)
jsp电子商务 购物车实现之三 购物车
在该Servlet中利用了session进行存放值,就是开篇我们的方法之一,但是这种方法有什么问题呢?大家好好思考下!!!
张哥编程
2024/12/17
2230
[Skr-Shop]购物车之架构设计
在上一篇文章 购物车设计之需求分析 描述了购物车的通用需求。本文重点则在如何实现上进行架构上的设计(业务+系统架构)。
大愚
2020/04/14
1.7K0
深入解析Java中如何用Redis存储购物车信息:原理与实战案例
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/10/24
3330
深入解析Java中如何用Redis存储购物车信息:原理与实战案例
微信小程序之购物车功能
IMWeb前端团队
2018/01/08
4K0
微信小程序之购物车功能
【第十七篇】商城系统-购物车功能设计
  Nginx接收了 cart.msb.com这个域名的访问,那么会把服务反向代理给网关服务,这时网关服务就需要把该请求路由到购物车服务中。我们需要修改网关服务的配置
用户4919348
2022/10/04
8360
【第十七篇】商城系统-购物车功能设计
购物车的实现(jsp的session+Java的Map的结合)
1:电商如此发达的现在,作为一个web开发程序猿,如果不会写购物车,真是有点不好意思找工作。所以抓紧练习啊,从上篇博客中抽离出如何实现购物车的功能。 2:首先需要理解购物车实现的一些基本步骤。   2
别先生
2018/01/02
5.1K1
购物车的实现(jsp的session+Java的Map的结合)
用Vue写加入购物车小功能
上述代码中,我们创建了一个简单的商品页面组件,该组件显示商品的名称、描述和价格,并有一个 “加入购物车” 的按钮。当按钮被点击时,addToCart 方法会被调用,该方法通过 Vuex store 触发了名为 ‘m_cart/addToCart’ 的 mutation,将商品添加到购物车中。
用户10781437
2023/10/10
3450
实战 | 微信小程序之购物车功能
作者 | 林鑫 链接 | http://imweb.io/topic/59128ea36936ba9165f5bed8 前言 以往的购物车,基本都是通过大量的 DOM 操作来实现。微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能。 需求 先来弄清楚购物车的需求。 单选、全选和取消,而且会随着选中的商品计算出总价 单个商品购买数量的增加和减少 删除商品。当购物车为空时,页面会变为空购物车的布局 根据设计图,我们可以先实现静态页面。接下来,再看看一个购物车需要什么样的数
用户1097444
2022/06/29
2.1K0
实战 | 微信小程序之购物车功能
Android 购物车功能的实现
首先,众所周知,ListView是Android最常用的控件,可以说是最简单的控件,也可以说是最复杂的控件。 作为一个Android初级开发者,可能会简单的ListView展示图文信息。 作为一个有一
听着music睡
2018/05/18
2.9K0
电商---实现购物车功能
优点:不占用服务器资源,可以永远保存,不用考虑失效的问题 缺点: 对购买商品的数量是有限制的,存放数据的大小 不可以超过2k,用户如果禁用cookie那么就木有办法购买商品,卓越网实现了用户当用户禁用cookie,也可以购买。
周小董
2019/03/25
1.9K0
推荐阅读
相关推荐
vue2.0实现购物车功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验