1 n! C9 Q! v, Z' [" r
课程计划一共14天课程
- Z: H$ y4 Z# q6 i! z+ @& ~1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
% U, S8 c# E x' M f. L5 X( K2 G
4 s: r, |; R3 U, I, F# d功能描述7 ^7 p) Q& u9 Y- d
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
2 B- }7 S- f, E1 w) f+ ^2 k: ]
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
1 {; \# O9 [3 e" q k: I2 g& W
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
9 K7 o: _% |# c% T6 s0 |! n% C# M
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
% u% f. c. g. I: ^9 O+ T2 F搜索系统:提供商品的搜索功能。
1 b4 d+ W n8 E
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
% V, g! }3 W( X4 Z( ^; `
2 U W! W$ i1 a( l. B+ _思考:有什么问题?
2 s" H5 u8 c) W" L* J* a i1、 模块之间耦合度太高,其中一个升级其他都得升级
0 Y! j3 }0 |" V2、 开发困难,各个团队开发最后都要整合一起
( |7 ~( `( ^ [. {3、 系统的扩展性差
! x$ Q! b; I4 d A: B
4、 不能灵活的进行分布式部署。
9 ^! F. [3 L3 b5 b* o' F3 p
% c. J# ]& K9 y4 m& ?8 A+ Q
解决方法:
4 [/ t \* z; p$ ]* g" C4 N, h" N优点:
8 Y6 B6 Q$ r* p, i
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
8 m# A0 g+ ?! q2 A缺点:
; W/ z- w& m4 \! J" B! \0 f系统之间交互需要额外的工作量来进行接口的开发。
+ z7 j. u) k1 P" V- y% M
+ I1 B) Q% g" f把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
% f6 |8 W( Q$ |% @3 h, o
5 C# k1 r% b) [' V! C, G分布式的架构
' ?# {$ l0 X! ~9 _( q
6 Y* Q9 M- q9 A7 p2 I) ]0 i0 H. T1 M
+ K: K5 O! ?6 N, g5 r+ C Q
; c9 P* T+ I2 P) S$ q& l" F+ u; f, G分布式架构/ Y) U* O% d5 g) c q3 j( l4 H
把系统按照模块拆分成多个子系统。
( f+ C5 e0 V( z( G$ ]1 [2 O
优点:
- f. o: R& } W
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
5 J/ h" E* n: ~2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
: I9 |0 X& j6 h' R4 ^
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
; |9 _2 j9 E- t9 ]5 ?# v
4、可以灵活的进行分布式部署。
1 }# C+ C* R4 P( O6 g* x) J' }8 T0 \
1 _/ G1 |2 `% X' Z缺点:
' }9 f7 k7 ^! C& c- O
系统之间交互需要使用远程通信,接口开发增加工作量。
$ d+ p( ?6 u% }! p7 T3 K
. V7 K& c- W: V" c3 y3 ~技术选型(主要技术)! g& X- }, W d4 J" X
l
spring、SpringMVC、Mybatis
! h6 t0 |' h8 ~% B
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
0 `* k; u# S5 t5 K* s
l Redis(缓存服务器)
8 A' I; s+ s5 F+ `3 n
l Solr(搜索)
3 }7 i3 j" U: d6 s7 v4 U
l httpclient(调用系统服务)
5 V. ~$ M) C: n( Wl MySQL
+ I Z" Q/ D& P6 gl Nginx(web服务器)
7 H& }9 K" F) l& Q0 r1.1.2 开发工具和环境 o2 S7 U+ u- X) ^6 W: x
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
1 z5 k. I& j [+ C) r+ ^2 S* c/ ZMaven 3.3.3(开发工具自带)
8 K! x2 r3 d( _7 J. sTomcat 7.0.53(Maven Tomcat Plugin)4 u. c! a$ b/ g" l8 u @
JDK 1.7
/ d5 a' `5 B6 o% JMysql 5.6
4 Y" Y2 U- V2 V( P7 zNginx 1.8.0
" L# ~5 a7 Q$ C5 ~ [- Z5 |/ \Redis 3.0.0
2 E4 F% q# S) A% Y5 `Win7 操作系统1 o& h1 c: D$ T. g( W
SVN(版本管理)
! u1 ~( z1 N4 }1.1 人员配置
8 ?8 O) f$ _% n* j- K4 b产品经理:3人,确定需求以及给出产品原型图。3 _" `/ W6 v1 e8 P3 ]' Z# @" g
项目经理:1人,项目管理。
/ j8 N% N9 N' I$ y0 ]2 u0 p前端团队:5人,根据产品经理给出的原型制作静态页面。
$ E. l; a( w1 J! W( N后端团队:20人,实现产品功能。. O9 Q! ^- H( F& @, j9 T
测试团队:5人,测试所有的功能。9 x$ C& r" \4 e, c
运维团队:3人,项目的发布以及维护。; }( M; c% u5 w5 g: P1 h
1 ^; P4 S9 N% h) p: C$ X2 后台管理系统工程搭建# m- E) d+ c& x. u' {
2.1 Maven
) E3 ]( I# b& ?8 ^. ]! [# R$ @8 R1、依赖管理、jar包、工程之间的依赖。% y) R+ A5 i4 E. R. t
2、项目构建。实现项目的一步构建。
; C% x p; n! }- J3、工程聚合、继承、依赖。
- `& P, h( L* I6 ~: j7 q5 e9 f) \' Q4 l- N
2.2 Maven的工程类型:
. x, G0 F# V' w1、war包工程9 R, s s- x$ J* b Q
2、Jar包工程
5 k7 F% R2 L8 C2 l' P" t( Q3、Pom工程。
# | m- X* O% T# k. I4 ]+ M R- c4 d" X1 e, D+ e
8 J2 h/ _1 i% T- v