9 l. @' f6 T# x9 M: W
课程计划一共14天课程
Y; Q" ^6 ^$ g. \, V
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
" m+ c5 i7 d$ R9 N' n/ f
% y6 D1 y+ ?. w/ j) @- X q功能描述
, @% t* W v" x后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
; F, Y! ^, G* m5 G
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
; X5 r" a1 B3 }4 _( h+ |: @, Z
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
+ Y- h" b! a3 p+ \6 b8 D4 |" [" A
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
' Z1 j- u- l1 \" }搜索系统:提供商品的搜索功能。
$ s, v7 ~3 p/ Q8 r单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
4 _9 C: |+ M8 J5 h$ m7 A, x
/ l2 H6 O8 G9 B; r# h思考:有什么问题?
3 }7 y1 r1 X& O3 K5 S7 X: F1、 模块之间耦合度太高,其中一个升级其他都得升级
# }+ t5 a# @! V Q
2、 开发困难,各个团队开发最后都要整合一起
$ |% K$ z. n8 J' R
3、 系统的扩展性差
1 n6 |1 Z" a, i4、 不能灵活的进行分布式部署。
( N, x. P, q. F0 j
# K6 n% H: I }; H
解决方法:
, X" X" Z/ g r& v0 F优点:
1 N. }. A5 m4 f4 ]2 M
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
9 c/ E$ T7 ^8 \缺点:
7 H& t7 ]' z2 p( X9 ~
系统之间交互需要额外的工作量来进行接口的开发。
+ r8 j# s, ]" E5 G; M6 P
: A1 Z/ M l0 S. s' V% G% g9 u$ L
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
& ~+ j8 e& ?, J+ k2 d' c
4 @* f8 `: `& L. P+ I" m$ f% f分布式的架构# ~. q( T0 L9 ]. }
g; L2 e* u9 T
. y* B( D! k' A. W
. i" T. [4 s, w1 w4 I分布式架构# a! V" F1 ~( o0 j3 e& {) I) E$ q
把系统按照模块拆分成多个子系统。
) c- f& O8 e! F4 v0 E5 r: l- y% q/ j优点:
" F/ r2 ?0 s2 i
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
9 b% v v W# l* S/ ]2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
5 [! o# ?! v; R. ~# q% v+ O' @- y- C' l
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
8 l# S5 e% R9 c# [
4、可以灵活的进行分布式部署。
0 T( ]2 l7 J+ d# N, j* u. G1 ~0 A
' G; W1 O% q2 D# O8 I缺点:
5 ~- g/ E* F \& n p/ s
系统之间交互需要使用远程通信,接口开发增加工作量。
3 e5 E+ H- |) ^3 H3 u
- O) o; Y' l. B% Z# ]; @* ?技术选型(主要技术)& d. T4 ?7 T% _) j& a
l
spring、SpringMVC、Mybatis
g1 l1 K( f I; cl JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
0 v! K0 L1 \( i, l* Y4 V. k/ rl Redis(缓存服务器)
. F& w/ b4 Y) J9 x8 ul Solr(搜索)
( Q; E/ t1 N* S/ _( m7 }. ~l httpclient(调用系统服务)
& K0 C$ }; u( u. }5 I \/ s1 g7 ^
l MySQL
8 B! s7 H4 J9 _' al Nginx(web服务器)
3 j g5 ?" ~1 ~4 Y7 o1.1.2 开发工具和环境: O9 ?; \0 S) q! x0 E: V A
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。' W s, f6 I* y x0 w5 O
Maven 3.3.3(开发工具自带)
: a3 ~8 v& ]* q& m7 t3 l5 JTomcat 7.0.53(Maven Tomcat Plugin)& Q2 ]- d+ R6 V% v
JDK 1.7
3 j1 b, Z1 A4 ]" QMysql 5.6$ \! |" K. x7 r" ]2 l% K: w* a
Nginx 1.8.08 X5 Y( d7 z0 I9 ^: e8 U- q
Redis 3.0.0, {; U- t( Y% I! V5 B1 W
Win7 操作系统
' R# N8 k# V. e, fSVN(版本管理)
' r' c9 s+ o4 [* i1 O C1.1 人员配置
& |5 ]% b! r. V1 ]1 S产品经理:3人,确定需求以及给出产品原型图。
$ u9 y) {) F0 w) V- u1 Y H项目经理:1人,项目管理。- D4 `* m. x. p8 @
前端团队:5人,根据产品经理给出的原型制作静态页面。" i% d( |4 \: Q' F _; U6 w5 E
后端团队:20人,实现产品功能。
J |6 {7 h: l8 U# }) q测试团队:5人,测试所有的功能。
7 [4 z1 O- _; c E: p5 k& o运维团队:3人,项目的发布以及维护。/ m% @# k/ {6 P
! d0 K( [( W! T2 B2 后台管理系统工程搭建
. o+ S) c6 k/ R3 N: F1 C4 d2.1 Maven M0 J0 m$ k0 G" E. k% B
1、依赖管理、jar包、工程之间的依赖。
% G5 e9 C; H# x: i; F) a2、项目构建。实现项目的一步构建。
& r* X% o3 J5 g/ m; q; }3、工程聚合、继承、依赖。
0 s) O! A" E- \5 j ^6 Z+ A" q$ |2 Z" u4 J
2.2 Maven的工程类型:
; v, N/ P: O( v7 x$ P3 |1、war包工程
0 l2 [3 M2 R" v2 U1 ]( [2、Jar包工程
+ L* T: V) E! \. z# U0 y3、Pom工程。
/ \+ o- W$ T' `+ R6 @! J6 z3 p7 q3 I2 q1 w
) l1 e6 M% q' @* Y) s