& d2 Q; S) U; B: h O9 L. }课程计划一共14天课程
/ `) N. A! e& B% S, u5 B" m9 }4 d1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
! o+ d, _( U U" @& ?
) Y1 X1 e7 N7 o, ~. S$ K功能描述
% p8 h0 E1 |8 }" }后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
% r# A7 K: M& ~# j* v( x' `前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
+ `( u& s. g b/ @. h3 G6 P会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
4 ^6 ^! p. I' ?7 _5 ~0 Z
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
% o" ~$ K/ r' P1 N' X搜索系统:提供商品的搜索功能。
, z ?7 F* b' {2 p4 D
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
8 m2 z H4 | `7 ^, @
9 F' N' m# B& K8 n- d
思考:有什么问题?
1 Y& o* k3 E; j
1、 模块之间耦合度太高,其中一个升级其他都得升级
( R6 O. _/ D0 ^2、 开发困难,各个团队开发最后都要整合一起
% b1 l, r' `# p- ^* s: G
3、 系统的扩展性差
9 U7 P1 o' _. M
4、 不能灵活的进行分布式部署。
- o6 d. H& G5 B/ a& i6 F0 z
L: D1 V% S; ?5 t解决方法:
" H" l; S7 j2 s" @( v& b优点:
# |+ [; p D( Y8 f# n8 W把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
5 v! x- v( h2 ]
缺点:
! |1 `6 r: A: c) F" @7 u系统之间交互需要额外的工作量来进行接口的开发。
" R/ h( o2 @2 o- ^
" R- L4 _) V. }1 y$ \1 J ~8 @ P把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
+ s8 O- X1 n' v0 S
& C2 b5 r! Y6 j- h
分布式的架构9 L( @7 B9 { c2 C
- a/ k, Z; h$ M* d: j
+ }( u- V# X- k; W( ~4 }' I/ E9 @/ M
分布式架构( k+ Y, K# I+ y0 A( X- a+ o3 ^
把系统按照模块拆分成多个子系统。
- H% P2 O" v2 O7 X+ u
优点:
( @9 v0 z* k. Z; l% G# k1 m1、把模块拆分,使用接口通信,降低模块之间的耦合度。
e, p% V* m2 R' K& j2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
' x0 Y' \/ l; t/ ?& Q; [/ `) ?3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
2 }1 ~. G! q/ h; G, i4、可以灵活的进行分布式部署。
& Z* P# Q" B* R' c; s& g6 P2 O; |" k
缺点:
' A/ S, z3 y+ y
系统之间交互需要使用远程通信,接口开发增加工作量。
m b+ D' ?& X+ {4 ^# K
; _6 M+ K: v. I( G) [2 R技术选型(主要技术)4 N5 v( W: e! c" `- p; q( b$ u7 t" k
l
spring、SpringMVC、Mybatis
; h3 |# `9 Z: N8 Ul JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
7 P+ H1 x( S/ ]4 G9 Z( X& D2 X
l Redis(缓存服务器)
/ n, I" E5 ~! Q# Q' q1 Y7 x, Vl Solr(搜索)
& |7 U/ I. p2 Kl httpclient(调用系统服务)
' R0 g8 E" g- z; n
l MySQL
+ ?- [8 J9 s2 wl Nginx(web服务器)
. o$ K0 G% W3 z1 P& K/ u
1.1.2 开发工具和环境0 S' M+ U- _9 f3 U0 t
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。+ ~) b6 @9 P7 Y' P# ?+ ^
Maven 3.3.3(开发工具自带)$ P, ]* ]( B/ S' Q" [
Tomcat 7.0.53(Maven Tomcat Plugin)
7 g. \' B8 r% l" W9 S( |; |7 uJDK 1.7
" X4 ?# D2 t# V# ~Mysql 5.6
+ ^/ V% Z6 q8 ]Nginx 1.8.00 Y' H9 q, |$ Z3 F
Redis 3.0.0; d- V" G; }1 V, [
Win7 操作系统" y1 N9 s" P5 E0 u8 X; ~6 ~. w3 S& J
SVN(版本管理)
+ \+ [' d8 g. O% K
1.1 人员配置
5 F. m5 u% Y7 m3 v; L, e产品经理:3人,确定需求以及给出产品原型图。" r1 _/ K+ [* K; I! q
项目经理:1人,项目管理。
7 J1 \) o* |, i$ Z8 r% {4 U/ N前端团队:5人,根据产品经理给出的原型制作静态页面。
& c) H$ y1 u5 K后端团队:20人,实现产品功能。
9 ~5 |# P$ K6 `7 q$ V w测试团队:5人,测试所有的功能。 G; z+ ~9 A7 C. q/ N
运维团队:3人,项目的发布以及维护。
0 B. P+ P2 O$ \; N N2 a6 M) m8 q3 V, [4 y# ?
2 后台管理系统工程搭建
- D; P" j! L1 V& s0 {7 C. y2.1 Maven
. @: d3 v( d( M) a3 o1、依赖管理、jar包、工程之间的依赖。
4 z/ Y f3 J) m- V5 u4 W* n7 [2、项目构建。实现项目的一步构建。1 ?* x% }# z* u7 D' b1 }) _
3、工程聚合、继承、依赖。6 r9 W& j4 A$ v3 M8 P
7 W1 y6 g. k2 ^2 @
2.2 Maven的工程类型:* \; C- W% J2 Y2 p
1、war包工程' y+ f6 ~. v/ \8 l+ q" z
2、Jar包工程1 ]7 D5 m4 `. A" L' ]2 U
3、Pom工程。
' z; N) B/ a' i, i
3 @8 L8 G. }' b) [* K) D' t: B
+ i# e) Q6 X+ o* Z- T