; x- o+ J( {: w8 ]2 D
课程计划一共14天课程
5 t: V8 E l* Y/ l7 A
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
) J6 ^# |/ t8 _% l4 i& q& w7 T3 E
% r1 m4 b; \' ~) X# U% c! h; z功能描述
" O# [5 L9 V$ [* P1 C ^后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
! ^" |0 @# ~5 e5 D8 A* A1 A. J8 k% h前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
8 j; y7 u" m- l7 h5 d; V, `
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
+ K. H9 Q( A: f8 {5 ~7 X订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
9 E! ]; }+ S8 ], @' l1 \; d
搜索系统:提供商品的搜索功能。
/ y. @2 \7 Z* ?单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
' V) _- |! \% V* e/ V3 p! R
3 _& y# L" k E3 B6 ~. U. w1 f& G思考:有什么问题?
- e) w) f' O& S2 }
1、 模块之间耦合度太高,其中一个升级其他都得升级
, D/ l1 N: w+ k5 z
2、 开发困难,各个团队开发最后都要整合一起
* y: L& i+ G7 U5 G e( @. L3、 系统的扩展性差
% E1 X% d. n+ x) I* G8 T
4、 不能灵活的进行分布式部署。
: D8 k' n6 l8 [+ Z8 o- Z5 e3 c4 i) b
" |& F+ x4 o( r" h1 l
解决方法:
+ l& p7 k$ k5 e; V! A7 |3 J优点:
9 K1 f) z/ l7 N2 ` j把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
. e( b! H3 v7 q. M缺点:
( R- t1 W( E: ^
系统之间交互需要额外的工作量来进行接口的开发。
( J0 L- B: v J9 @8 {7 o$ ?
5 t/ F. b7 e" }+ h" o! A把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
* h9 s4 ^9 G; z0 |3 [4 b, ~2 {
d) _ D0 `4 c
分布式的架构1 j: s$ @% M5 W" |# E, ]5 m
9 W: \ a: i Q! G
; X" ]! d* h" ?. m0 I- o% i& g7 W) N
分布式架构
% v+ o' o' ?( p/ b0 N把系统按照模块拆分成多个子系统。
, a9 {( T$ E! f" j1 v/ b; A+ ~* c优点:
& y+ `0 K8 Y4 f {" G4 Y& Y9 L ^
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
6 E* b `+ e# |! E# @. v; a- `' H* ?1 D6 H
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
5 L' D1 J: c4 q4 U5 P2 x; N3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
6 q2 J, q4 z; ^0 T! \) `8 Z. Q3 `: v4、可以灵活的进行分布式部署。
1 ], N% l: p/ O% ^; j# f
6 U) \( [4 \5 l ^2 g缺点:
- I: b9 p5 q4 D4 P# C A6 H/ r# L
系统之间交互需要使用远程通信,接口开发增加工作量。
; J/ k+ C) Z; |6 q* u
x0 p0 ~8 J. T: r5 C/ ]技术选型(主要技术)" e& b5 h$ I3 S7 ~9 j& l
l
spring、SpringMVC、Mybatis
0 \- s2 U0 T3 [" Gl JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
6 g% o8 s! ~0 q |0 O! o0 z+ @& m
l Redis(缓存服务器)
. n8 m" ~" X. i- M) b( ?$ fl Solr(搜索)
* n7 e5 ]0 t0 ^" q2 a
l httpclient(调用系统服务)
$ O0 L3 n0 S p1 a2 ]! z
l MySQL
+ {# b) M7 _& T
l Nginx(web服务器)
9 x/ Z5 S+ |% Q. L0 K( E; ^$ b& `
1.1.2 开发工具和环境
& _; y( }0 M8 r& WEclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。
& j& |7 z T3 {) I {5 MMaven 3.3.3(开发工具自带)+ F1 \5 B {) t- @
Tomcat 7.0.53(Maven Tomcat Plugin)' y0 K. ?, _. ^9 H, S/ k" u6 n, Q
JDK 1.7
; h/ C- P3 E. `5 `8 }Mysql 5.6
& a0 ?6 Y) y) W2 h% G+ WNginx 1.8.0+ d( w( P! P; E2 o7 d
Redis 3.0.07 u* `9 ^4 s5 c/ G" c
Win7 操作系统9 q" C) u3 c8 l H) P# `3 T) B; S
SVN(版本管理)
- d8 w) {* \4 f- K9 o1.1 人员配置
4 |' \$ j* O! {% u/ N$ G7 v产品经理:3人,确定需求以及给出产品原型图。0 Y! N5 c. y3 n$ x) a5 B5 B D; E
项目经理:1人,项目管理。
W" N" K5 Y2 K) x$ ~8 e前端团队:5人,根据产品经理给出的原型制作静态页面。. z* Y6 m7 F M3 i9 {8 L
后端团队:20人,实现产品功能。
) j" T2 v# D- n* Z测试团队:5人,测试所有的功能。
4 Z4 N# p' |) a" d6 O' w- ]+ N运维团队:3人,项目的发布以及维护。& t/ O, F) Y0 [* p( Y
5 E& t# O _8 \# R" D
2 后台管理系统工程搭建5 Y* h( F# x d; p" [ u
2.1 Maven2 u5 W, _ o1 |, _) N% o" v' n9 Y, H [
1、依赖管理、jar包、工程之间的依赖。6 b! V! T5 e2 {8 Z& y
2、项目构建。实现项目的一步构建。" [ q8 W- C' j6 K9 h/ T
3、工程聚合、继承、依赖。
3 T) `- [! H* n
0 i# x7 }; I6 R0 F# f, \0 j2.2 Maven的工程类型:
! y% U6 E, o5 H5 s1 c1、war包工程
: a. j6 F; u- [( o" E2、Jar包工程
) e1 K" H0 _9 {" e4 [/ w3、Pom工程。" m( s B0 i" I5 A S: c- f
- B9 [* S9 m7 d! t
) D* Z( _$ C* C8 c6 x$ N