0 M7 t7 t! C6 M课程计划一共14天课程
% U: m9 g+ P+ L1 l7 E
1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。
2、第二天:框架的整合。后台管理商品列表的实现。分页插件。
3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。
4、第四天:商品规格的实现。
5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。
6、第六天:cms系统的实现。前台大广告位的展示。
7、第七天:cms系统添加缓存。Redis。缓存同步。
8、第八天:搜索功能的实现。使用solr实现搜索。
9、第九天:商品详情页面的展示。
10、第十天:单点登录系统。Session共享。
11、第十一天:购物车订单系统的实现。
12、第十二天:nginx。反向代理工具。
13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。
14、项目总结。
! A& O; \8 t) B* S; i2 t( j7 y
+ x4 O! ~ ?. v; G+ u! G5 \功能描述
$ U" F: d% X, A' M& u后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
* c4 j; k, ^1 N" G
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
% n+ g/ ]8 t2 ?/ R b9 }
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
$ Z9 ?! z1 J5 ]! t5 q订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
$ H8 k/ J6 Y, @' D' R
搜索系统:提供商品的搜索功能。
! z( r/ I5 f" l9 x3 c
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
6 L H2 L1 b, a7 v% { E
# \# ]5 Q, q' x( N) z思考:有什么问题?
- Q- z. n) { A2 o- u1、 模块之间耦合度太高,其中一个升级其他都得升级
. t4 s5 ^. v; l+ @ _' X
2、 开发困难,各个团队开发最后都要整合一起
4 B! `2 ~7 P+ {' ~
3、 系统的扩展性差
0 h0 Y* T. F% g
4、 不能灵活的进行分布式部署。
- h2 a' R2 A8 `: i, S! g
& O* e/ m0 B8 d8 Z- y9 J# u8 {
解决方法:
+ \/ z- q9 w- T# P2 K0 |$ _1 }
优点:
5 O3 |8 R% |0 O# n9 ^/ X' N+ l
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
, u5 J8 L0 E& g8 R2 W4 k
缺点:
; q) ^8 ^" m4 d7 i' a# L3 g' U+ \系统之间交互需要额外的工作量来进行接口的开发。
7 L3 g4 Q! n! e7 K$ l& q b4 A
& y( b& R8 j# N把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
/ c& Y# `, U4 a( ~( }: D+ }4 P: b1 ]" V- \, t
分布式的架构
4 }- H9 u! `1 j4 n/ f. r, d
! [6 x* z* I# y* I0 U, A
: |. `3 n# p6 M5 k4 Z5 ^; O2 ]
" y, \: U" s# x分布式架构5 g2 _2 @4 S" l h, Y
把系统按照模块拆分成多个子系统。
' f9 O+ ?7 f3 a6 x' \$ I
优点:
9 V; a% f- i7 b3 U9 u& _! h1、把模块拆分,使用接口通信,降低模块之间的耦合度。
3 n, t- }2 ]7 f6 J8 v; Y2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
/ m- S) y- ?- K3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
5 Y. x3 R) ]- A) W$ D
4、可以灵活的进行分布式部署。
: z8 \) A1 W! W4 U/ ^
X% V! {- x1 j& W: K缺点:
9 t# X" t! M8 j% ^" [# t. F
系统之间交互需要使用远程通信,接口开发增加工作量。
- _( o4 A2 K. O1 v3 t
. Q7 y& _" X6 Y: H技术选型(主要技术)
9 O! t( D& F$ |8 |5 ~9 K5 M. z" P' |l
spring、SpringMVC、Mybatis
- y- f, N5 [& T$ E5 U
l JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
2 y9 U3 v" _3 r$ T+ O3 H* I
l Redis(缓存服务器)
$ c* }" G, e# I9 K4 h1 H0 zl Solr(搜索)
# l: D w0 c. j9 d h
l httpclient(调用系统服务)
" ^! F- \* A6 M, h! Hl MySQL
2 f2 x0 M* I2 E4 P1 _9 T
l Nginx(web服务器)
/ s) o$ l( z2 o: h9 h1.1.2 开发工具和环境5 C7 G# ?* O2 u4 l7 E& S( R
Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。' B& ^4 j' m. g, g
Maven 3.3.3(开发工具自带): W* R6 e S, K3 Z- T B, s; n. }/ ?* e
Tomcat 7.0.53(Maven Tomcat Plugin)
, J) M5 ]% v, t9 E7 cJDK 1.7
+ K2 k Q7 C8 e$ ~Mysql 5.6! A& L& B/ |+ w V4 E+ Z2 _$ U" z
Nginx 1.8.0; H$ j- l( y5 C$ ~
Redis 3.0.07 o3 |6 C" o( S- n
Win7 操作系统( J: r6 P* [( e- V- y' k
SVN(版本管理)
T# a' v; Z' P( F# X1 j3 `1.1 人员配置
( x6 A' q. E7 A6 V' E产品经理:3人,确定需求以及给出产品原型图。6 k) `$ G/ @) w& h/ }
项目经理:1人,项目管理。- ^: h1 E' c4 o
前端团队:5人,根据产品经理给出的原型制作静态页面。
* E% H* \5 h$ Y# `后端团队:20人,实现产品功能。4 ?/ G3 _" S9 O; U+ P- I2 G
测试团队:5人,测试所有的功能。8 m! O9 B- c% @
运维团队:3人,项目的发布以及维护。9 z6 l( N6 ]$ E ^4 N, g
3 v* w \: a4 p' w2 O3 w
2 后台管理系统工程搭建" y( {* G+ s. l2 s; ?% O1 H, K7 G1 \
2.1 Maven+ a+ B) w# `2 d N1 g$ X
1、依赖管理、jar包、工程之间的依赖。$ j5 n8 r) `1 C9 {% g
2、项目构建。实现项目的一步构建。' w9 B/ q4 q4 N5 V
3、工程聚合、继承、依赖。
2 B# [0 Y$ P; Z4 ]6 T, a" f$ N+ J" F6 G ?7 P3 J5 Q: f, L
2.2 Maven的工程类型:+ c0 A ^" U. r, I( f8 i8 @1 K0 U
1、war包工程0 ]- ^1 l$ P1 s7 K; X1 q! ]
2、Jar包工程
' L7 O8 O, R, a6 O5 K, ?3 J- h, u3、Pom工程。+ P& T! d1 E/ C6 K' b# ~0 |
% k1 Q' {4 o/ G. Y9 r
) e2 I; h/ y( X( y5 w: b5 `. E! }* N