漫潮者,私有云,NAS,新媒体电商.软件开发,商乾
标题:
Go语言实战抽奖系统 (前9章)
[打印本页]
作者:
崔娜娜
时间:
2018-12-17 14:05
标题:
Go语言实战抽奖系统 (前9章)
第1章 课程介绍
; P5 _' E& C8 q+ s' ]4 }% c
课程内容的整体介绍以及学习建议。
, F+ F0 u" N/ Y! R' \8 @& K
1-1 Go抽奖系统导学
/ J- |5 K& n( @: _7 G: w" {+ |+ [
第2章 6种抽奖活动来一遍
7 O" }6 e$ ^; {1 H0 N. |& v8 V
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
7 x t* R+ V4 W& z1 v$ F
2-1 年会抽奖_实现分析
0 C" b" X" Q X1 E; ^! {& [
2-2 年会抽奖基本功能实现
+ S% } E9 P) y, t( C6 V
2-3 编写web单元测试和并发安全问题
+ W& [! D( z8 m# f8 O4 O, m7 {- Q
2-4 用互斥锁解决并发安全问题
% {1 ]8 z' v8 ^
2-5 彩票_实现分析
% b2 J; |& b; p" f
2-6 刮刮乐和双色球
3 L: F" U/ D+ o% g" f& S
2-7 微信摇一摇_实现分析
' p/ W0 C& s% M, C. r/ ?$ h* p
2-8 微信摇一摇实现(上)
8 X7 N2 h% K9 G% i1 T+ O6 i0 l; U
2-9 微信摇一摇实现(下)
1 C5 M* i' B9 D6 K' F
2-10 bug修复和压测
( U. K- ?6 v+ A) K
2-11 支付宝集福卡_实现分析
6 r0 X9 X8 M" n& c
2-12 支付宝集福卡实现
+ S% Y7 q% l3 z/ \: O
2-13 微博抢红包_实现分析
) g p8 v) \3 U. b- f
2-14 实现发红包
9 f/ J4 d! S& G3 P
2-15 实现抢红包
) [1 ^2 Q& T+ \# J
2-16 均衡问题和sync.Map解决异常
6 F& H2 H" t& d) O- n
2-17 改用chan的方式解决并发安全问题
/ G- n- s6 l8 H7 z& y3 t2 D8 z( `
2-18 再次压测验证和优化改造
9 l# F2 n6 Q2 Z8 V" i4 O$ g
2-19 抽奖大转盘_实现分析
0 V) L. h" {& R
2-20 抽奖大转盘初步实现
$ ]5 i' s) H6 ]/ Z, v
2-21 sync.Mutex和atomic改造性能对比
% `+ ?6 a L! n
2-22 六种抽奖活动总结
- q* |# a" d7 Q( K1 ]! s; ]
第3章 系统设计和架构设计
& ]) k+ U$ P! i
本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。
0 J1 a% [' D" N
3-1 需求整理和提炼
8 r7 w! p' ]4 d1 ~) R4 n3 _
3-2 用户操作和业务流程
5 @" p4 G& _, {- F3 v% T8 E/ P
3-3 数据库设计
/ O- w$ C4 L, w1 [) E
3-4 缓存设计
; [% P; ] |* D9 f: P
3-5 系统架构设计
) @. n- a' n7 ^* a! E
3-6 系统设计和架构设计总结
_& j7 U/ S! p5 Z, p2 r
第4章 项目框架与核心代码
( \7 B) y8 Y3 s' v3 c1 H1 G2 n! ~
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。
' U7 \) k6 E7 s2 V/ X& S
4-1 项目框架搭建
. z/ e: u- X/ k; g1 N
4-2 数据模型的生成
4 N' @1 U! J z/ {6 `* q
4-3 核心的dao和service类
7 u' Z( P# G. {, B, f d" C4 Q
4-4 定义dao
9 Q' z3 F* g- J4 o4 [1 ~" ]
4-5 定义service
- g$ g- M& ^- T1 V5 B) e6 k
4-6 定义数据库和redis配置信息
' H8 W( U$ @$ ~" v+ e' K- L
4-7 创建数据库实例及其要点
7 f! R; E" _6 `& q0 z
4-8 创建redis实例及其要点
0 T" E/ g& Y3 u& l
4-9 利用iris建立web站点
/ ~2 r- ^1 _2 I
4-10 项目配置和通用方法
$ F% \4 ~- h, g/ K, g" V7 M
4-11 web站点初始化构建
) x* |4 j3 y' @8 D+ y1 w
4-12 实现IndexController
% s) q" I ~ i5 j1 M6 }5 U& ?
4-13 完善路由和main.go文件
) {% f4 j4 F8 _1 x* O' P
4-14 登录和退出:安全值校验和防篡改
0 W7 G+ _) r- {, j! O
第5章 后台功能开发
+ }6 R& T1 O6 @4 m- M6 Q9 R6 u+ y
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
: ?% }8 X# W6 R6 u& a
5-1 后台功能开发介绍
b0 [( X' b" z7 k8 m
5-2 页面模板和AdminController
+ {, \1 S: c; C V8 K' H# U
5-3 奖品管理实现(上)
: f5 E8 @, w a: G
5-4 奖品管理实现(中)
+ a4 t9 d1 o2 M7 ?4 V7 n! D
5-5 奖品管理实现(下)
) t. a2 O6 r! ?1 p: L9 j+ W1 z
5-6 优惠券管理实现(上)
/ f3 Q7 U- o' s; X) j5 y
5-7 优惠券管理实现(下)
0 D' O) Q0 S; E
5-8 中奖记录管理
; y& `" M& G, @ Z0 h" S
5-9 用户管理
* e' x& \- T" O$ z8 h" M7 C
5-10 IP黑名单管理
/ P/ k( H2 K# ~' S' m9 A
第6章 基于mysql的抽奖功能开发
) g I1 T2 @, y/ s; o* f; f4 w+ U9 b
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
; e! i( p# M, ?6 s8 g% ?
6-1 抽奖接口开发细节分析
( P! b3 \6 |* d4 N2 ]- c& {; |$ z
6-2 用户并发操作的锁
2 o2 x0 x8 d8 h( d# N- c
6-3 验证用户、IP今日参与次数(上)
. W% G5 K% N6 b% F$ e& b; _- T
6-4 验证用户、IP今日参与次数(下)
9 u4 f/ n. S, {! ~" s
6-5 用户、IP黑名单的处理
7 I9 k% T. u" C# D
6-6 抽奖的实现
/ t) w4 O6 O% c. u
6-7 发奖的实现
/ \' _1 g( i' Y2 X/ \. ?' T
6-8 中奖记录和返回结果
# X8 \" i* C# H4 P. m, D
第7章 使用redis缓存优化
" G2 z* d8 z' q
本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。
4 J3 T* ~# y7 h% ]* r
7-1 分析_奖品数据全量缓存
5 {' ?# x/ w9 c$ n5 M* |
7-2 实现_奖品数据全量缓存(上)
! j9 `$ e4 |/ F3 T
7-3 实现_奖品数据全量缓存(下)
8 h5 O. I( _4 j
7-4 分析_单个用户数据部分缓存
1 w, y( W7 X7 p2 t3 M
7-5 实现_单个用户数据部分缓存
. j0 x, v1 Y3 ^3 G2 @9 l. Q9 k
7-6 分析_IP黑名单数据缓存
2 Y/ L8 @$ p2 X/ M" m: @ J
7-7 实现_IP黑名单数据缓存
3 }0 e6 a: w: L# U+ E& T! }
7-8 优化IP今日抽奖次数
" X+ S6 C# }7 n! V
7-9 优化用户今日抽奖次数
/ \4 N0 L3 i. ?& |+ }1 E
7-10 用户今日抽奖次数(上)
/ H# o, p e" w8 C' Z
7-11 用户今日抽奖次数(下)
1 b2 g5 M* o% f" l" d
7-12 为什么要使用奖品池
( j6 \/ J0 `7 y
7-13 初步使用奖品池
; y& p! {5 O, A$ T& i
7-14 分析_优惠券的全量缓存
+ _9 Y f5 L8 v* h' @
7-15 实现_优惠券的全量缓存(上)
+ E! _# U# H. K3 z# S, `1 y7 P
7-16 实现_优惠券的全量缓存(下)
9 Q- i% ]2 K* M1 d
7-17 使用redis优化总结
/ v7 O4 \" w* G# U* o
第8章 奖品池以及发奖计划的实现
: Z1 b) ^+ F9 J8 D7 T) ^
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
. k4 A) G" Z2 p
8-1 发奖计划设计分析
3 `8 M3 X% \, ^7 T" i
8-2 实现发奖计划(上)
& @& ~, r3 `5 q7 R
8-3 实现发奖计划(中)
9 v C- o' B! w+ K% D% w9 K1 h
8-4 实现发奖计划(下)
8 B# c2 R x( [0 B! k
8-5 自动填充奖品池分析
9 q- [; J) Q6 I& \1 ]5 Y
8-6 实现奖品池(上)
4 s8 m l* U% k- U
8-7 实现奖品池(下)
- p k! P3 E5 W" q3 k
8-8 总结发奖计划和奖品池
4 a" {0 S6 D% Q |
第9章 完整性演示以及更多总结
! N9 v; n+ B* I6 J6 u5 ^; c6 O
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
6 X5 D- o+ p I5 J) {5 H! C
9-1 前端大转盘分析
/ e. o& a/ v3 k) }4 i7 S' a
9-2 前端大转盘效果实现
* S: Z2 z; ]6 e$ N2 X; @2 g6 @$ K
9-3 优化奖品设置分析
2 K+ a0 r5 }# V; f2 Z; F2 G
9-4 优化发放奖品分析
2 z1 P8 M2 h1 I
9-5 再来一次压力测试吧
+ {3 \: P: C. h/ g
9-6 压力测试
% N( D0 q ?; N; u$ C" R* F
9-7 更多运营策略
9 r1 V( T% W7 s8 l0 G/ U/ P
后面课程待更新。。。
# i% Z0 v" [. r: |* F. F4 c; K9 g
0 n2 D8 z9 }7 P: D2 Q0 ^
欢迎光临 漫潮者,私有云,NAS,新媒体电商.软件开发,商乾 (https://www.aurrel.com/)
Powered by Discuz! X3.4