Go语言实战抽奖系统(完整版)-2018年

  [复制链接]
查看14113 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg ( m1 Z/ f9 }: G) }
〖课程介绍〗
+ W2 B8 z2 I" Z' ~+ u) ]+ I6 d抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平2 r* |! Z5 I" V+ C7 ]' E3 J
8 h. t" j8 r* B% F5 p1 T
〖课程目录〗
% c7 h/ Y$ P1 e! }$ z6 l第1章 课程介绍【预备,初识】
6 g* o2 J: J+ Y* v3 p课程内容的整体介绍以及学习建议。' @& B2 ]0 t. Z& f
1-1 Go抽奖系统导学 试看* `) ?6 N: g( l# ^8 D+ q( ?

6 H) n8 e" Q' o第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】) L0 R% C) C1 e( X0 ?! x8 _% g
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
1 i5 {1 ?/ {% c8 P9 n, X: \2-1 年会抽奖_实现分析
6 i) ?4 b' \# A  ^. F2-2 年会抽奖基本功能实现0 f7 P& a3 ~; N! U% k( x4 ?
2-3 编写web单元测试和并发安全问题
# K9 n5 x$ y" ~  y# p1 i2-4 用互斥锁解决并发安全问题
' q9 L1 d8 G. p; D$ J7 l+ _2-5 彩票_实现分析9 N, ]1 I$ h( a; r0 F
2-6 刮刮乐和双色球 试看/ ?2 N# R9 [$ o; ~7 j
2-7 微信摇一摇_实现分析" b: B- Y5 E, O: s$ h6 S  o
2-8 微信摇一摇实现(上)
# X- J% ?' Y: {2-9 微信摇一摇实现(下)
8 A' u, V# P, }# q3 S9 s2-10 bug修复和压测1 e" @% G0 C3 F) u! z
2-11 支付宝集福卡_实现分析
6 i' h/ v5 {4 D; e, g6 c: q2-12 支付宝集福卡实现
/ w& x9 a7 q6 G9 U* b0 w2-13 微博抢红包_实现分析
) e, w5 c1 A' W2-14 实现发红包
5 \; S+ `3 Y2 ~2-15 实现抢红包$ a+ `' k8 w# c) K; C. H
2-16 均衡问题和sync.Map解决异常
5 s- |2 B6 G3 Z4 G1 _5 P* z2-17 改用chan的方式解决并发安全问题7 S+ n! C3 c* g1 C; T: t1 i$ P
2-18 再次压测验证和优化改造
9 l3 Z: P8 Q/ ~! g: h  w  |0 m0 w2-19 抽奖大转盘_实现分析9 x- N. {+ S) z( j6 G" f3 j) ~
2-20 抽奖大转盘初步实现
) h8 b: [, F9 x. t( n0 \$ t2-21 sync.Mutex和atomic改造性能对比
  [/ Y8 l6 M4 }$ c; v# z2-22 六种抽奖活动总结
3 E0 K5 @( H* y# ?! y2-23 并发编程与锁的底层原理& w" R( V3 D/ c
2-24 高并发和高性能系统中锁的影响与解决办法
( g/ g- y9 Q* Z0 F2-25 阶段任务
- \0 f( r/ T- D8 f8 e2 H
' o4 N  m' k7 N: L  S第3章 系统设计和架构设计【扩胸运动,有容乃大】
7 v$ f& o  ^5 y2 n0 y: S本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。7 u$ P' v8 L5 ?. W' n
3-1 需求整理和提炼  g0 d# R& u3 E. I3 ~
3-2 用户操作和业务流程; @9 p+ D( x& D6 t' ^) q. ]
3-3 数据库设计0 U3 `. t: W( X
3-4 缓存设计 试看
/ \$ l3 o( E: e3-5 系统架构设计! X: B( p; ?! g  L! r$ q
3-6 系统设计和架构设计总结" k0 k8 @: C' d( G" N5 q
3-7 高性能程序设计,缓存为王0 D7 b/ q8 C" x  F
3-8 系统架构升级之道,关注关键服务依赖/ W: [: W" X2 n: m( q6 f; p
3-9 阶段任务0 h+ \$ X; Z2 @
  |5 l0 m( p/ Y  ]( s' Z, O
第4章 项目框架与核心代码【踢腿运动,固若磐石】
; {7 K! {) ]; l. k5 ?2 G本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。, j9 E+ J* N) ~9 y
4-1 项目框架搭建
9 f; g: h) p3 W$ Z9 Z2 k7 \4-2 数据模型的生成
1 r, M+ `8 F/ }4-3 核心的dao和service类  A$ t* N- }2 D8 E
4-4 定义dao
% h% ?) D8 l) p3 A4-5 定义service+ l8 @, q/ J# ?
4-6 定义数据库和redis配置信息
7 {; v3 G/ J# C4-7 创建数据库实例及其要点
1 r3 a' }, e& w- Z  B& y# @4-8 创建redis实例及其要点5 e) r" r0 E, x, w5 v/ Q4 B. ~
4-9 利用iris建立web站点- k: D9 u5 ~" q+ L
4-10 项目配置和通用方法8 u, @1 O" {1 i; l
4-11 web站点初始化构建, @6 ]$ p8 \0 U0 m( q& Z9 X# g7 ~
4-12 实现IndexController
* c3 v* A7 m. X% G. N5 L0 J4-13 完善路由和main.go文件
3 m) [7 j7 a8 p8 ~4 R7 c2 p4-14 登录和退出:安全值校验和防篡改9 y- Z0 s* ?) {/ O
  H4 d( [: e7 N4 n: h
第5章 后台功能开发【体侧运动,运筹帷幄】
# L1 E) D+ c0 _0 T一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
! e" y* W7 h6 `; d$ i8 C5-1 后台功能开发介绍* n( x9 a" D' M- E% d- W0 j
5-2 页面模板和AdminController: r+ j7 A$ n' I' }. T! m) r  R9 \
5-3 奖品管理实现(上)
' P8 y8 ~) W0 q: \6 `" C- ~5-4 奖品管理实现(中)
& A( ^1 `- W! \3 J& ~. L6 U5-5 奖品管理实现(下)
8 I! Z6 H% m# d9 [5-6 优惠券管理实现(上)7 {6 s: w" U* }2 H2 C" I6 P- r
5-7 优惠券管理实现(下)
! _* O; {& m! _; y7 a" g  G0 H5-8 中奖记录管理
; S  F/ {1 S# K$ `5-9 用户管理" ^' P4 m, U- M# Z
5-10 IP黑名单管理
) D$ j! y# [! i9 t3 [* g) y
) J8 K, @+ R0 K第6章 基于mysql的抽奖功能开发【体转运动,基础版本】
$ R% S, A1 U0 a; {7 ?本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
% v- T% n9 h; U& L9 ~4 P- m6-1 抽奖接口开发细节分析/ N% ~2 _( h/ t7 p2 S0 H
6-2 用户并发操作的锁& A9 g" D$ |1 T7 @# I: |
6-3 验证用户、IP今日参与次数(上)
% Y  i5 ?8 ^& H0 E% `5 Q6-4 验证用户、IP今日参与次数(下)
7 G. P. D* T, `6-5 用户、IP黑名单的处理
  c' x- I4 k: T* J6-6 抽奖的实现
1 h. ?+ e6 v1 `- E) G- l6-7 发奖的实现; h/ A0 F& t1 r) v4 x" l( y
6-8 中奖记录和返回结果
1 m' |/ e" Q8 P! J, t* |$ I& s$ ~3 U# R0 h& u: u( \  z
第7章 使用redis缓存优化【全身运动,升级版本】, y; h  l! d8 Z' m; X: r
本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。
+ @$ r, x+ Z$ {7-1 分析_奖品数据全量缓存
& l  d; ]/ z7 V5 [- \. W0 v! u7-2 实现_奖品数据全量缓存(上), {4 \; }3 Y0 p6 G/ L
7-3 实现_奖品数据全量缓存(下)% b, n( w; m- U  p6 W) W) {4 C( Y
7-4 分析_单个用户数据部分缓存
0 e' d7 x# n# a3 d. C+ d" P! a7-5 实现_单个用户数据部分缓存
# E9 z( D! v2 b7-6 分析_IP黑名单数据缓存. c( C# V8 w0 `: T8 y
7-7 实现_IP黑名单数据缓存' q8 d' W; F, ^. S6 R% G, n
7-8 优化IP今日抽奖次数3 j/ ?4 w" f- ?& E/ ?% \
7-9 优化用户今日抽奖次数; _9 p3 C* I% T1 Z5 R2 G  s: U# s
7-10 用户今日抽奖次数(上)1 `8 G' W+ b4 o6 I0 r! f8 e
7-11 用户今日抽奖次数(下)
' L# b" p/ j$ R: ~7-12 为什么使用奖品池! b& n  C: T: l$ g5 K# T
7-13 初步使用奖品池
( F# E8 S' z- o* ?! W; V7-14 分析_优惠券的全量缓存( V& I5 h) D0 A! c
7-15 实现_优惠券的全量缓存(上)
( o/ v4 T1 d3 }) T2 p7-16 实现_优惠券的全量缓存(下)( v/ z+ |! P, G, s4 l
7-17 使用redis优化总结% ]7 J9 Y0 l# O! F( Q
4 X9 T; r9 t. F/ q& f
第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】
' D: B- A, ?5 ~; R8 q0 P3 S5 R+ Q本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
' i+ `6 a+ |& e$ a6 G+ S8-1 发奖计划设计分析& e" o9 l" D% t7 A
8-2 实现发奖计划(上); y: t! k# y7 Q' O* `$ `
8-3 实现发奖计划(中)
+ r# F& O) P* [" b2 `7 N8-4 实现发奖计划(下)
; T0 n3 {' Y7 y( i5 W7 w8-5 自动填充奖品池分析3 \' {+ H3 ]& S" G! K" W1 {
8-6 实现奖品池(上)
1 I; B6 d# ?; E. l- r6 T. }8 W% v8-7 实现奖品池(下)9 Y' N* P6 Q  i% S8 {1 d- V
8-8 总结发奖计划和奖品池
6 ^, W. b' a5 z, T7 T, F+ t. y
% ?: Z3 X5 c& O0 p' v第9章 完整性演示以及更多总结【整理运动,整体交付】
$ _1 K- g. I; }: K" H5 r实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
, F' d# Y/ s, O9-1 前端大转盘分析
4 D/ l' v* b: K8 U" x$ [8 `0 q9-2 前端大转盘效果实现
+ ^: j  n& c% q- Y9-3 优化奖品设置分析8 V! B2 I! }- W& U7 d; ]
9-4 优化发放奖品分析
) \7 q0 g0 W- k+ }  d+ C8 c9-5 再来一次压力测试吧2 r# ^2 {2 x% l
9-6 压力测试$ I& [0 \# A& K% L1 `& D' X
9-7 更多运营策略- x  w. l) X  J7 D7 B) z, f

