电商项目实战1
1.1 目标
根据需求,完成一个互联网电商系统。
电商系统:以淘宝、京东为代表的网购平台。
1.2 电商涉及的技术要点
电商系统涉及的技术非常全面,包括SSM核心框架、linux、redis、solr、mq等全部的框架和技术。能掌握如何利用我们所需的知识,在工作中开发项目。
1.3 电商系统流程:
(1)确定需求
(2)画出原型,制作静态页面。
(3)根据静态页面,画出E-R图,创建数据库。
(4)确定系统架构
(5)确定技术选型
(6)项目组分配任务
(7)确定开发环境,统一版本
(8)开发功能模块
(9)测试
(10)预发布
(11)上线
(12)运维
2.开发流程
2.1 确定需求
互联网电商系统的需求,一般从两个方面考虑:并发能力+功能需求。
2.1.1 并发能力
所谓的并发,就是单位时间内,同时访问服务器的总次数。
本系统并发需求800-1000次/秒。(实际开发中由甲方客户确定)
2.1.2 功能需求
核心功能:
(1)用户访问门户系统,可以搜索、浏览商品,并将商品添加到购物车。
(2)用户通过身份认证之后,可以下订单、支付。
(3)要完成身份认证,必须实现注册登陆功能。
(4)后台系统中,可以实现对商品、订单等的管理。
(5)CMS系统管理门户系统中的内容(商品、广告、链接等)。
2.2 画出原型,制作静态页面
2.2.1 后台系统页面
2.2.1.1 主界面
2.2.1.2 商品模块
(1)商品列表
(2)商品规格参数列表
(3)新增商品
--主界面
--商品类目
2.2.1.3 CMS系统(Content Manager System)
--内容分类管理
--内容列表
2.2.2 门户系统
(1)用户登陆
(2)用户注册
(3)搜索页面
(4)购物车
(5)订单页面
2.3 画出E-R图,创建数据库
(1)既然是购物平台,肯定有一张商品表
(2)每一个商品对应一个分类,需要一张商品分类表
(3)每一类商品,都对应一个规格参数的模板。需要一张参数模板表
(4)每一个商品的规格参数值都是不一样的,所以需要一张规格参数值表。
(5)每一个商品都对应有一个详细的描述信息,所以需要一张描述信息表。
目的:将大文本的描述信息抽出来,减小商品表的体积,从而提供商品表的检索效率。
(6)CMS需要一张内容分类表
(7)每一个内容分类,都有一组具体的内容,所以需要一张内容表。
(8)用户要登陆,需要一张用户表
(9)用户下单,需要一张订单表
(10)一个订单中,可以有多个商品,所以需要一张订单项表。
(11)每一个订单都有一个收件地址,需要需要一张收件人表。
注意:本项目中,数据库已经设计好,将sql文件导入本地数据库即可。
2.4 选择系统架构
2.4.1 单一系统架构
整个项目只有一个应用,不同的功能模块以包为单位,写在同一个系统中。
单一系统架构
2.4.12 分布式架构
分布式指的是将一个系统拆分成多个不同的子系统,部署到不同的服务器上,系统之间通过接口的形式,相互调用。
分布式架构
好处:
(1)各系统之间相互独立,以接口相互调用,代码入侵少,耦合度低。
(2)拓展性能好,新增一个功能模块时,只需要将该子系统接入即可。
(3)可以进行灵活的分布式部署和负载均衡实现。
(4)项目组分小组开发子系统,沟通成本低。
劣势:
调用接口的时候,必须开发接口,意味着增加工作量。
2.4.3 确定选型后的架构图
图1-5 易购商城系统架构
核心系统描述:
后台管理系统:
管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:
用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:
用户可以在该系统中查询已下的订单、收藏商品、我的优惠券、团购等信息。
订单系统:
提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:
提供商品的搜索功能。
单点登录系统:
为多个系统之间提供用户登录凭证以及查询登录用户的信息。
2.5 技术选型(主要技术)
l Spring、SpringMVC、Mybatis-Plus
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
l Redis(缓存服务器)
l Solr(搜索)
l Activemq(消息推送)
l Httpclient、jsonp(调用系统服务,系统之间相互调用)
l Mysql
l tenginx(web服务器)
l Linux(项目最终部署的地方)