电商整体架构以及需求分析
选择电商项目的原因
培训机构、网课以及GitHub上开源的电商项目如此之多的原因是,电商项目与我们的生活是息息相关的,我们日常也在网络上进行购物,所以对购物流程较为了解,所以在讲课时可以省略将一些业务功能的介绍并可以直接上手,且电商项目的技术和业务逻辑覆盖面较广,在编写电商项目的过程中,可以将以前学习过的技术都贯通的项目中进行学习。
电商分类
交易主体
b2c(business-to-consumer): 企业产品直接面向消费者的,例如小米商城、华为商城、苹果商城等。
b2b(business-to-business): 企业面向企业,例如阿里巴巴。
b2b2c(business-to-business-to-consumer): b2b和b2c的结合,既可以有企业产品面对消费者,也可以企业面对企业,例如天猫、京东等,
c2c(consumer-to-consumer): 消费者面对消费者,例如闲鱼、淘宝等。
b2g(business-to-government): 企业对政府网站,例如政府采购网。
o2o(Online-to-Offline): 线下互联网线上支付,例如美团、饿了么。
运营模式
自营: 由自己厂商卖自己的产品,例如小米商城、华为商城。
联营: 用户自己开店,例如淘宝。
自营+联营: 即有自营也有联营,京东、天猫。
电商术语
- PV: page view,网页浏览次数。
- UV: unique view, 网页独立浏览次数。
- CR: Conversion Rate,转换访客率,例如订单转换率,有100哥用户,下单率是多少。
- SPU: 商品信息聚合的最小单位,例如小米13。
- SKU: 商品信息下的配置、库存信息,也就是小米13下的8 + 128G配置。
需求分析
大部分需求分析和技术无关,需求分析需要与客户进行沟通。利用kano模型列出所有有关的需求,让用户根据满意度对需求进行打分,满意度越高在开发时优先级就越高。
在实现功能前,先分析出软件的用户人群是哪些,例如我们的电商网站,需要用户购买商品下单、需要商家上下架商品、需要管理员管理整个系统。然后分析用户群需要哪些功能。之后分析用户业务核心功能业务业务流程,之后根据业务模块流程画时序图。
一个电商项目大概包含以下是个模块:
在以上是个模块中,促销模块是最复杂的,因为促销模块需要根据各种促销规则来计算结账支付结果,在计算的过程中又分很多情况,例如用户是否为plus会员、用户是否有优惠卷等等,在编写订单模块的业务代码时不要将促销模块耦合到订单模块中,这样会将订单模块的复杂性蔓延到其他模块中,好的解决方式是有订单模块将数据传输到促销模块中,促销模块计算完毕后返回给订单模块 。
开发流程: 客户与产品确定好需求之后由开发产品根据需求做出原型图,之后在需求评审会中,由产品带着开发一个页面一个页面过,通过开发人员与产品进行沟通来使模糊的需求变得不再模糊。
相关信息: https://hanchenhao.github.io/MadBOK/DomainDrivenDesign/02-建立领域通用语言.html#沟通障碍
技术选型
技术本身没有好坏之分,从淘宝技术这十年这本书可以了解到,淘宝的技术架构从一开始的LAMP到最新的分布式云计算架构并不是一蹴而就的,是由于上一阶段的技术不能满足当前的需求才进行转换架构的,一开始并发量没有那么高,当并发量变高时就要修改业务架构了。d
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性