, z0 N: T$ d5 J, K1 Z' b第10章 引入thrift框架【附加运动,扩展服务】
: b6 }* N% g0 Q& R  n. Z通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
4 I/ G& p0 c: Q" X$ y1 ?10-1 了解thrift5 u5 v9 g3 l) _0 O0 h4 ?4 x
10-2 定义thrift文件
' Z: [: s- Y9 ?; o10-3 生成代码) G2 H. [/ b! U0 X* _) E7 [4 P; y; M8 w
10-4 服务端接口(上)
- K5 Z& b0 h/ @# i/ V% B$ D" u' A10-5 服务端接口(中)
/ m0 f" I' }& r+ ], I9 c6 Q6 h10-6 服务端接口(下)
. z- |, q2 F- ]" \" D10-7 客户端接口. O6 A( P8 e/ g0 q1 b
10-8 总结8 T7 w, D7 d7 m. l( F7 z3 {/ p
7 C* r9 ^& r/ L! O: r
第11章 课程总结【结束,沉淀】
+ ~. k6 V6 P2 ]3 Q4 G, {对课程进行总结
+ S1 L- J' {0 Q  L11-1 问题与思考
2 {2 R; u0 _8 W+ e) _: J5 J11-2 课程总结. R: Q# `4 Y7 J, m0 F
* N" p+ y/ K3 d3 M
〖下载地址〗- o1 h- h9 |, M2 `
游客,如果您要查看本帖隐藏内容请回复
3 J% \  q# m- t" {1 \) o' Q/ m
( r3 H. y" [. X$ j

% \" l, k+ \. D6 Z
回复

使用道具 举报

admin123 | 2019-6-27 09:21:59 | 显示全部楼层
gogogogogo
回复

使用道具 举报

junjun2712 | 2019-6-28 19:19:34 | 显示全部楼层
hao dong xi !!!!!
回复

使用道具 举报

test20190703 | 2019-7-3 09:35:54 | 显示全部楼层
回复

使用道具 举报

萌码象 | 2019-7-3 10:19:29 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

pehut | 2019-7-5 01:33:50 | 显示全部楼层
你这个是可以在线看的吗
回复

使用道具 举报

6523440@qq.com | 2019-7-5 10:34:38 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

fengzi | 2019-7-6 00:04:31 | 显示全部楼层
pehut 发表于 2019-7-5 01:33
. z+ D6 c8 H) S! \' d你这个是可以在线看的吗

. l& @! a& V2 k. ?7 C7 z5 m9 B可以的- B* W* I8 Y. {+ J+ G$ {" W
回复

使用道具 举报

guoke0826 | 2019-7-12 12:30:07 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

xxz | 2019-7-13 08:30:27 来自手机 | 显示全部楼层
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则