# h& {8 Z2 J/ D- R课程计划一共14天课程
Q3 u9 t# a% h x; w7 \, |, k' v8 C1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
, }& t- G" S! m6 Z! I j- k# H& z; M1 O
7 y6 B5 X* k. d5 }7 J3 t4 x8 t) v
功能描述
1 X6 ^( v" Z% a后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
9 N3 G, f: E* |7 z7 s: n2 U, t
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
- Z7 p- o, E0 C
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
. h, X; f7 d2 X! d4 h' r
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
0 i" A- L' X B1 w# x* B( j" {4 z" S. T搜索系统:提供商品的搜索功能。
8 [/ P# x$ h+ A( T$ `3 t& T单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
! L: G% U- D* U" G3 _2 H1 z
) z8 |. N+ V& T) ]/ X1 m5 ^! X" [. z思考:有什么问题?
- K% {8 k& X8 J: ]) g1、 模块之间耦合度太高,其中一个升级其他都得升级
) F* H/ F2 o0 O2、 开发困难,各个团队开发最后都要整合一起
4 q8 R5 R/ G; a3 f% A3、 系统的扩展性差
0 _9 |' g) w& I4、 不能灵活的进行分布式部署。
: L# c. o# |* u! J% Q% j
! q. v. c6 z0 [; W0 y$ a解决方法:
; p2 `& @0 K! o优点:
& y6 e" D) U8 \8 e$ w8 U把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
1 U, \; i. G, @* Z0 l, b) w! K; Y
缺点:
0 z1 E$ e( T& J7 D1 a6 m V
系统之间交互需要额外的工作量来进行接口的开发。
2 u' O, [% N! @+ ]6 x
& g" n& B& F4 y" f6 R- ~3 w" t
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
% g' k+ z9 n, m( T
: M, y% _9 R7 _ {
分布式的架构
! S& H( g- j" e. S; X! w& ^+ j, W) w8 Q
( I; c; Z" R! Z: e% Y
# B1 w7 R' I5 X3 w; ]% p分布式架构
' ^2 F4 ^) _0 |! J4 n0 I7 }$ B把系统按照模块拆分成多个子系统。
0 T' s' F5 ]1 ~
优点:
1 c+ P, P4 R* [1、把模块拆分,使用接口通信,降低模块之间的耦合度。
% t9 q; _3 {3 l# b6 i( P J2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
' ]5 ]2 G+ J" ]# h* _2 Q$ P3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
5 Y* p% {# }- b- b9 w, s! B& ?3 x
4、可以灵活的进行分布式部署。
! C, H9 p. h# `. L7 R
, `5 }' ]1 n7 J缺点:
( L) ?4 A4 d" y3 [6 s# c
系统之间交互需要使用远程通信,接口开发增加工作量。
) _7 m8 |. r( \6 j/ L
5 E' r l. s1 F1 ^6 I6 ~技术选型(主要技术)
/ Y2 q2 U5 X2 P% v8 o, j7 F0 {l
spring、SpringMVC、Mybatis
, j, h8 G: o" v3 C7 ~9 p
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
3 L7 V' {$ f! f% @. c% r- e
l Redis(缓存服务器)
7 J' A X! W5 T: al Solr(搜索)
. `) A V) y8 F. sl httpclient(调用系统服务)
}3 c0 Y p" [$ Kl MySQL
# S; e7 l$ l& T1 L J' l; }
l Nginx(web服务器)
, a: l+ e$ v. n$ Z7 W
1.1.2 开发工具和环境
3 k) `7 E. {( n; k4 TEclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
5 P; R) C; ?. y; n& I) {$ WMaven 3.3.3(开发工具自带)
9 a0 y- u7 Y5 ]. ?) _0 \9 ^( sTomcat 7.0.53(Maven Tomcat Plugin)( l4 k3 V* k* J# {
JDK 1.70 H, A! g$ X2 Q6 t d: s y, i
Mysql 5.6
* T- Y, d9 v) ~Nginx 1.8.02 }0 Y7 H: T, ]2 s2 J7 J8 P8 G4 l
Redis 3.0.0
( D6 x9 C) ]4 l- C* P$ vWin7 操作系统
" n& y$ e2 H# a$ {! f7 `SVN(版本管理)
2 d* X# u" l8 A0 e2 }) G; `1.1 人员配置
K- z. X9 u7 h/ D产品经理:3人,确定需求以及给出产品原型图。
( P4 U6 B% R4 S2 W项目经理:1人,项目管理。* A+ |- y( ^) ?8 u' J, j& g2 k
前端团队:5人,根据产品经理给出的原型制作静态页面。, U. W5 z: Q0 f
后端团队:20人,实现产品功能。& J) [( q( u/ z' f- }/ L
测试团队:5人,测试所有的功能。
x* \- Y! F; d8 @+ e! g) b运维团队:3人,项目的发布以及维护。
" O! l5 R- K: R _8 }1 v) Z- A
6 \0 K+ F& o P2 后台管理系统工程搭建
! u1 |- c( s6 B/ z2.1 Maven
7 H1 {- s6 e/ G' K$ s- B1、依赖管理、jar包、工程之间的依赖。* ~# E$ V& x& M; I$ x
2、项目构建。实现项目的一步构建。# Y8 x6 ^* C9 Z* X* s; j6 }
3、工程聚合、继承、依赖。
( P$ [8 X. q8 l7 ?9 P) K: j4 e8 h
& j, E5 V3 K# w' o# z2.2 Maven的工程类型:: F6 U; @4 G @) y+ s
1、war包工程
0 J/ a) O2 ^: R' l2、Jar包工程/ Z }3 Y* X. k5 ~
3、Pom工程。
5 c( }& k7 `1 C+ }
. A: b) G" N6 f0 N# G' w( g
4 K/ d$ Q9 E# w. Y5 W7 E, G