【自然语言编程实践】GPT4 企业级在线商城开发 01-数据模型设计

论证一个观点

观点如下:

Pasted image 20230522112537.png

Pasted image 20230522112916.png

群里的朋友都知道,在此之前,我已经利用 GPT 开发了一个手机游戏,而我几乎没有写任何代码。

以下是部分界面:

Pasted image 20230522112947.png

Pasted image 20230522113003.png

Pasted image 20230522113010.png

但它目前是个半成品,因为我太忙了,没有太多时间去做它。

而且为了效率,我选择了 GPT3.5 而不是更加精准的 GPT4。

这次我决定换一些难度低一点,但业务量更多的项目来实践。

并且我会记录所有和 GPT4 沟通的重要路径,把它们写成一个系列的文章。

GPT,告诉我该怎么做?

第一步,我先让 GPT4 告诉我怎么做。

Pasted image 20230521010900.png

我们得到了 8 个步骤,它们都挺需要,但我认为最复杂的是 2、3、4 步。

第 5 步可以暂且忽略。

第 6 步已经轻车熟路,难度极低。

第 7、8 步后面可以继续使用 GPT4 帮助。

前 3 步的概要设计我只需要花几分钟就能搞定,以下是我的概要设计。

注意,因为有 GPT4 的存在,我们不需要详细设计,只需要概要设计。至于细节,可以在制作的过程中逐步细化。

人工苦力上线,进行概要设计

1. 需求分析:

服务用户是有购物需求的群体。找客户,卖东西,赚差价。我不是主要负责终端的,这部分不需要过度花心思。

2. 系统设计:

在线商城,运行在 Web 环境。用户主要通过微信点击链接或者扫描图片二维码进入购买商品。

商城至少有客户端和管理端两个系统。

系统包括员工、客户、充值、产品、订单、活动几个核心模块。

3. 技术选型:

  • 开发语言:TypeScript。

  • 后端:Nextjs、Prisma、PostgreSQL。

  • 前端:Nextjs、TailwindCSS。

后面的过程主要都是在做第 2 步 和第 4 步,也就是设计和开发这个步骤的事。

用户故事

我们知道系统设计最主要的是三个东西的设计,一个是产品设计、一个是数据结构设计、一个是 UI 设计。

产品设计是需要满足一定规则的,所以不适合用 GPT 来生成。

所以我先来设计基本的流程。

按照敏捷开发中的用户故事的方式来设计。

角色:管理员、员工、客户。

需求:管理员和员工卖商品、客户买商品。

收益:管理员赚钱、客户赚工资、客户满足购物欲。

管理员的用户故事:

故事 1: 作为管理员,我想登陆系统,以便于管理员工。

故事 2: 作为管理员,我想管理员工,以便于让员工帮我管理系统。

故事 3: 作为管理员,我想拥有所有权限,以便于管理我的系统。

员工的用户故事:

故事 1: 作为员工,我想管理产品,以便于让客户浏览产品。

故事 2: 作为员工,我想管理订单,以便于知道客户的购物情况。

故事 3: 作为员工,我想管理活动,以便于提高客户的消费率。

故事 4: 作为员工,我想管理客户,以便于处理一些常见事务,比如冻结恶意客户等。

故事 5: 作为员工,我想查看充值,以便于清楚商城的运作情况,并了解客户的消费情况。

客户的用户故事:

故事 1: 作为客户,我想要注册,以便于对商品进行下单。

故事 2: 作为客户,我想要接收验证码,以便于注册账号。

故事 3: 作为客户,我想要填写收货地址,以便于对商品进行下单。

故事 4: 作为客户,我想要购买商品,以便于满足我的购物欲。

虽然看上去内容不多,挺简陋,但我也要花将近半小时来噼里啪啦打这些字。

GPT 上线,完成数据模型设计

接下来设计数据结构。

这一部分 GTP 非常擅长,我们让它来做。

设计管理员、员工、和客户

Pasted image 20230521014614.png

补充细节:验证码和地址

设计完成之后我发现有一些疏漏。比如没有创建时间和更新时间的字段,也没有验证码和收货地址相关的表。所以又给它提示,让它继续设计。

Pasted image 20230521014940.png

在此之前,ChatGPT 的一个问题是消息过长会导致消息中断,不过前几天的新版本中增加了 Continue generating 功能,再也不需要输入继续了。

设计产品和活动

接下来继续从管理端的角度设计,先把产品、活动这些东西设计好,再设计 C 端会更容易一些。

开发过商城系统的朋友应该都知道,活动这个模块是最复杂的,因为它的玩法实在是太多了。有些复杂的商城系统还要考虑各个活动之间的冲突问题。

Pasted image 20230521020223.png

粗略检查了一下,没有什么大问题。

设计充值和订单

最后就是充值表和订单表了,这两个模块相对简单,没什么好说的。

Pasted image 20230521021408.png

可以看到,虽然我的 prompt 很简单,但是 GPT 却充分考虑到了很多细节。比如它知道一笔订单可能对应多个商品。

这里你可能会问,怎么没有购物车呢。因为我打算把购物车放到前端缓存中。

数据模型就设计完成了。

我把它放到 prisma 项目中试试看。

Oops!有报错。

Pasted image 20230521023449.png

看看提示,原因是一对一的关系,在定义端必须是唯一字段。而我们却少了 @unique 的唯一字段标识,手动加一下就可以了。

造成这种现象的原因有可能是 GPT4 的知识只到 21 年 9 月份,很多框架和库未来的更新它是不知道的,所以这也算是它的一个缺陷。

简单修复了一下,建表完成。

Pasted image 20230521143311.png

如果你比较懒,可以不用自己修复,GPT4 也很喜欢修这种小问题。

方式就是把错误和代码一股脑甩给它就可以了。

Pasted image 20230521143417.png

好,这部分工作终于完成了。

原文链接:https://juejin.cn/post/7235818900817739833

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享