3 [" ~2 k: T+ P4 f2 Z) l9 [课程计划一共14天课程
! `5 V" m: B6 h# n# L7 `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 R# o( \$ d+ d" K* Z9 y
t% M/ H5 E# O. N8 V功能描述' u* I' m3 a; O# U9 u
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
2 H7 B" u' Y! ^ H
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
' x1 l' W8 r. P5 w会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
9 H9 q6 o n5 n1 s* `7 m' U) d订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
W( z U! B2 X8 M# R" x8 D
搜索系统:提供商品的搜索功能。
# }2 A t, P5 E1 Y$ Z9 j
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
5 E* n: }& @$ U2 G. {8 e7 B5 @
3 Q$ R% x$ V$ ~8 F) o4 Q
思考:有什么问题?
! u9 W4 w: I+ @1 t
1、 模块之间耦合度太高,其中一个升级其他都得升级
1 K6 D. S0 I- v9 R3 L
2、 开发困难,各个团队开发最后都要整合一起
( h4 {1 V6 R+ o
3、 系统的扩展性差
6 n* u. G9 Q0 c3 V g- N2 h4 q4 f
4、 不能灵活的进行分布式部署。
8 g: x/ \( P+ p
: m4 A. Q# v% d% _7 i解决方法:
* Y# J: a( y5 k* d/ l优点:
$ @" f, ]8 @" f+ m+ ?
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
) Z( O( M' _& A# A( a缺点:
8 C7 y, ?6 t0 m# u1 b
系统之间交互需要额外的工作量来进行接口的开发。
" X, w, P' b3 o6 i* y8 Y5 z! b+ O# k3 K0 c% V
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
* P; Z' N" O; m* u
0 O- H7 w$ j8 C9 R, W分布式的架构& h! N* r( R) ^: x' H$ \
# q: F+ G i" S. y# F# o9 C
7 Z* j8 o) c, _: c4 E8 B- v! B# {
9 q7 D6 p# K* _$ d2 Z/ R2 j
分布式架构
- }5 N% _$ x+ B) t8 o把系统按照模块拆分成多个子系统。
& l$ Y: R- U& |) w
优点:
- G' D5 E7 S' A( o% k% D
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
7 U( x, ?1 h! O) C) V7 q. [2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
5 \" C( z5 O! T
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
$ t/ b2 C7 _3 g" |. z; q0 C+ t+ O4、可以灵活的进行分布式部署。
: l {2 }; ^7 H# U2 i6 o
) d' Y. O9 t _. F/ d: e6 {缺点:
1 R: C( x4 `, \9 V% m系统之间交互需要使用远程通信,接口开发增加工作量。
7 T) q6 [2 Y8 H
& c) M& Q/ A5 m" e) [3 _$ W* s9 u技术选型(主要技术)1 N/ w0 F& _( y$ y+ I6 W
l
spring、SpringMVC、Mybatis
+ O a: p; s% e* N* b
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
- R/ o8 I3 |( X6 [9 u" q2 vl Redis(缓存服务器)
) [0 a: Z! X" B) j9 P. k8 C& [l Solr(搜索)
2 a/ }& s* q5 j5 G
l httpclient(调用系统服务)
, {7 E9 @) |/ q' W' H+ zl MySQL
8 s4 b* z! e& n# `& f& _
l Nginx(web服务器)
2 _& ^4 n7 d& E6 d, P) f1.1.2 开发工具和环境3 v Y$ J) Q9 S$ N! ^. H& T
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
( D1 `# W& k5 V5 ]& d9 p- pMaven 3.3.3(开发工具自带)
) ^' j& x/ o: P5 X4 m8 YTomcat 7.0.53(Maven Tomcat Plugin)$ R4 h' ]' M# |2 \8 X; i
JDK 1.75 F" i" @$ j- `( L
Mysql 5.68 H4 o# R2 j. A \5 ]
Nginx 1.8.03 N$ @6 w4 w7 z$ }$ n1 w! ?
Redis 3.0.03 O+ F( ?5 p' F. `
Win7 操作系统
* X, E7 @$ C$ A7 Y- [# oSVN(版本管理)
; |( y' K9 O( ]
1.1 人员配置( n3 z0 B$ ~6 H2 r( }6 F7 [5 r
产品经理:3人,确定需求以及给出产品原型图。
$ r( @; [) W7 w: L5 q. |& w项目经理:1人,项目管理。
, A+ H9 M c% N/ z! r0 ]6 m前端团队:5人,根据产品经理给出的原型制作静态页面。0 ?2 u, w' c. h, j) }- j- ~8 p" v
后端团队:20人,实现产品功能。
: }& q" t. q, f7 g" {) x, |4 [测试团队:5人,测试所有的功能。/ O8 Y( M$ N) i5 u
运维团队:3人,项目的发布以及维护。
% k y, O( w1 ?! w8 _, m: _, ^ T S) E1 y* n# v
2 后台管理系统工程搭建2 Y9 L+ ^+ X! ^. B9 v
2.1 Maven0 F6 p H) [9 s' y2 U
1、依赖管理、jar包、工程之间的依赖。; ?; n( Q; Z0 n, U
2、项目构建。实现项目的一步构建。2 m: ^' O: @, ]' q5 y( {: X O2 x
3、工程聚合、继承、依赖。7 E+ ~6 W- R3 t# F
6 r1 z6 T/ S, W; \$ H
2.2 Maven的工程类型:+ r5 `$ k5 }7 Y `& ^* a. U. A
1、war包工程7 g% W$ p. ?8 O+ ~5 I# `
2、Jar包工程
0 S/ n( {8 x& t4 H7 O$ [3、Pom工程。6 V/ w: |" U/ X" D
( E* `8 V" M) j/ w$ v4 V
* c+ n4 u! G: g- J" Z