8 K7 w- r/ \/ E, V* K+ h! ?课程计划一共14天课程
! N( G* @7 \" j3 m8 ]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 n1 b4 j, n; w. D' i& ~; d( B9 Q
功能描述% z/ Q# i, u. ]# B
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
; |) H. Q4 h, q) j
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
" D$ M6 g N: q& o6 T/ a
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
, _. G9 R; r2 \: X# r$ J, k0 A
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
; `: ?8 A0 ~; k) k$ z6 w* y
搜索系统:提供商品的搜索功能。
/ X1 F! ]8 B8 B6 B
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
/ W3 w# N) A4 ^( D1 a, r" g
+ J1 N7 q. u- L' `7 o, v$ e3 ]思考:有什么问题?
7 k. H/ q2 N1 I! d% X1、 模块之间耦合度太高,其中一个升级其他都得升级
1 D8 d0 m5 |# f2 e7 j2、 开发困难,各个团队开发最后都要整合一起
. V' y, N9 U) C! [" O# h# K6 a2 V3、 系统的扩展性差
9 ?# k$ R0 Z5 l2 j+ e4 R- [4、 不能灵活的进行分布式部署。
+ E" K! a4 |9 C7 c+ ^& d9 D
# R' u% u; Z" f: B/ B U/ l
解决方法:
' Q. }9 M, I, \7 ~% d
优点:
. d+ }6 \! x6 N7 `% P" H把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
6 J+ K( v- k$ C' D3 N4 O4 ]- j缺点:
, Q/ x5 n, P7 d/ [系统之间交互需要额外的工作量来进行接口的开发。
8 O8 d d! l* |' q& v0 g7 u0 r% P; g" F" ?5 t% J% e( G
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
& R- h; R4 T- F" T" f
1 _4 _% i6 r4 w3 n/ ^分布式的架构. |2 a$ z+ z% p' N: w5 L
2 ?; G; Y6 q" S; P3 g
! w# V0 y; i) _$ K- s
) G- Z9 n! i. x. Y% A5 g- a# {
分布式架构/ v9 @" T+ H. M8 I% J0 w1 |( o
把系统按照模块拆分成多个子系统。
& C6 l h+ Z; n& v+ r; E优点:
5 o3 j; p$ X G, H1、把模块拆分,使用接口通信,降低模块之间的耦合度。
- A5 a. c# ]: ~9 ~% ?8 y2 R6 i2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
, P: y% m& h9 x- C2 B; O" A3 @
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
. I5 g5 {% z+ y4 E4、可以灵活的进行分布式部署。
+ ]/ e6 j F4 F+ b
; i, Z: P: l3 {- Z$ W缺点:
$ `, B" n- b- P d系统之间交互需要使用远程通信,接口开发增加工作量。
: X9 A! F/ A a
$ h$ m3 J$ C5 u2 z5 x$ i& z- D% n7 W技术选型(主要技术)0 ?) @# [: p; x+ P" Z
l
spring、SpringMVC、Mybatis
9 ~- O# G. W: ?' H3 y1 s6 x6 Z6 F
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
9 A! q' `4 Q+ {4 `l Redis(缓存服务器)
6 ^% m! A1 J2 D7 E8 rl Solr(搜索)
: {- g1 I; R9 {+ U$ U" A
l httpclient(调用系统服务)
: f* @) Y) [! S* _% nl MySQL
- N+ b; E( W M; A& ]7 |8 ?9 t4 t/ y+ T5 tl Nginx(web服务器)
9 n, ]6 Y; b! X4 r: r/ x
1.1.2 开发工具和环境; C# }; p Q7 c/ T2 ~, V
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。$ q8 L, c1 V/ _% ]* W5 H! e1 B
Maven 3.3.3(开发工具自带)
- A, Q6 Z; f& _2 PTomcat 7.0.53(Maven Tomcat Plugin)
3 z6 }, [% S5 o" t, \JDK 1.7
4 M1 R' a0 u/ K6 _& l& mMysql 5.6
8 i# `! f4 L6 P! P. Z. f% @Nginx 1.8.06 f1 K& I2 I' Q" l
Redis 3.0.0
; a2 [: r9 a7 [3 S4 FWin7 操作系统# e a% b& W) J0 H2 u8 \+ U' _
SVN(版本管理)
2 F4 _% G; m* N9 m ^, c1.1 人员配置
( u* z, X$ K7 B产品经理:3人,确定需求以及给出产品原型图。
" y5 w: _5 ^+ o+ Y项目经理:1人,项目管理。5 d& O, g! R7 @/ ^" q9 D
前端团队:5人,根据产品经理给出的原型制作静态页面。2 g8 u _- ]6 J' W
后端团队:20人,实现产品功能。
* h2 t7 l/ B( H% @; `测试团队:5人,测试所有的功能。
6 a; [4 W9 \7 K运维团队:3人,项目的发布以及维护。
& G' K% a5 j) E- `9 F
8 ?/ V0 E& f8 F2 k2 后台管理系统工程搭建
! R7 [! T. E; z2.1 Maven% ~5 V! O5 E# H# \2 v& L
1、依赖管理、jar包、工程之间的依赖。+ |( c0 a, Y& G% m% G( L
2、项目构建。实现项目的一步构建。
! Q# b7 Q- h$ `3、工程聚合、继承、依赖。& d# ?7 }) t; `' C
& Z- ~, Y, b7 {7 K; L2.2 Maven的工程类型:
" @1 L! s9 { X# J' |% C4 d1、war包工程
2 k$ a. {8 f1 A5 p6 h& A2、Jar包工程
- N- J4 S+ m9 L: u3 Z( Z: t2 I5 }3、Pom工程。
3 k( K, w7 g1 A3 y+ B$ J$ W1 g4 M. [) M1 _' y& |6 L# `$ w
, a! y! I2 e" e8 M