" Y. X! i1 E5 S" p5 Z课程计划一共14天课程
: N/ @6 i) A% p
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
! a, C- L) m0 k/ w' }. b0 c
2 Z$ Z* ~* E9 O& B
功能描述5 n+ N$ B( J; Y# x% b. p; |" n
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
2 }2 K& g% Z" o' |# ]9 l前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
) b6 J0 {- ]& W2 H" r会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
2 T9 g/ t# O, h
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
' K' J2 v. v" E搜索系统:提供商品的搜索功能。
. j/ ?6 a: S( F. \/ C1 S单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
0 `' s3 K" ^! t- {
" H$ r" c" a! s. `思考:有什么问题?
9 ?5 k& t' e! \1 T Q5 X. b; ]1、 模块之间耦合度太高,其中一个升级其他都得升级
& j2 W3 h; i7 q# V2 c: Q2、 开发困难,各个团队开发最后都要整合一起
# H( H% n, w t( u% N3、 系统的扩展性差
( W/ U }. C( }* J! E4、 不能灵活的进行分布式部署。
7 k, ^) y/ z! D6 Z
+ [% O' e( U4 U Y8 `: L
解决方法:
: ^$ W# ~& q4 `4 u7 D优点:
7 a* i2 q1 y. Q
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
; ~+ w3 {) z& T5 M- C; Z, n- y) _: `
缺点:
2 t1 l+ I1 {9 K系统之间交互需要额外的工作量来进行接口的开发。
- h2 R1 j8 b1 X
6 G J$ N9 x; l6 u# Z$ n( ?2 b把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
5 j3 O' |3 ?; E1 J, M4 J* s" S
7 m/ A$ c# r# j' M, F2 W9 m8 s* w
分布式的架构
3 N* @7 R( s: C$ z. o7 r
: \3 l! h- T; n: \
. ?. i+ B, H: ~ M9 G9 O. O! G
* j) }# h5 ~* A* t分布式架构
9 G3 Z# c" _- W! {" u$ _把系统按照模块拆分成多个子系统。
6 p: R% a: o4 F5 K6 Q3 f优点:
, x1 E) U6 U( i7 ~) f
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
5 [* ]5 z; \. T( q
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
8 \& z' u: C2 S+ Z: A. q1 m, E2 { U3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
* z- ^7 E" y; q F9 \4 ~
4、可以灵活的进行分布式部署。
) _% o4 T5 f3 ?( g5 v' d8 H& \
& d P( i. G6 Y3 e$ F缺点:
" O. j( G) a7 [; R) R" O系统之间交互需要使用远程通信,接口开发增加工作量。
% `$ o0 J" m) b8 h# K; a, v& a, e! z1 ]1 N6 M6 z! E
技术选型(主要技术)
7 `; B& ]2 u' sl
spring、SpringMVC、Mybatis
1 M, Z: P9 h9 m3 z2 ~% p5 k8 y S
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
( b" Q* `6 m5 l* t
l Redis(缓存服务器)
/ o& `3 \5 o/ u$ ?# w
l Solr(搜索)
+ E8 `: E8 c5 ~1 I5 j
l httpclient(调用系统服务)
Y- Q+ _- b; e Hl MySQL
& R9 ~# l! ^1 @0 p6 m( v* }8 gl Nginx(web服务器)
( b3 W% r) _3 l. G
1.1.2 开发工具和环境+ ~( z$ H1 E" P. U# X; K
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。: U' j0 H; x& m% S
Maven 3.3.3(开发工具自带)1 M7 i) l/ w4 s( ?7 [/ e3 E
Tomcat 7.0.53(Maven Tomcat Plugin)# d' J0 h6 a7 F$ B
JDK 1.70 n) x7 Z7 Q: I$ c4 i
Mysql 5.6
8 }$ j' u3 a P x6 R7 H. uNginx 1.8.0' c8 f* }* U, ^0 j
Redis 3.0.0
0 a5 {, g( d) R) j5 k1 W% rWin7 操作系统. L/ N* w2 w. o! _
SVN(版本管理)
# I! V" R; q s W, i' y
1.1 人员配置
3 {* j5 }, a) Z7 N产品经理:3人,确定需求以及给出产品原型图。. Y j ]0 Q0 d: P) z
项目经理:1人,项目管理。
- p1 W3 b. N* P; n5 y2 `前端团队:5人,根据产品经理给出的原型制作静态页面。
3 R5 T" h3 @. [3 x3 S& {- ]8 x后端团队:20人,实现产品功能。
' J* m2 S% r F测试团队:5人,测试所有的功能。1 v$ \' U- n! z
运维团队:3人,项目的发布以及维护。
, Y( M6 |% ? K7 X8 O
- Q) l! q5 @4 d8 t: O2 后台管理系统工程搭建( h) [: M+ i! y& e2 L# L
2.1 Maven0 ? N% F: p/ [! j. j. M
1、依赖管理、jar包、工程之间的依赖。
: f+ _9 e0 R! ^0 J" ^$ q8 T2、项目构建。实现项目的一步构建。* U" n7 S! V, c, @& t
3、工程聚合、继承、依赖。; ]& [) K9 C5 O5 e
9 m/ U3 P4 H7 ?1 V6 Y3 H- j
2.2 Maven的工程类型:
7 V% h* O* S) O1、war包工程
* `0 y0 F& Z6 ?, R2、Jar包工程- T6 Q3 [' G) m7 R. k# k; x# j
3、Pom工程。
; p+ z( E( _8 S* M! h. C" f* f5 Q4 j1 t( Y# P% ~
2 s" `2 X0 {4 ]; z% S J% q( L0 A