+ _# x7 A$ q/ t" Q( A( V课程计划一共14天课程
6 b: B& Y- o# x; b5 `0 r
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
; H9 v6 z! t0 b4 ~4 X* Z( @) o2 a+ U8 e) t b& ?3 }; K W
功能描述
( \2 j% ~* M) a2 y后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
! c: [$ G$ { U& X! H前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
, T8 V# P' U1 Q/ W& `+ ]# U
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
6 X( d( S, k9 c+ S% w: X订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
( W$ P. ]: |, Y W0 c
搜索系统:提供商品的搜索功能。
1 d/ H; ]+ s& C2 M
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
& ]0 p- O* ^. F: b* W
2 a: n% Z) G1 x- R思考:有什么问题?
* u$ U, \) ]; V: c+ v" P9 g" o% w
1、 模块之间耦合度太高,其中一个升级其他都得升级
% o9 [9 M. z! c& ^- _" P2、 开发困难,各个团队开发最后都要整合一起
# r/ f7 F2 a% H( r
3、 系统的扩展性差
$ {& q8 Z6 a5 t4 w0 I+ c) u4、 不能灵活的进行分布式部署。
- x- D. u7 S! T. u) z4 Y! p. e/ R1 t4 q* X; J" t% h9 h- D
解决方法:
6 D4 E# `2 D( y
优点:
2 }0 S9 @' x/ M9 x
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
2 S3 A$ q- w. Q3 G2 R. `+ L
缺点:
3 a* p6 p7 O* N; l8 Y系统之间交互需要额外的工作量来进行接口的开发。
5 ?4 l; o+ M6 w. m4 i$ R2 ~& M+ `+ |# |1 O5 V$ ?
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
( i: F5 O2 U- _# w i, ^6 A
- K7 O3 t9 B# m. x分布式的架构$ p2 l5 x! X. H9 p& x% O9 C& w g
! W2 _2 v% _& b6 x$ @1 |9 d
9 {+ Q% R2 ^% t& s- F7 C4 ^
/ Q+ Q6 [! x6 @6 i1 s( |分布式架构2 X8 v7 Q) ^8 {9 j
把系统按照模块拆分成多个子系统。
. A: _$ k P- B3 l/ X! B优点:
1 V( H# p0 Z' [, H |* j1、把模块拆分,使用接口通信,降低模块之间的耦合度。
9 H% @ u. b- u6 y) |- ]
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
7 O B' W# _3 e& ]+ \0 ] e
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
- x9 Q" n- j: d- n4、可以灵活的进行分布式部署。
: w X2 O8 M0 {- ?! p8 @4 R T0 I5 V3 p& a4 l9 o* q/ r
缺点:
4 K3 Q# U3 Y: K+ e" ]5 N
系统之间交互需要使用远程通信,接口开发增加工作量。
" S& J; v! x. x5 ^# e9 }1 s3 T7 ]' L% h4 \- [' B) u8 q
技术选型(主要技术)* l, a& S9 d, m( a% }5 M0 A9 `) x
l
spring、SpringMVC、Mybatis
9 z& c, \6 S4 o, v- S$ [1 ql JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
! r: d, V* U# e7 H& Ml Redis(缓存服务器)
" M# l, e+ {; V7 T/ a3 il Solr(搜索)
- @" J( O \! N/ U& k2 ]4 c% ]
l httpclient(调用系统服务)
# Q* I, \( j2 S8 j4 _6 P. N8 t6 gl MySQL
. A; `( u0 n6 Wl Nginx(web服务器)
7 M9 r0 @" j2 B5 j. o# O# w" L; W! T, _
1.1.2 开发工具和环境7 {( {+ T6 {$ U. l
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。9 K& J+ H& Z; F
Maven 3.3.3(开发工具自带)6 N6 A" n% z6 l1 d+ A% U* \4 a
Tomcat 7.0.53(Maven Tomcat Plugin)8 a& W. ~$ x2 ?) {+ e
JDK 1.7
o& d% Z, G/ Y7 e$ RMysql 5.64 Q2 \' N; |% N) I# [) M$ ]8 R, G
Nginx 1.8.0
# z1 m3 }, w6 V* d% k dRedis 3.0.0
6 u) F S3 r! o8 ?/ r. z5 A8 o& rWin7 操作系统
: S+ Z+ _* {! |4 T" J" GSVN(版本管理)
1 p$ f. B# ~. {% \4 M
1.1 人员配置
$ }8 F# U% u+ r# ~6 n2 E产品经理:3人,确定需求以及给出产品原型图。7 L% y6 l7 W+ w" `
项目经理:1人,项目管理。
- e3 ]0 C0 |/ ?1 k( Y前端团队:5人,根据产品经理给出的原型制作静态页面。5 I3 X# |# h* l6 w. C" j' @
后端团队:20人,实现产品功能。
/ A; T" b' c3 l3 U9 H测试团队:5人,测试所有的功能。: m6 D6 R' x5 t$ P* T& Z
运维团队:3人,项目的发布以及维护。8 u4 }1 U! q0 A" y1 p) Y, w. A
* I6 d- F" E% x2 u E2 后台管理系统工程搭建
+ F% g( U1 Z: m6 ~! Q2.1 Maven, _' T1 p! K- e
1、依赖管理、jar包、工程之间的依赖。; P! s7 z1 S5 k: l+ P
2、项目构建。实现项目的一步构建。
$ Q5 L8 S: s' y3、工程聚合、继承、依赖。
* T6 \' J0 I2 N+ x' b
& h7 i# ], n* _6 }2.2 Maven的工程类型:
, _3 F, E3 K. X* I8 I* E1、war包工程% [) J6 H( f0 J4 N0 A# I
2、Jar包工程' R2 e* l1 i4 b+ i0 e/ q
3、Pom工程。: Q4 F' S: W; B) i$ j
* d& `* w: s& N& [8 Q' K6 Q
; m8 [5 n& K, U. v: i7 Y