6 O7 g( O& S: l
课程计划一共14天课程
# \+ N. T9 \9 A( g+ Q. [
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
) v0 R9 k: ?% G. z$ D. }
- k/ _0 M" [' w, C$ M2 r3 m1 } O. e# z' T
功能描述
, B+ o5 v2 z7 m- h: P: x后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
# H# w2 A% \' a4 ?/ w7 S* i
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
0 W& y3 w/ L; g# z( i3 l5 u1 d2 N
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
4 D7 \% p! x- O7 Z# t订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
5 L( _2 N [. N. K; M% C& j9 Z# W搜索系统:提供商品的搜索功能。
8 n" p$ e+ d k- t
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
) W1 i& _. ?% h7 [2 ~( a
& O1 j6 c- q1 ^. [& w思考:有什么问题?
p. t2 P* }( `" E
1、 模块之间耦合度太高,其中一个升级其他都得升级
' A% O- T& ~! @' d% A& E9 u) Q2、 开发困难,各个团队开发最后都要整合一起
0 O, \/ _+ ^+ B6 t3 [6 }
3、 系统的扩展性差
5 y: p e: X9 Q4、 不能灵活的进行分布式部署。
. ?& s- w2 i* J2 G* s s0 N1 T$ C
; k. S) F$ U: k) | }; D8 o- c0 ^$ ~解决方法:
5 U2 X$ n6 U, E2 Z6 L9 S( z优点:
4 l6 b, E* p3 l6 r6 ^
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
% W6 B0 P; W' ]: S6 ` ?6 F: x缺点:
9 F" @" k( d) f$ |
系统之间交互需要额外的工作量来进行接口的开发。
/ n) Z; {( w/ T0 y
. [0 a% _& K4 u) d3 H6 p- r" v; X' B7 {把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
; L$ |" i; F9 ^8 w$ H- d0 e
: ^6 C' i s# {# a- k" _! `
分布式的架构" K. H% `5 J* B7 F$ x
: q; x% q1 p, J
- w2 q( }, e% ~5 m/ q0 a' K
% M' z9 k3 q9 y/ e" }, G' R W分布式架构, h# P% `6 W2 l, H; J* ]" ^
把系统按照模块拆分成多个子系统。
8 q9 y" o3 o! M$ ~* E% C优点:
4 ]" E- {+ ~: `/ p% `) p
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
n5 f T4 C8 v8 d5 |5 w- h
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
6 X1 P4 }1 T3 e3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
! q1 T6 `0 M0 A) Y
4、可以灵活的进行分布式部署。
* s( w0 @: M$ ^6 @1 e( }/ O5 l
( m4 l4 ]* x! l7 C. Q( U5 L( U3 o缺点:
9 Z: o; Q( ?+ \+ }( u& _, D5 t5 Y系统之间交互需要使用远程通信,接口开发增加工作量。
- q2 s# N Y6 N& W
N6 w! _. |% @. N- a; m5 q
技术选型(主要技术)4 R+ R, w$ k# v0 J2 M7 h
l
spring、SpringMVC、Mybatis
% \; n- E& i5 l' H7 d cl JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
. I& j0 \' C' e! ]0 H+ }
l Redis(缓存服务器)
- b% K- ?0 m! p _+ _3 i. b% cl Solr(搜索)
( j1 T* V j* F1 T/ U4 m4 l6 Z' x
l httpclient(调用系统服务)
' P1 \! V* [1 A6 R$ h/ L- d3 u |; ~l MySQL
! P7 q) ]+ |: F
l Nginx(web服务器)
. v+ d7 ~' t5 M
1.1.2 开发工具和环境
4 _" {7 M2 O8 wEclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。 C/ p' R" f" E/ m3 r7 o3 M) @: z
Maven 3.3.3(开发工具自带)% S% n9 c) L4 L6 i4 B; H+ ?
Tomcat 7.0.53(Maven Tomcat Plugin)
8 l. ?. t3 c# |2 JJDK 1.7
4 `7 ^$ l0 R. a, t! C% C' iMysql 5.6" q: P( l( ?3 Z% s# a% ~' K
Nginx 1.8.0
$ ]8 [! r* r) a9 X: w: zRedis 3.0.0
" F+ i ] x) R. [8 `- J- pWin7 操作系统$ {( Q2 e; A% x* R% \, q1 q& n
SVN(版本管理)
: C$ I: R- f, R) K3 g1.1 人员配置! J# m9 K! I; I% n) R
产品经理:3人,确定需求以及给出产品原型图。
5 A* W' p A+ w: r项目经理:1人,项目管理。3 Q$ B$ V) Z/ Q# n
前端团队:5人,根据产品经理给出的原型制作静态页面。. h+ b2 U2 ]* y/ J- C4 v P. T$ K
后端团队:20人,实现产品功能。) \6 y- p l) B6 z% K+ P. v+ ~' I
测试团队:5人,测试所有的功能。) O+ L x# v. b1 v1 l* ^
运维团队:3人,项目的发布以及维护。
% j1 @, f# Y1 e2 `, q) p8 u, V- H2 a% J2 G0 q( M* G4 Z
2 后台管理系统工程搭建2 J# {/ `" Q; N7 r4 f
2.1 Maven- F$ p9 \, N: \7 ~$ {( m+ K4 Q3 R
1、依赖管理、jar包、工程之间的依赖。# X k+ p5 y; h7 E' t; n6 l1 _
2、项目构建。实现项目的一步构建。
4 _/ Q/ E3 H( d9 m7 g3 C( t' t3、工程聚合、继承、依赖。
! g L0 K- ~: W) N2 }. s3 K$ i# Q# d) k5 J9 z+ C
2.2 Maven的工程类型:
. C d( f* q+ T9 S1、war包工程. t/ I; a0 q# r1 _- E1 U0 M
2、Jar包工程! Z* n4 m3 y* a% l" U( H3 ?
3、Pom工程。8 _2 c& y4 b" M8 I: O& B
; h1 N+ p, Z; M3 d$ S
! [5 k$ \& F9 `/ ~+ t- {& @: q4 ?. l( A