/ b4 ^ C& d% }# t课程计划一共14天课程
. k# E: ^' f. q& d5 f9 s/ x1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
" h1 [3 f& z* p- v
# X/ k. L' ?0 m6 ^" o$ G功能描述1 @' y* N, V# I. E& D1 B
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
$ M( z3 N& J" i7 _2 Q X前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
0 K; l$ ~8 `0 ~. E" v! i
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
4 g3 G2 Y- a* K2 r- s
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
% p7 L3 T2 K0 o9 `* B
搜索系统:提供商品的搜索功能。
. Y' I9 @/ m- C* o单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
0 c1 q" l0 o2 b9 `
- Q: b" F! }2 @& l, B' M思考:有什么问题?
# ]8 `8 l8 v; |# u1、 模块之间耦合度太高,其中一个升级其他都得升级
' g- H1 Y' P0 W+ [5 @( w2 P% T2、 开发困难,各个团队开发最后都要整合一起
0 X6 j6 h" m1 E6 k( ]. A0 n# p3、 系统的扩展性差
$ ]! ]) |/ Z; s9 w% g/ f+ c
4、 不能灵活的进行分布式部署。
9 _' f$ T: b$ |. \. J( W* K8 d5 K. {7 F8 d- |
解决方法:
3 H9 H4 V8 D* i2 Z( |优点:
5 B/ n$ A' ^3 v+ k6 `1 S1 [4 ^
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
. _0 M( ~# k- T( o2 p, L) v$ s缺点:
, |( ~+ E" O4 d% @; B系统之间交互需要额外的工作量来进行接口的开发。
1 D; V( K7 p% w! J. H0 \+ e
) _7 c, ~. M6 x$ e4 |
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
# X4 A. v4 _( E1 _) h: ^
2 h+ o) B+ h0 D& l分布式的架构
0 i9 P) L6 v% R( T9 c5 G& t* `, g. }8 E4 f- s, \
P! n+ j6 w2 q- Q
, C; A: s2 O. f% y2 S9 @ S/ t分布式架构& m5 m4 j" v/ L; h1 b, ?& e6 S
把系统按照模块拆分成多个子系统。
4 p8 n. o1 C, L: z! X, {优点:
9 T, }0 ]5 P* \1 l# [3 o O1、把模块拆分,使用接口通信,降低模块之间的耦合度。
; b6 {6 |% b# W0 u3 D; t2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
2 V5 C1 O, X$ Z6 P
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
- Q5 Y( k. M4 t+ V* a/ v! J# q4、可以灵活的进行分布式部署。
, O5 @2 W+ v1 ]5 }0 ] R; E
6 G! |' E, [8 l0 u2 x+ N; Z5 G! J缺点:
5 l# g; g- D% L) q+ P4 A
系统之间交互需要使用远程通信,接口开发增加工作量。
4 e9 r/ P7 y" E+ N3 i# l9 T' Q/ r+ F& h2 `9 T; H Q
技术选型(主要技术)
6 c- p/ _7 j6 A5 V# o, dl
spring、SpringMVC、Mybatis
$ g9 _0 m0 W9 Y) f- r, P- tl JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
( Y3 W) N, o' \. r
l Redis(缓存服务器)
/ m* L. A8 }+ n' B6 k, G1 u9 J" x
l Solr(搜索)
. }+ A/ r, p3 l7 o: V' w
l httpclient(调用系统服务)
/ } s: `% T+ ^; ?, b& dl MySQL
6 V/ `) Q& s3 P/ ?) R
l Nginx(web服务器)
/ p4 F: O" A. i6 T
1.1.2 开发工具和环境
' I3 a, O7 |* s _: REclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。! Z, [* t7 {4 i
Maven 3.3.3(开发工具自带)
* F5 W" W0 T1 M6 c* J" x. @' DTomcat 7.0.53(Maven Tomcat Plugin)
; ]3 T2 {! }/ I% i6 H* HJDK 1.7
" o/ i# N& ~1 e3 D2 `6 \Mysql 5.62 T9 a2 o. u7 r; n: g
Nginx 1.8.0
; V; O2 U: x5 JRedis 3.0.0
6 P( O5 r7 |- ^Win7 操作系统
. @# o4 L+ }. @/ Z' @0 @4 LSVN(版本管理)
* ]5 G8 _# [# n, w$ N5 O: _1.1 人员配置! }/ r; l) z8 m* ^8 t, b7 E1 n
产品经理:3人,确定需求以及给出产品原型图。
& ~' M# n: |. \: M项目经理:1人,项目管理。! `# y% ?1 u: O6 Z+ A
前端团队:5人,根据产品经理给出的原型制作静态页面。
% \4 B/ P# G# Y" ?5 s) K% J& W6 r% k后端团队:20人,实现产品功能。
. I# L3 D* h% ^6 g/ u8 d测试团队:5人,测试所有的功能。 B [) X: [3 D+ q3 Z) U
运维团队:3人,项目的发布以及维护。
' I- O! @$ o: X9 j& M& |4 l0 z0 v6 C( M* \
2 后台管理系统工程搭建1 h, p. x. Y; {7 k. p7 ^# `" J
2.1 Maven5 l6 m2 f8 W9 d/ S) O$ h% j0 o
1、依赖管理、jar包、工程之间的依赖。& u1 B0 b- f5 d# W( D
2、项目构建。实现项目的一步构建。3 D! o: [& S4 o# w
3、工程聚合、继承、依赖。
* L# Q& D: I2 T* f$ ^ o
9 A3 z" g+ L% V3 |; K: O8 w2.2 Maven的工程类型:
( w3 I4 p. ]- |3 J2 M- Z; u( J$ {# |- T1、war包工程
2 E! U' ^- I) l+ N2、Jar包工程9 y" z% h' U0 ~2 t$ e" P& d6 m( N
3、Pom工程。
& m }) S4 h0 m7 t
U1 t* ^! B# a/ Z8 t
" H9 q7 u* z. Z. X9 {