f+ q/ v8 b+ o$ {' |" m6 c
课程计划一共14天课程
, D* F, v; b4 l$ }5 m1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
& ]6 q Y! |8 A. [
r& M$ a+ u8 f- _5 j# I$ v功能描述 `0 L& Z# S$ i/ l" O5 ^# B
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
6 V3 b4 v/ F6 b) j- u$ v' D
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
5 |3 Y+ y4 T# T0 P3 B& K% W; Y
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
& l% c( U F2 m1 Q# M$ ^) [订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
# ?$ {8 N. E9 `, L# P6 N搜索系统:提供商品的搜索功能。
$ C/ U# K# h* g- G4 d% m+ }
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
- q, z& y8 G% |7 H
2 W0 H% `# b8 F' |3 E
思考:有什么问题?
# c( g& }7 H! v
1、 模块之间耦合度太高,其中一个升级其他都得升级
9 M# _; _* g+ ^) s# z3 p2、 开发困难,各个团队开发最后都要整合一起
2 a9 N( _& G5 ^, v
3、 系统的扩展性差
1 A* Q3 I) S4 m) B% O# x
4、 不能灵活的进行分布式部署。
\4 S8 }9 [% I! G% X. c
$ a( F' G. D; s: _7 ?; |. Z
解决方法:
: J4 t* ~. t& M- g, V$ J- J) z; J优点:
/ o1 I1 }1 q4 L. o" V
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
( z2 g" V7 X6 i+ ?/ V& M- L! d缺点:
' ?" ^/ V% }2 O0 y
系统之间交互需要额外的工作量来进行接口的开发。
, h* Y$ e3 h7 `' [1 y- D7 E# k9 Y$ D% u3 ^9 y/ K( p
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
' R+ v* ?6 }8 F7 [9 f' N6 \
& m8 @( [7 D. r6 ^分布式的架构
" t' V& [2 f' ^3 e+ U' Y
) |; n1 c+ U6 i7 P
/ q* a" _" p: V) _# q- n) [( D" Y$ i- i' ~
分布式架构
6 X. p; A: H; u9 V把系统按照模块拆分成多个子系统。
5 o, n0 o* ^8 b优点:
1 @7 _; h. p2 x2 f4 O; ]$ k
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
" ^! Q, A# Q0 B5 l" O; \2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
/ h) Z- _: k# l D! g3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
7 x% v9 `2 u% d# c
4、可以灵活的进行分布式部署。
9 ^; _; ~6 X* _+ {! Z2 X) U) {& @: ^8 }; m% A/ O. c/ F3 [8 M' D
缺点:
" e" ^8 {2 l$ t' `" ]( l8 n) n
系统之间交互需要使用远程通信,接口开发增加工作量。
- E9 I. q' J4 E$ F7 M2 r
) o9 A6 `7 Q, s5 W
技术选型(主要技术)
5 _0 M" |' w4 c# ~( {9 [l
spring、SpringMVC、Mybatis
9 j, W0 V w* E e- d* a1 @
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
* i; g. Z4 P# m! w# I5 l- ^% X2 L
l Redis(缓存服务器)
) q9 P0 v2 a- @+ K) S2 h( Sl Solr(搜索)
" A9 {/ K- W5 d: v% s& h/ v& K5 I
l httpclient(调用系统服务)
g! K; h3 s r7 w' O6 T
l MySQL
5 a$ R1 ?) ~( L! s6 I! g: {l Nginx(web服务器)
( U& W/ D6 G+ X& R1.1.2 开发工具和环境- ` j( ?7 p+ I& w
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。* h* B. P* R m3 z2 O
Maven 3.3.3(开发工具自带)
, [9 [5 }1 f# R+ R, q2 }1 jTomcat 7.0.53(Maven Tomcat Plugin)* \3 u- v8 t) [! t- q* V
JDK 1.7# {. J- n: D6 f, F5 l7 D
Mysql 5.6+ |; L$ a6 |; ~( i8 y& B% z
Nginx 1.8.0* z* L1 k$ i8 s0 Z
Redis 3.0.0) V( Q* z8 a+ z
Win7 操作系统
: N% A3 \! @ hSVN(版本管理)
/ N' J, u+ p/ C2 U- X
1.1 人员配置
. u- K% q) o9 U. r: ]0 x8 p产品经理:3人,确定需求以及给出产品原型图。
! Y6 k/ q# [- N: h) `+ u3 y2 Z项目经理:1人,项目管理。
+ x B0 E3 L' a) F2 |& D0 U( W3 \前端团队:5人,根据产品经理给出的原型制作静态页面。& B, G. c& Q9 @( M- g$ {2 }9 F
后端团队:20人,实现产品功能。: D/ }, c$ q, f' `; Q
测试团队:5人,测试所有的功能。
: ^" g& N4 w2 J9 N- ]运维团队:3人,项目的发布以及维护。
& {4 c7 I: O8 H; i4 s/ ]. }7 C1 |- ?% X
2 后台管理系统工程搭建0 o1 h9 f/ F0 J' @
2.1 Maven! w/ b i7 Y; N7 G
1、依赖管理、jar包、工程之间的依赖。/ ~) x0 C) s) S* C- R3 C8 i5 O' s
2、项目构建。实现项目的一步构建。
6 b4 r ~( n% L1 U$ Z3、工程聚合、继承、依赖。% i# `- F' k/ f+ k5 ?
# Z, l" M- c" a2.2 Maven的工程类型:/ ~4 l* c' X1 [+ f' b* \ l
1、war包工程9 v2 ~: N4 B+ S$ l9 c+ m
2、Jar包工程
* T# U# f1 }) D& h) D4 V3、Pom工程。
' ?8 \$ X. D. Q% w1 h- l6 l6 H
5 l5 {+ G! P% ]2 M
+ H1 i' Z2 y3 u4 M2 n$ w