8 J4 O( a7 p8 _+ ?6 H/ u0 t: |" T课程计划一共14天课程
# J; n5 u m5 H3 \9 b1 s: V1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
3 a6 a0 |+ Y5 V: r
, e6 ^8 R* q* Z9 d功能描述
0 I, P) v7 C! d" r# x后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
. }+ B) ]8 a$ S7 ~; ~前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
! _4 C' Q0 n9 E' L* ~会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
9 B: r3 h' ]0 v8 i- A! |
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
. f9 P* x7 G/ t9 Z7 t, O, R( W搜索系统:提供商品的搜索功能。
8 Z5 Q( D! K+ C9 {. S1 n单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
6 S: P# B% g- X$ ^ F4 U; W% i c( D, u* J) o# U. J. T9 _% [
思考:有什么问题?
1 h% z% o4 W1 [* P) l6 Z8 x. E1、 模块之间耦合度太高,其中一个升级其他都得升级
! I, a- r7 d9 o& x! H4 q2、 开发困难,各个团队开发最后都要整合一起
3 ^2 M! g5 c0 ]: i. z5 t
3、 系统的扩展性差
: O7 o6 U/ C( e' O4 {$ `9 i
4、 不能灵活的进行分布式部署。
9 d5 V* X4 t+ X, K" n* M8 w5 a+ C& }" S8 Y
解决方法:
( }* O7 X7 x7 |2 t5 ?, ^( z( z优点:
9 X. M1 `' V( n: g7 H
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
3 n6 P9 \+ D- Y1 \) T1 ^缺点:
8 G+ i& ?+ N9 [0 L' Q+ a3 C/ }系统之间交互需要额外的工作量来进行接口的开发。
6 Q4 G6 y6 M" J3 l8 x
" b6 j0 A+ c+ z6 a
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
W- U s+ k% W L- F; q
! N4 q2 l, _2 ?
分布式的架构
+ I5 f+ y( W7 Y' k! o" K& c" ]' L
1 m B, m1 w. g) |3 ^" Y
# l. N' V" u b) E Q
2 V- _" ]. G3 C) g% q分布式架构
8 S* C3 j. |& Z" l m把系统按照模块拆分成多个子系统。
2 C5 b' W3 W0 g9 S/ d, Z# I优点:
. ]6 A! z$ r, |
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
% B1 j7 ~ J, h+ _5 y
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
2 c$ H6 E6 ]" s4 N* a3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
# h' z% @' V7 N2 u/ D+ G% F
4、可以灵活的进行分布式部署。
+ J$ b7 ^% m& g
. U# Y+ g& x+ |/ D. `) Y
缺点:
6 F" @' {2 X* U8 l) s% V! H7 C系统之间交互需要使用远程通信,接口开发增加工作量。
: f$ j" o) j& M/ q) y7 W6 A0 X# r
技术选型(主要技术): a; ^% Z+ J2 @- r8 S, N8 b
l
spring、SpringMVC、Mybatis
& {7 o* f. r3 w& R0 B E8 pl JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
8 {8 Q7 f2 K2 C1 |. Ul Redis(缓存服务器)
8 d7 z4 s- f% s
l Solr(搜索)
. o: l& y4 l. l3 r% m9 W
l httpclient(调用系统服务)
' [- a( W5 u- m% M( g4 wl MySQL
7 p/ v+ }! W7 d& P- jl Nginx(web服务器)
8 U+ y& g2 Z' C& E, o9 K1.1.2 开发工具和环境- Y5 N* {" f3 i% a# _; B
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
+ @0 S% s: o* k9 k2 S4 qMaven 3.3.3(开发工具自带)3 K6 o7 \9 V$ W6 V4 s' J9 s$ ]
Tomcat 7.0.53(Maven Tomcat Plugin)
( V% L" b# k9 ]JDK 1.7) a e: S( ~. @
Mysql 5.6
/ {" l' W* ^6 l ZNginx 1.8.0& P' r3 L1 Y" v5 ~$ Y _+ R% y; f
Redis 3.0.0
/ L# w& g' V7 \- D- NWin7 操作系统' _2 e1 H4 M$ f0 S, {
SVN(版本管理)
/ y" X8 h, C' t, u; l1.1 人员配置; U: N3 M w' X) _3 h" `
产品经理:3人,确定需求以及给出产品原型图。" W% T5 V8 m: b1 m" G/ R6 N* Z
项目经理:1人,项目管理。7 E D) o, n- W3 z6 T, J' i) e# m
前端团队:5人,根据产品经理给出的原型制作静态页面。* n" g, ]4 j% M, d
后端团队:20人,实现产品功能。
* K A" X) ], u) O7 K: G测试团队:5人,测试所有的功能。! C) y$ h3 L7 F8 q; d" e+ k+ g
运维团队:3人,项目的发布以及维护。6 b! T, i! i( `( ]6 J' S
% \7 i7 o0 A' w: C
2 后台管理系统工程搭建4 l8 l/ j7 S9 T4 |( p8 z
2.1 Maven$ H: a6 c* g D$ {; z& {& @6 J
1、依赖管理、jar包、工程之间的依赖。
+ c# x: S: v9 O& k7 y/ j; d# v2、项目构建。实现项目的一步构建。
# @; S5 H9 {: |7 X3、工程聚合、继承、依赖。6 [* M2 d/ e& u$ Q' ~9 J7 Z& e% ^
0 I: P* g( U0 x- q' n z! f$ G$ N& F
2.2 Maven的工程类型:! j% `. p8 x1 G4 _
1、war包工程% q* d* e3 _& C0 G4 b q4 a) X0 V
2、Jar包工程
& X) B5 [8 y5 T, ]: |2 G% U. }3、Pom工程。+ H+ X2 U" u+ d3 u6 t, q. X
- J A% ?8 K+ @
: G7 ^0 W" `& n: ^