) T/ g' C2 i0 w" `/ ^; ~课程计划一共14天课程
( V5 q/ t. { l9 h2 h1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
3 C. \7 g* a; n6 l$ d4 x
6 [7 n/ z( m5 Z2 p; d9 Y0 l
功能描述
5 G" r( q% I: O6 c/ Z后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
7 [# D' T: r9 Q前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
; ~% B' ^; {: d9 o会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
8 p/ h0 y4 X6 y; p订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
: F' d3 E! \9 |6 q# J. {* h! ]9 f搜索系统:提供商品的搜索功能。
2 i: X2 A" h5 e( x. h9 ]. E单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
+ g) x( R- J3 d9 D2 a- I
5 R/ p, I, h6 I* {# H5 M3 m思考:有什么问题?
6 R& N$ R! l1 E1、 模块之间耦合度太高,其中一个升级其他都得升级
% t/ ?4 a5 y, R$ T8 ?
2、 开发困难,各个团队开发最后都要整合一起
. d: S- |9 T, o$ M- `# M Q! r( s! ?
3、 系统的扩展性差
0 u# s. v+ ?# u3 e! Y/ l! n
4、 不能灵活的进行分布式部署。
5 J: ^1 K4 p* ]& I6 `1 Y7 i( F' f, t% U' G& `0 W7 m0 ?
解决方法:
$ ]; S4 V7 f0 c3 [) U2 O7 o优点:
: q" z. N/ c8 }% K- y9 z把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
2 H2 x9 e: Z" @缺点:
2 }+ \' A" ~% N! o v
系统之间交互需要额外的工作量来进行接口的开发。
; M5 Q" S5 F+ A0 G* h' E/ s6 N9 c* r; R
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
% y/ H. N3 N' ?7 x- L. j `4 w
2 i2 t$ G P! }; i; G5 L分布式的架构
2 g. o) J; Y5 l: D2 w# [$ {9 }4 G v8 c
( T4 h; O! U# A0 k+ S2 T* M
1 i" \: y( y% p# L, D
分布式架构
T" E; `) S( `- L* i* @把系统按照模块拆分成多个子系统。
0 L$ ]. [6 p5 `& D" l$ c优点:
( ]3 B3 E [; J
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
' A6 r1 ~$ K+ {/ S
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
& Z/ q; S# c3 W; [( b8 b7 D) s
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
2 r j1 w( @$ Z9 t% k
4、可以灵活的进行分布式部署。
' V0 Q3 a8 B- N3 i9 @) V
+ d8 n" _( ?9 i% H" M) F I缺点:
' v- |$ r# V4 L& ?+ d# ^系统之间交互需要使用远程通信,接口开发增加工作量。
/ }0 t$ V2 G3 Z7 R0 ]9 A9 W9 J: \6 Y4 w
技术选型(主要技术)7 U: S" S! c+ L& M) q* |
l
spring、SpringMVC、Mybatis
?- \/ Z- i0 w! c$ n. Ml JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
/ Z6 h7 M5 r* @( }6 ^1 A
l Redis(缓存服务器)
- s) r W, g8 M# S+ Ml Solr(搜索)
2 v% p6 _; z! @% [& }& l
l httpclient(调用系统服务)
0 a! i+ g" a |4 C
l MySQL
/ X; F& L, k7 u, f. T& N+ T7 Tl Nginx(web服务器)
7 T' O7 T2 t6 X- g
1.1.2 开发工具和环境
. U- k3 G5 W, \# T5 [: u. I% LEclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。0 q: ?4 L, q% p" B/ v
Maven 3.3.3(开发工具自带)4 G; w' D5 f% n0 `! p$ @
Tomcat 7.0.53(Maven Tomcat Plugin)0 M/ ^7 [/ }. R: ]& w4 G
JDK 1.7
! G8 S0 Q2 P( g" a* u) A: iMysql 5.6
0 ~: ]; }$ S' k" M+ }4 ^Nginx 1.8.0
M7 q/ T$ R2 X. W" {- uRedis 3.0.0
. h8 ]# l8 j. J) m S: }6 N: Y! U( XWin7 操作系统
* y; @7 v) m6 Z# C4 ^6 gSVN(版本管理)
. K- b6 M2 H. R! t `
1.1 人员配置% i5 \8 `/ |1 Z- v$ ?+ p
产品经理:3人,确定需求以及给出产品原型图。
9 w+ J/ t+ `* V4 _项目经理:1人,项目管理。
* v7 \* T' O: `. g4 t/ j前端团队:5人,根据产品经理给出的原型制作静态页面。( U4 d {$ M2 X; e
后端团队:20人,实现产品功能。4 y) ]; O5 [; W4 V c
测试团队:5人,测试所有的功能。
1 a# n& q7 r8 C; A% }0 U运维团队:3人,项目的发布以及维护。6 o s7 n" u3 g# ~% R% Y& t1 ?
( ]9 r/ V' d: [; f2 后台管理系统工程搭建
3 Q. m. Z# o4 L" z: _2.1 Maven& B. o8 E0 L5 u, k# A/ b
1、依赖管理、jar包、工程之间的依赖。% t( B$ W1 l% n- S8 u" _' X
2、项目构建。实现项目的一步构建。
8 ?; i8 y7 a, j3、工程聚合、继承、依赖。
' ]/ J4 K8 }* _9 r; o# |$ G
O& I" ~9 c, e7 r+ s* g2.2 Maven的工程类型:
' z# p! s/ T7 r5 h P& B2 ^/ ?7 _* H1、war包工程0 t/ S$ [; R" e( V" o
2、Jar包工程
: b6 T/ |& h( W! v. O" O3、Pom工程。5 a* I. g/ Q( B9 L8 x
# t) m, }- i* j/ e4 d
! e; l$ D3 g; i% C# p