: G; C; L: N1 T. R0 l6 m课程计划一共14天课程
2 [6 \# t( b w7 B c% q6 o
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
8 ?- @! D9 s! ?1 h
8 l. @$ d+ N [/ s! N' W9 l功能描述
, I- Y! @7 ?( M4 ?6 W' X后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
& T* c/ G, j3 E$ i& ~: f前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
9 ?. u6 k- b4 s# Q/ L
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
1 V. g1 q/ w. f& r
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
' B" w. W" f' @1 F搜索系统:提供商品的搜索功能。
* Z( L, I. L& n3 E% S
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
5 L8 g: Y; q* x: z/ k
; y4 W* p/ Y' p/ F* @! C& M思考:有什么问题?
0 K6 h/ Q6 @5 i2 ^' R; `
1、 模块之间耦合度太高,其中一个升级其他都得升级
- A# [: \+ Y: N; [+ |
2、 开发困难,各个团队开发最后都要整合一起
* F7 m/ I& T. [! `' | [# b3、 系统的扩展性差
6 o* E g, w" a( c5 i: }: V( R4、 不能灵活的进行分布式部署。
7 \7 j5 @: I3 |3 ^6 E
! n/ l) Y6 f7 X7 Z5 r3 b解决方法:
& s$ J2 x+ y' J7 U3 h) j/ q优点:
0 r' X, {4 n/ h4 ^- L8 w& \( z
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
! x- `. g# k# Q9 Q) v1 {" ]1 C缺点:
+ \. M3 ^, D( }: d5 d2 F& S5 R* j s
系统之间交互需要额外的工作量来进行接口的开发。
$ b+ c& K1 V( B9 q7 ^% b
( ?" J$ G: K1 ?. L把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
* |- o" \, l j$ M9 C
! l8 w' q4 j& g2 R分布式的架构
; T/ ^" k2 R# p# _( M- k
, \( Q0 F$ s. B. O% W1 x2 R" R3 U
/ a3 a3 M- i4 Z1 M
" L$ L% m" Y- Z& L+ x, L
分布式架构
, k# _+ R& m6 i5 [8 j把系统按照模块拆分成多个子系统。
( J5 K' X% g7 W- i) Y# p( B
优点:
/ v5 x; I H) W8 |6 g# J! w1、把模块拆分,使用接口通信,降低模块之间的耦合度。
( `. G% ]7 Z) k9 Z+ M! n3 n3 ]) r
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
' [* c8 f, V9 a( N% m- Q3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
+ M- d2 C f& M5 a. a4 w1 C, t
4、可以灵活的进行分布式部署。
P5 @$ Q+ {1 r7 ~; l) |; Q* C: ~
b I- h. h. m缺点:
* T8 g6 l2 o9 Z {0 M5 k6 ]7 v6 B; o系统之间交互需要使用远程通信,接口开发增加工作量。
% L( `; |1 h& \9 Z& R* k; X7 |; C) B+ x ~" ~+ J- @$ t; }, c
技术选型(主要技术)! Y9 j' z4 g/ n, H- p, B7 L' r; b# m
l
spring、SpringMVC、Mybatis
J5 y" Z/ k5 O4 V5 S
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
' L4 Y& ^+ P) G, {4 }7 d% D
l Redis(缓存服务器)
* g! P/ t# {: T5 v$ H
l Solr(搜索)
# b& k6 |; @; O6 j; J1 O
l httpclient(调用系统服务)
: R3 }# I% d3 ?6 R4 V
l MySQL
5 Z& P, ]* b9 X2 b `% @l Nginx(web服务器)
Z1 B' F& W9 i* f4 ~7 J1.1.2 开发工具和环境1 P; X6 ]; ^2 ]
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
$ {/ @! v9 Z0 ], RMaven 3.3.3(开发工具自带); Q1 G; E& T7 p& S( D9 N
Tomcat 7.0.53(Maven Tomcat Plugin)1 X. P9 _, I% _7 b# k
JDK 1.7
9 H7 j: m9 L, E$ ]2 PMysql 5.6
6 k$ r, v( n3 VNginx 1.8.0
: u5 H( y; e3 T' A5 ?& TRedis 3.0.0
+ B9 y) |/ r' s' s5 M9 xWin7 操作系统
. G) v" [/ Q. G/ A/ G( USVN(版本管理)
7 n* d! p1 v F# ]; s& z1.1 人员配置
l% V# v: h3 T' h, Q3 b1 F产品经理:3人,确定需求以及给出产品原型图。
; R- `, T4 v8 d* s5 j项目经理:1人,项目管理。( M# ~6 P* ]! l( ]& A% d; r9 h& a- _
前端团队:5人,根据产品经理给出的原型制作静态页面。* \; t0 U$ C$ i4 E C; B7 R
后端团队:20人,实现产品功能。
5 r8 q. ^& u4 a7 j3 ?测试团队:5人,测试所有的功能。6 P$ v. B' A% j) G M- a
运维团队:3人,项目的发布以及维护。% h4 l: K: f: d3 h
& ^ C* h/ ~" ?- q) N7 K2 后台管理系统工程搭建- W7 ` m( u( ^2 s- p- O l2 M
2.1 Maven
1 N5 W, \ B4 N1、依赖管理、jar包、工程之间的依赖。, ^! z# z$ w' J: T+ m# A
2、项目构建。实现项目的一步构建。$ @5 S# x" j3 Z
3、工程聚合、继承、依赖。: D- d1 C; x5 B+ V
, O7 a: E& O }" k/ q
2.2 Maven的工程类型:! w( q- N' C9 \& `
1、war包工程( s0 q1 [" F3 }$ c" e7 ]
2、Jar包工程
$ Y- ]; r' K* f" @% t3、Pom工程。
9 z! |" G2 U1 I. |& B. o, m; h7 s, }2 l U8 V
- X) G! Z+ V4 X