6 O" N) C- D, A
课程计划一共14天课程
* c4 G; ?$ ~+ m7 D
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
+ ]' X+ x9 J. t; I- p5 D- [% M
( ]. |: n0 J, O/ f) ]
功能描述" `5 {1 E% J" q. f3 b2 X
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
) |+ `, k' `1 V: e) O前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
c3 S: M) V1 d5 _8 I4 l$ C会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
5 W' w. Y; o" o$ k6 ]订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
) N }6 ?6 L% X: C2 @, R
搜索系统:提供商品的搜索功能。
2 p- T* n* X" t9 M单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
9 |7 F+ E3 a! b% m% K9 i! n) @& s& U& u
思考:有什么问题?
$ {+ x9 _- ~' [9 d( S; z
1、 模块之间耦合度太高,其中一个升级其他都得升级
5 T9 I1 b6 ~, ` g7 N4 g. S2、 开发困难,各个团队开发最后都要整合一起
2 ?2 N/ s& [, s1 G
3、 系统的扩展性差
& W9 T/ b! @: ?& }6 I4、 不能灵活的进行分布式部署。
. P# t5 a* q: a3 _
$ H. E8 W5 E N2 L& I& w: y解决方法:
6 C* d1 g% i, A! [* V+ A优点:
3 _* ] l6 X0 u/ ~9 q& @0 E
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
3 a8 _; [8 e; I1 d& o, T& \* Q
缺点:
1 J3 Q. t4 v- g" S
系统之间交互需要额外的工作量来进行接口的开发。
' S& Q+ a6 L2 g8 C' b+ }5 X1 ~* m8 t
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
- J1 m6 \& v' i% P
0 a9 @* c/ I' ~ r7 R3 s分布式的架构7 ?: V/ A. E* m
; \: w- c/ J5 [3 A5 ~8 Y
z7 K; D0 S& N" P9 v1 E4 G. x
9 u' I6 U3 a$ d$ R分布式架构
& _0 _: C* k( ?把系统按照模块拆分成多个子系统。
& c% w5 E8 i9 R+ H# U1 |7 w优点:
0 n& ?! q' V4 h; y! C" u5 r/ V1、把模块拆分,使用接口通信,降低模块之间的耦合度。
! j8 l l0 h9 w( S9 y( K2 h2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
9 P- Z. ?2 C9 P8 m8 Q9 n: O3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
. G$ c* E+ r( R# p. g0 z
4、可以灵活的进行分布式部署。
3 s# n8 ?, i w1 y6 q y
& n4 T7 |. k% }$ _( U0 o8 C& E2 d! T缺点:
! t& {* J1 M: |" Y+ K* {$ t7 G
系统之间交互需要使用远程通信,接口开发增加工作量。
2 d6 ~; P$ S3 z" o' s
2 L' P& a) K5 q2 }8 Z
技术选型(主要技术)4 D% u) t+ z, }! x
l
spring、SpringMVC、Mybatis
. A& Q, ?6 A6 y4 ], K! I t
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
8 m- N9 Q1 o- D9 w2 @3 Q
l Redis(缓存服务器)
6 ` Z" B- h; N: Sl Solr(搜索)
" U$ k; }4 M7 j9 _4 Cl httpclient(调用系统服务)
5 [% k, G) s" P! h7 H4 J4 o2 wl MySQL
1 B8 k' ~$ N. k+ w
l Nginx(web服务器)
* P0 F; V* y0 K! L. p [1.1.2 开发工具和环境( A7 C! X8 ? T1 H8 Y/ D
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。! s4 T# m5 h3 m2 [" O$ D
Maven 3.3.3(开发工具自带)
& n0 [5 J4 ^7 ]Tomcat 7.0.53(Maven Tomcat Plugin)
/ Y& g& q! |% I9 j$ VJDK 1.7
* s/ T* n+ I2 M+ C9 [6 q! O+ UMysql 5.6
. _9 f& z: t- h+ U V5 tNginx 1.8.0
- q# b% |; x. C6 w cRedis 3.0.04 I& `+ v1 \" n0 Q" r0 i5 J
Win7 操作系统
* o9 B% A, k3 O0 z' \SVN(版本管理)
- F' C# n1 A( }, B- V( G1.1 人员配置
# E7 B" F0 \2 C7 _产品经理:3人,确定需求以及给出产品原型图。
) S( l8 Y, D! ^9 P* x! ^; u项目经理:1人,项目管理。( o+ X: W; P1 \# T1 E
前端团队:5人,根据产品经理给出的原型制作静态页面。
5 w, o/ p; ^. A1 V0 D% P后端团队:20人,实现产品功能。6 T) i( p' b/ F( r
测试团队:5人,测试所有的功能。
; V* o& r- I' }: C, l. b& R9 d运维团队:3人,项目的发布以及维护。6 F1 r) u6 R4 {; L: |
6 M8 e* k* P. Q1 v1 P9 {7 K/ P f2 后台管理系统工程搭建
4 y: @2 e/ p8 c" k6 X2.1 Maven
! d# X! F9 S" j4 x; |: B, ~1、依赖管理、jar包、工程之间的依赖。5 _* f; P% o [) R9 l# I7 G0 T
2、项目构建。实现项目的一步构建。
; H3 `/ g3 A( v3、工程聚合、继承、依赖。
: u ~, r M! v) d" D( \6 A; M( V$ z1 I* u! u) ^ Y& Y3 G" T
2.2 Maven的工程类型:9 k6 Q. N4 S' e3 _* f: ]
1、war包工程( |% b0 f. h& F2 P& u3 k2 V
2、Jar包工程
1 E6 t8 `- H" {+ f' U! j! D3、Pom工程。
. ~- i! a, ~+ U+ g- M
; j& T/ v* \, P, m
* @" J, q6 G, h1 R5 j