漫潮者,私有云,NAS,新媒体电商.软件开发,商乾
标题:
Go语言实战抽奖系统 (前9章)
[打印本页]
作者:
崔娜娜
时间:
2018-12-17 14:05
标题:
Go语言实战抽奖系统 (前9章)
第1章 课程介绍
% J5 z2 G7 I) [% p# C
课程内容的整体介绍以及学习建议。
; C2 {8 `, T+ I' ?
1-1 Go抽奖系统导学
" ^# f L+ D$ {
第2章 6种抽奖活动来一遍
8 D0 p% y! h& j- g7 o' B) F
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
+ S% m" P1 X1 {$ j
2-1 年会抽奖_实现分析
* B9 ]7 S; Z- V' ^: n' I5 Q1 ~9 |
2-2 年会抽奖基本功能实现
( L9 W6 s& L" Q M- o5 Z
2-3 编写web单元测试和并发安全问题
! R. N! W. h$ H$ q, x+ |$ P5 O
2-4 用互斥锁解决并发安全问题
8 P7 N: ]' W3 @/ w& o- }9 A
2-5 彩票_实现分析
5 f: m! s# t- u3 z6 I1 q, u3 B3 I
2-6 刮刮乐和双色球
. J& A9 I; |, @1 V2 r5 }7 [9 d4 o
2-7 微信摇一摇_实现分析
5 \, I3 ~ `- }0 z
2-8 微信摇一摇实现(上)
/ y* {% {' ^. }8 g5 @( z8 D3 l
2-9 微信摇一摇实现(下)
9 Y2 @# R: E8 K' ~. x1 L
2-10 bug修复和压测
: {7 L9 \3 b8 o i' ]4 t
2-11 支付宝集福卡_实现分析
) O, Z) p/ t# U- ]% _0 h
2-12 支付宝集福卡实现
7 w F% G1 @" E1 r* p0 w
2-13 微博抢红包_实现分析
# s6 i# v# Z# x- X" W+ {# d% z
2-14 实现发红包
- Z2 d1 c6 Z4 \0 E% ]8 g& u. }& `
2-15 实现抢红包
: P8 p+ T& r8 Q, Z2 i0 u0 g
2-16 均衡问题和sync.Map解决异常
d" i4 K& p9 ~. _( F) p& V
2-17 改用chan的方式解决并发安全问题
. H3 h7 E3 x- E# L( [/ c! ^0 u
2-18 再次压测验证和优化改造
; V" w0 T3 r5 m1 e
2-19 抽奖大转盘_实现分析
1 x5 U @' T( T) V( E
2-20 抽奖大转盘初步实现
* ?& o0 G+ T# U4 }' N$ q; E2 ^/ X
2-21 sync.Mutex和atomic改造性能对比
2 W1 }0 F' d1 @ a, r- ^! | R
2-22 六种抽奖活动总结
: Q2 f4 K6 d. Q7 L0 j# x4 h3 `; {
第3章 系统设计和架构设计
2 D7 H$ p. f; a( V% f% k
本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。
6 i4 l. H1 y% _9 V. ^$ e/ F5 u
3-1 需求整理和提炼
% d! [/ D* E6 l+ i. j( J# J# ?! Y
3-2 用户操作和业务流程
: z5 `; Q+ N. K3 c: ?
3-3 数据库设计
% G* O0 b$ y) q7 o' w
3-4 缓存设计
* l: o$ B7 {" G
3-5 系统架构设计
7 h" r& Q1 L! M
3-6 系统设计和架构设计总结
1 t/ z+ R/ V" S! F
第4章 项目框架与核心代码
4 x( O2 d% s4 d# [7 h- {* r$ @
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。
% N! O1 g& |; N0 [) p
4-1 项目框架搭建
u6 t5 k/ ` N b" H& K
4-2 数据模型的生成
/ E0 @* N+ P, T+ |" a
4-3 核心的dao和service类
. K+ B/ V V, U6 Y
4-4 定义dao
+ I w0 i+ d& |) {+ @
4-5 定义service
" ]8 v3 b& r' `1 i
4-6 定义数据库和redis配置信息
0 A2 r0 |8 K8 \2 E" W m7 V8 M* N
4-7 创建数据库实例及其要点
0 D$ k6 P4 c3 D# o( F8 y; e5 i
4-8 创建redis实例及其要点
2 C Y; H& l: n1 e9 y( ?: g
4-9 利用iris建立web站点
5 u c/ f" X+ D2 t2 D& l
4-10 项目配置和通用方法
0 G$ k# z$ N4 u) z& t$ Y+ p
4-11 web站点初始化构建
' e# S" D C+ p, [( p9 A6 S* Q
4-12 实现IndexController
4 `- S( q4 w& q6 f+ ^+ D; j
4-13 完善路由和main.go文件
% a: M! X, ]2 F+ k) a7 Z9 W
4-14 登录和退出:安全值校验和防篡改
: _7 P3 \ c- ^! [3 i9 A
第5章 后台功能开发
) h; b; }6 s3 r: }0 q
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
$ f! u+ q! R7 v" ?
5-1 后台功能开发介绍
( u5 Z! n) |4 [+ o) C
5-2 页面模板和AdminController
" v8 a. {# c T3 T6 i% G5 Q
5-3 奖品管理实现(上)
7 x3 K" M8 S) R8 O
5-4 奖品管理实现(中)
# a- X% f) v( e. n3 @+ \4 a* c
5-5 奖品管理实现(下)
+ J' X1 P% j- ^! J# v* T
5-6 优惠券管理实现(上)
9 `7 K( d$ A5 o% d' D0 `; f
5-7 优惠券管理实现(下)
" [- k8 H# `6 u
5-8 中奖记录管理
( a. a; Q& J' ] k8 z( \
5-9 用户管理
! M, p- z: s9 X0 {# ?
5-10 IP黑名单管理
) n; [0 D- |* `+ {* J, G
第6章 基于mysql的抽奖功能开发
, y( `9 l* b" z& V
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
2 p% a) B0 y/ n; v
6-1 抽奖接口开发细节分析
7 Z7 y# i* u' H! @! x3 M! Y
6-2 用户并发操作的锁
, B# [4 e) W) l p" B" p, G' O+ P! ?1 L
6-3 验证用户、IP今日参与次数(上)
& D' }+ @' j( S, K
6-4 验证用户、IP今日参与次数(下)
" T: G' Y* E& l2 n$ t
6-5 用户、IP黑名单的处理
! o5 x( t8 n, \ d
6-6 抽奖的实现
0 \( [: T5 U @3 E7 O
6-7 发奖的实现
) }' x+ H Y. c$ O( a- W. S' l' T
6-8 中奖记录和返回结果
8 u1 z) D! {- O- b" N; {! f* ^) [, @
第7章 使用redis缓存优化
( W0 e( Z: u- _+ k7 ? \, j% {
本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。
, `/ @+ i" f) I1 f; Y
7-1 分析_奖品数据全量缓存
# z5 C2 H1 N4 ]4 C% R0 I: ?1 ~, M
7-2 实现_奖品数据全量缓存(上)
$ C; u- ?* n1 s1 l2 z
7-3 实现_奖品数据全量缓存(下)
* d& j9 L! v' H9 L9 K
7-4 分析_单个用户数据部分缓存
/ C5 J7 [9 m' z, [8 C6 B# {
7-5 实现_单个用户数据部分缓存
9 k& x @6 B) O& g4 `' I
7-6 分析_IP黑名单数据缓存
- H( J9 u& n0 H! n& w
7-7 实现_IP黑名单数据缓存
+ v0 E. ^5 G! a+ j
7-8 优化IP今日抽奖次数
" P5 i; F7 O2 j: K! @) s
7-9 优化用户今日抽奖次数
( |0 M: M7 }5 n, ?9 ]0 }
7-10 用户今日抽奖次数(上)
' w& ~: e9 [/ Y! w; W
7-11 用户今日抽奖次数(下)
1 x- t6 _; ~( _( H$ R, n
7-12 为什么要使用奖品池
9 ]- |9 T6 H2 V% s6 I M) J# P! X
7-13 初步使用奖品池
' x9 `9 q" ^6 O& @3 ]
7-14 分析_优惠券的全量缓存
: J4 t- `: J4 U4 U8 g5 e/ h6 ?: o
7-15 实现_优惠券的全量缓存(上)
# i/ H8 o* ^; K/ u
7-16 实现_优惠券的全量缓存(下)
) ]3 M4 g' ], L
7-17 使用redis优化总结
! P3 b- i0 s8 N* f5 i/ s
第8章 奖品池以及发奖计划的实现
- d3 m7 [6 [6 E6 Y
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
e' D. f3 |3 ^
8-1 发奖计划设计分析
4 u! Z0 `6 |; C' n
8-2 实现发奖计划(上)
/ z+ X- J( M: h6 d+ J
8-3 实现发奖计划(中)
- R4 t$ D% T3 k
8-4 实现发奖计划(下)
6 m0 _9 g0 L' o$ _ t% v
8-5 自动填充奖品池分析
) ?( W9 j2 D) i% ]
8-6 实现奖品池(上)
h- h$ h% r7 z) }- A9 k
8-7 实现奖品池(下)
& k$ ~7 b0 d9 b2 C% k" Q6 U
8-8 总结发奖计划和奖品池
- j$ t# V4 `/ j0 p* i" W5 q+ ^& Y
第9章 完整性演示以及更多总结
% k$ E' }) C4 X
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
, H3 ~5 X4 F9 I& v5 e) Y8 i
9-1 前端大转盘分析
& z% \4 c$ i l. e( P9 `- k: w
9-2 前端大转盘效果实现
& ]$ x# I, T' ]% d) p
9-3 优化奖品设置分析
" ~) n) Z/ k) I4 m) H& Y; Z$ N
9-4 优化发放奖品分析
* E5 v6 S& |3 E0 G% Q$ R
9-5 再来一次压力测试吧
1 e0 g* [" p! n$ g0 {) V
9-6 压力测试
5 B0 n* z% F7 b
9-7 更多运营策略
; u& D# P6 J& _; P
后面课程待更新。。。
/ P3 M6 m: Q v1 z2 D( b# a
0 K. G+ j' ~, s$ q
欢迎光临 漫潮者,私有云,NAS,新媒体电商.软件开发,商乾 (https://www.aurrel.com/)
Powered by Discuz! X3.4