3 M+ p0 f1 m z1 |课程计划一共14天课程
( i! d* Z. T: d6 ^$ z6 k. `
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
# _ h! O. _1 G% |+ B0 ]% @7 c: D
7 e- n. c5 p+ C2 t" _ l功能描述* x; Q' N9 l* Y1 m* z- P5 H' S
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
Y5 c8 H$ x' m! s7 L2 I
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
7 m* q; @2 z+ D2 k
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
& b, E5 R5 O1 T9 L; `
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
! v8 [1 `! b e1 y
搜索系统:提供商品的搜索功能。
y+ b# W" T( a% A( b单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
1 G$ b9 ~: F9 G0 u: K3 @8 ^2 |0 E1 Q- l, \ r, \/ j3 W% |
思考:有什么问题?
6 K2 c, r% M0 W9 R
1、 模块之间耦合度太高,其中一个升级其他都得升级
' L- h7 B( x7 l" p3 K- P
2、 开发困难,各个团队开发最后都要整合一起
/ r6 e, ?# A$ S
3、 系统的扩展性差
( C( u* M- B; G. z; m# A4、 不能灵活的进行分布式部署。
$ j" [: [6 Z! r
$ R* E6 G' a6 S5 L& ^ Y: [% j
解决方法:
7 p& k, t6 [1 x" E4 a/ f* [7 O优点:
7 D' t4 O5 o! C' C9 c' u8 Q把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
. r; \9 F, ~1 R4 _缺点:
3 m4 F1 H) u1 `( o) D系统之间交互需要额外的工作量来进行接口的开发。
; ^ H+ H" U5 b8 h
+ C" X3 [% i) K把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
2 s2 x- n- ~: c8 n/ M7 t1 m( F7 B& F* f; ]
分布式的架构$ t8 }0 Y$ o$ r
: ~/ i1 e; ^5 q+ u3 S' A7 h/ `
' _* S: B- |5 W/ [5 e7 n, s8 ]
5 o* u* A* u7 r7 c
分布式架构
, C. z: z0 W" G- F把系统按照模块拆分成多个子系统。
+ M* h: c# S7 y; G
优点:
9 e3 s- r5 {% J( o! f/ m9 J% u1 ?
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
7 R$ f/ [3 }& l2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
: K5 l* U, y& n
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
! u% M# q, K( \8 D( q5 F' q
4、可以灵活的进行分布式部署。
$ V: K. x& O! D* F, a
! h& H! |1 e& q* Z' Z$ m: P) I8 Q缺点:
; ^. T* H- t7 w/ d8 q系统之间交互需要使用远程通信,接口开发增加工作量。
1 k6 n& Y1 |$ Z5 ^' e8 p
$ ?; N& T r. Q" L技术选型(主要技术)
( b4 s8 l6 x8 r- |l
spring、SpringMVC、Mybatis
* |9 _) B1 I8 l' D6 al JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
Z R8 V6 U }l Redis(缓存服务器)
2 i' l; h# ?% w* k; b. T$ U& [
l Solr(搜索)
" Y4 u; \7 @9 W! z
l httpclient(调用系统服务)
1 A: v$ d* F8 u6 v3 V" ~l MySQL
0 {) V- [$ a6 ?9 n0 Kl Nginx(web服务器)
0 E5 Z3 L) C' G: I" W$ K
1.1.2 开发工具和环境; v; m7 M! V* n! ?( d
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。# q2 A) M% n5 m
Maven 3.3.3(开发工具自带)
p4 A' \4 q* X/ r$ I% g7 Z# I# ATomcat 7.0.53(Maven Tomcat Plugin)
& t: f: x4 u" h9 C8 P4 w' y4 eJDK 1.7
5 \, {" n4 v# X, n+ V/ r* ?Mysql 5.6! {6 i) r; A1 e) I
Nginx 1.8.0
( O# f$ g- v) M0 u: ?1 x( }& ]Redis 3.0.0
1 Q. f2 i! b$ F/ {+ P% K# ?% u/ BWin7 操作系统
9 r; r( T* e/ l. e( w3 g- zSVN(版本管理)
! Y A" [0 B# U+ o
1.1 人员配置$ Q" X; g% r& I* }8 ?" i/ ~* b
产品经理:3人,确定需求以及给出产品原型图。
/ \# l: F5 r* n7 }8 L项目经理:1人,项目管理。- Q* e v7 g) Q- O& p, O9 y
前端团队:5人,根据产品经理给出的原型制作静态页面。; @! B8 R' k2 P$ B+ w1 Q; @$ o
后端团队:20人,实现产品功能。3 `! K6 q: N( n; K5 c1 K
测试团队:5人,测试所有的功能。
! U, y$ u5 ?6 R; e) v: Z0 N运维团队:3人,项目的发布以及维护。
; t$ ~. C! i/ o$ B4 l4 c; ]0 ]# H) D2 r+ w6 _6 S* L* A% W. G7 p C( D6 |
2 后台管理系统工程搭建
; j/ l7 |) B6 W2.1 Maven* |6 e1 Y( B* w. i6 Y4 y
1、依赖管理、jar包、工程之间的依赖。8 Q# j/ i4 V! l' r8 ~
2、项目构建。实现项目的一步构建。! ~- G' m) ?# v5 I; z7 e
3、工程聚合、继承、依赖。
. r- {4 `% p; S( W& _, w. C9 |% v1 R$ Y
2.2 Maven的工程类型:/ |/ `+ n+ o7 c4 [3 ]# Q: b
1、war包工程6 M. j+ R6 `% i; r: n# `1 u/ L
2、Jar包工程/ f+ }9 o/ r6 k8 O& p7 a* G, m) g
3、Pom工程。5 @, W5 s" i0 d1 v! `1 t7 j+ Q
4 S5 }7 F# [+ H. L/ T- d
! b7 T" r! f" L9 m a8 C- C