ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

easy-vibe 生鲜电商微服务系统实战:从 PRD 需求拆分到网关联调上线的完整开发指南

easy-vibe 生鲜电商微服务系统实战:从 PRD 需求拆分到网关联调上线的完整开发指南 easy-vibe 生鲜电商微服务系统实战从 PRD 需求拆分到网关联调上线的完整开发指南【免费下载链接】easy-vibe vibe coding 101The first course for AI-native product builders.项目地址: https://gitcode.com/GitHub_Trending/ea/easy-vibe导读本指南是 easy-vibe 课程 Stage 2初中级开发综合实战环节的核心作业文档要求你围绕一份真实的 PRD产品需求文档从零构建一个生鲜电商微服务系统。与前面单服务项目不同该项目的后端按业务拆分为鉴权、商品、库存、订单等多个独立服务并通过 API 网关统一对外。读完本指南你将掌握服务边界的拆分方法、API 网关路由与 JWT 鉴权的实现思路以及如何通过预扣—确认/回滚机制解决跨服务的数据一致性问题最终交付一个可演示、可部署的微服务原型。项目概述与定位本项目要求你围绕真实 PRD 从零完成生鲜电商微服务系统。它是 Stage 2 的综合实战环节——微服务架构在实际工作中非常常见掌握服务拆分和网关路由的基本思路后你能应对更复杂的后端系统设计。整个产品由两个子系统构成子系统职责用户端浏览商品、下单、查看订单管理端商品管理、库存管理、订单管理后端按业务拆分为以下五个独立服务服务职责API Gateway统一入口、路由转发、鉴权校验Auth Service用户注册、登录、JWT 颁发Catalog Service商品信息管理Inventory Service库存数量管理Order Service订单创建、状态管理项目的一句话定义做一个由网关、鉴权、商品、库存、订单协作完成交易闭环的生鲜电商微服务系统。本项目重点不在复杂运营功能而是跑通商品浏览、下单、扣库存、查订单、管理端调库存这条完整链路。前置知识开始本项目之前你应该已经掌握以下内容前端页面设计与组件库使用UI 设计、现代组件库后端接口设计与开发接口代码编写数据库基础与 Supabase从数据库到 SupabaseGit 工作流与部署Git 和 GitHub、部署 Web 应用学习目标完成本实战后你将能够阅读 PRD 并提取微服务系统的开发任务清单按业务领域拆分服务边界鉴权、商品、库存、订单设计和实现 API 网关路由处理库存扣减和订单一致性等跨服务问题完成端到端联调交付可演示的微服务原型第一部分需求分析1.1 阅读 PRD本项目对应的需求文档见 PRD中文版。打开 PRD 后重点回答以下问题服务如何拆分每个服务的职责边界是什么前台和管理端分别有哪些页面下单后库存扣减的策略是什么成功 / 失败 / 超时各怎么处理第一版哪些复杂能力如分布式事务、消息队列先不做::: warning 如果以上问题没有明确答案不要开始写代码。需求理解不清楚是导致返工的最常见原因。 :::1.2 明确 MVP 范围与技术选型根据 PRD第一版必须包含API Gateway、Auth 服务、Catalog 服务、Inventory 服务、Order 服务、用户端商品列表/详情/下单、管理端商品与库存管理。第一版明确不做真实支付、优惠券和促销、秒杀、消息队列集群、分布式事务框架。也就是说跨服务一致性先通过调用链补偿这类轻量手段解决而不是引入重型的分布式事务中间件。PRD 给出的技术选型建议前端框架Next.js搭配 TypeScript、Tailwind CSS网关Node.js Express/Fastify服务层Node.js Express/Fastify数据库PostgreSQL鉴权JWT编排Docker Compose站点入口约定为三套域名官网前台www.xxx.com、用户前台app.xxx.com、后台管理台admin.xxx.com。1.3 确认系统架构PRD 定义了三套入口、九个页面的总体结构官网前台 1 个、用户前台 4 个、后台管理台 4 个整体请求链路如下从架构图中可以看到两个关键设计决策前端永不直连业务服务一切请求统一走网关Order Service 与 Inventory Service 之间存在直接的跨服务调用下单时扣库存这是本项目要重点解决的一致性难点所在。1.4 页面结构与关键用户链路九个页面的核心功能如下入口页面路径核心功能官网前台官网首页www:/品类入口、活动区、登录入口用户前台商品列表页app:/products浏览分类、查看商品卡片、加入购物车用户前台商品详情页app:/products/:id查看详情与库存状态、加入购物车用户前台购物车页app:/cart查看购物车、修改数量、提交订单用户前台订单页app:/orders查看我的订单与订单状态后台管理台后台首页admin:/商品数、库存预警、订单概览后台管理台商品管理页admin:/products上下架商品、编辑价格与分类后台管理台库存管理页admin:/inventory查看库存、调整库存后台管理台订单管理页admin:/orders查看订单、按状态筛选关键用户链路PRD 建议借鉴 Instacart 的用户购物路径从商品浏览到购物车、订单查看都应足够直接用户端强调快速下单管理端强调状态管理前端体验尽量像统一产品而非几个接口的拼凑。关键状态流为订单待创建 → 已创建 → 已完成 / 已取消库存可用 → 预扣 → 确认扣减 / 回滚。第二部分搭建项目骨架2.1 生成项目结构进入开发后第一步是让 AI 编程工具帮你生成骨架。提示词参考请基于当前 PRD帮我生成一个生鲜电商微服务系统的项目骨架。 要求 1. 生成前端用户端和管理端骨架 2. 生成 api-gateway、auth-service、catalog-service、inventory-service、order-service 五个目录 3. 每个服务先只做最小可运行入口 4. 先不接真实数据库和支付这里的关键约束是最小可运行骨架阶段不接数据库、不接支付只为每个服务生成一个能启动、能响应健康检查的入口从而先把工程边界和调用链立起来。2.2 验证项目结构逐项检查五个服务目录结构清晰API Gateway 可以启动并转发请求各服务健康检查接口可用前端用户端和管理端页面可访问第三部分迭代开发3.1 按模块推进骨架验证通过后按以下顺序逐模块补齐接口API Gateway路由配置、JWT 校验中间件Auth Service注册、登录、JWT 颁发Catalog Service商品 CRUD、列表查询Inventory Service库存查询、库存扣减Order Service订单创建、状态流转、库存联动管理端商品管理、库存管理、订单管理PRD 给出的推荐开发顺序与此一致Monorepo/Workspaces 与 Gateway → Auth 服务 → Catalog 与 Inventory → Order 下单闭环 → 前端用户端与管理端 → Docker Compose 与文档。先打通后端主链路再接前端最后做编排。3.2 设计数据模型按 PRD 建议各服务的数据模型可以这样建使用 PostgreSQLusers ( id uuid primary key, email text, password_hash text, role text, created_at timestamptz ) products ( id uuid primary key, name text, category text, price_cents int, status text, created_at timestamptz ) inventory_items ( id uuid primary key, product_id uuid, available_quantity int, reserved_quantity int, updated_at timestamptz ) orders ( id uuid primary key, user_id uuid, total_amount_cents int, status text, created_at timestamptz ) order_items ( id uuid primary key, order_id uuid, product_id uuid, quantity int, price_cents int )注意inventory_items中available_quantity可用库存与reserved_quantity预扣库存两个字段的区分——这正是预扣—确认/回滚机制的数据基础下单先预扣成功后把预扣转为确认扣减失败或超时则回滚预扣。3.3 下单主链路与一致性处理PRD 定义的下单主流程如下用户提交订单Gateway 完成鉴权Order 服务校验商品Inventory 服务预扣库存Order 服务创建订单成功则确认库存失败则补偿回滚关键规则库存不足直接失败同一个订单只允许一次成功创建所有状态变化要可追踪3.4 外部接口草案所有外部接口统一走 Gateway接口草案如下方法路径说明POST/api/auth/register注册POST/api/auth/login登录GET/api/catalog/products商品列表GET/api/catalog/products/:id商品详情POST/api/orders创建订单GET/api/orders/my当前用户订单列表GET/api/orders/:id订单详情PATCH/api/inventory/:productId管理员调整库存POST/api/admin/products管理员新增商品PATCH/api/admin/products/:id管理员编辑商品POST /api/orders请求体示例{ items: [ { productId: p1, quantity: 2 }, { productId: p2, quantity: 1 } ] }3.5 模块自检每个模块完成后按下面的检查项逐项验证检查项验证方法网关路由各服务接口是否通过网关正确转发权限隔离用户端和管理端接口是否隔离数据一致商品和库存数据是否同步交易闭环下单后库存扣减、订单状态是否一致失败处理库存不足或超时时是否有补偿机制此外PRD 还提出了非功能要求也应纳入自检范围本地一键启动、服务之间日志可追踪、接口返回结构统一、关键链路有错误处理和补偿逻辑。角色权限上普通用户只能浏览商品、下单、查看自己的订单管理员才有商品上下架、库存调整、查看订单的权限。第四部分联调与上线4.1 端到端测试所有模块打通后至少验证以下场景浏览商品 → 加入购物车 → 下单 → 查看订单管理员 → 添加商品 → 更新库存 → 查看订单4.2 后台指标与监控PRD 建议管理后台至少展示这些指标下单成功率、库存回滚次数、热销商品排行、订单状态分布、库存预警数基础监控建议关注网关错误率、鉴权服务成功率、库存服务超时率、订单创建失败率。交付物完成本项目后你需要提交以下内容可访问的线上演示链接源码仓库链接含 READMEPRD 文档核心页面截图商品列表、下单页、订单页、管理后台60 秒演示视频评分标准维度基本要求进阶要求PRD 对齐页面、功能、服务拆分基本符合 PRD能清晰说明服务拆分的理由产品闭环浏览 → 下单 → 库存扣减 → 查看订单可跑通订单超时或库存不足有补偿机制服务架构各服务可独立启动通过网关统一访问服务间通信有错误处理和重试后台能力商品、库存、订单管理可操作管理端有数据统计工程完整度前端、网关、服务、数据库链路已接通有 Docker Compose 或类似编排参考资料UI 设计使用现代组件库更新你的界面从数据库到 Supabase大模型辅助编写接口代码与接口文档Git 和 GitHub 工作流如何部署 Web 应用生鲜电商微服务系统 PRD【免费下载链接】easy-vibe vibe coding 101The first course for AI-native product builders.项目地址: https://gitcode.com/GitHub_Trending/ea/easy-vibe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表