Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2108,7 +2108,7 @@ function getBarBigMarket() {
sidebarDepth: 0,
children: [
"big-market.md",
"extra/big-market-try-it-out.md",
"notes.md",
]
},
{
Expand Down
88 changes: 54 additions & 34 deletions docs/md/project/big-market/big-market.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,11 @@ lock: no

## 一、能学到啥

在各大互联网公司中,营销平台都是那个流量最大,场景最复杂的系统,也是需求迭代最多还最快系统。在这个部门的研发伙伴,谁身上都是背着“几个事故”锻炼出来的技术。所以,跟着小傅哥学习这样一套系统,是可以学习到非常多的技术。包括;
在各大互联网公司中,营销平台都是那个流量最大,场景最复杂的系统,也是需求迭代最多还最快系统。在这个部门的研发伙伴,谁身上都是背着“几个事故”锻炼出来的技术。所以,跟着小傅哥学习这样一套系统,是可以学习到非常多的技术。包括;—— `以往的学习,你可能有很多技术栈使用的缺失,甚至也没接触过有高质量的架构和设计模式编码。那么在折腾学习旅程中,这些内容你都将学到。`

<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-try-it-out-02.png" width="850px">
</div>

- 【前端】熟练使用 React、Typescript 在前端工程中开发营销活动页。
- 【前端】熟练掌握,跨域接口请求,以及通过浏览器指纹技术实现防刷。
Expand All @@ -56,64 +60,82 @@ lock: no

此外,小傅哥会把系统开发过程中的思考、设计、编码,录制⏺成完整的视频,让大家可以学习到的更多、更细、更深!

>像这样的营销复杂场景项目,势必会引入相关分布式技术栈的使用。并且营销会根据业务流程拆解出对应的微服务系统,包括;券、活动、拉新、抽奖、积分、兑换、灌券、返利等各个平台,这些微服务间通过 RPC 进行通信。又使用 MQ 解耦、任务补偿,以确保微服务内事务一致性,微服务外最终一致性。

## 二、项目介绍

本次项目是一个包括 `前后端 + Dev-Ops` 的全栈式综合编程实战项目,基于 React + SpringBoot + 分布式技术栈 + Nginx + Grafana + Docker 云服务,开发、部署、上线、监控的《大营销平台系统》项目。

### 1. 核心流程
大营销平台项目属于营销组最为核心的项目,承接流量最大、系统设计最复杂、需求迭代最多,也是最容易出事故的组。🤨**在这个组1年的技术成长 = 其他组3年!**

营销组的项目是最早触达用户的,打开页面、优惠选券、组合支付、积分活动、分享收益、拉新返现等,都是先进入营销系统,完成相关的动作才是商品的选择和支付。你几乎能在购物、出行、金融、音视频娱乐中,都有对应的营销玩法活动。所以这块系统`流量最大`、`需求最多`、`功能最复杂`!—— **每个公司都有营销组在加班!💐**

抖音、京东、滴滴、拼多多,都有这样的项目;

<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-03.png" width="750px">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-try-it-out-01.png" width="400px">
</div>

### 2. 项目工程
虽然需求杂,需求多,但这样部门组里的项目是非常锻炼人的。所以小傅哥这次也开启了一个 **《大营销平台项目》** 带着你一起学习复杂的场景架构设计和高级编码落地经验。完全从0到1,手把手的带着你思考、设计、编码,完成项目!


### 1. 业务核心流程

<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-05.png" width="750px">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-03.png" width="750px">
</div>

### 3. 业务监控 - 监控示例

### 2. 模型设计高质量

<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-04.png" width="750px">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-try-it-out-03.png" width="850px">
</div>

- 目前是 OpenAi 业务系统监控,大营销平台系统上线后,会把这部分监控一起添加上。
- 项目,只有上线 。你才会注意到很多的细节,就像 Tomcat 的最大连接数,如果不开发超时熔断,在接口异常超时等待的情况,就有可能把连接数打满。
### 3. 系统工程规范化

## 三、项目大纲
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-05-03.png?raw=true" width="850px">
</div>

### 4. 单一职责抽象化

不同于网上的小Demo项目,这个项目的场景来自于互联网真实业务需求,一个个章节、一步步流程的带着大家从0到1,需求分析、工程设计和代码实现。是一个纯手把手教大家学习实战技术的项目! 大纲会分为5个部分,以需求驱动,讲解功能实现。
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-06-01.png?raw=true" width="850px">
</div>

- 第1部分:需求文档
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-06-03.png?raw=true" width="850px">
</div>

- 第1节:营销场景的需求设计
- 第2节:
### 5. 设计模式场景化

- 第2部分:开发运维
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-08-02.png?raw=true" width="850px">
</div>

- 第1节:使用脚手架创建工程
- 第2节:创建仓库提交代码
- 第3节:
### 6. 项目工程列表

- 第3部分:营销服务
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-05.png" width="750px">
</div>

- 第1节:模块化工程搭建
- 第2节:营销账户设计
- 第3节:返利服务设计
- 第4节:
### 7. 业务监控示例

- 第4部分:前端页面
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-01-04.png" width="750px">
</div>

- 第1节:在 OpenAi 项目中,开发抽奖页面。调用Lottery服务
- 第2节:
- 目前是 OpenAi 业务系统监控,大营销平台系统上线后,会把这部分监控一起添加上
- 项目,只有上线 。你才会注意到很多的细节,就像 Tomcat 的最大连接数,如果不开发超时熔断,在接口异常超时等待的情况,就有可能把连接数打满。

- 第5部分:后台管理
## 三、项目大纲

- 第1节:配置抽奖活动管理
- 第2节:
不同于网上的小Demo项目,这个项目的场景来自于互联网真实业务需求,一个个章节、一步步流程的带着大家从0到1,需求分析、工程设计和代码实现。是一个纯手把手教大家学习实战技术的项目!

---
<div align="center">
<img src="https://bugstack.cn/images/article/project/big-market/big-market-try-it-out-05.png" width="850px">
</div>

课程包括;视频、小册、1 对 1 答疑解惑、专属VIP项目交流群,并且提供简历编写模板结构的一条龙🐲服务。让你学习后,直接拉开与还在玩具项目其他人的差距,面试脱颖而出提高竞争力!!!

Expand All @@ -123,9 +145,7 @@ lock: no

如果大家希望通过做有价值的编程项目,提高自己的编程思维和编码能力,可以加入小傅哥的【星球:码农会锁】。加入后解锁🔓所有往期项目,还可以学习后续新开发的项目。

>这样一套项目,放在一些平台售卖,一个至少都是几百块。但小傅哥的星球,只需要100多,就可以获得全部的学习项目!

>[🧧加入学习](https://bugstack.cn/md/zsxq/other/join.html)
>这样一套项目,放在一些平台售卖,一个至少都是几百上千。但小傅哥的星球,只需要100多,就可以获得全部的学习项目 [https://gaga.plus](https://gaga.plus)!

**加入星球**:下载`星球APP`,从星球【课程入口】进入。里面有完整的学习指引,包括;使用说明、代码仓库、专属项目群、学习路线、往期项目。
[🧧加入学习](https://bugstack.cn/md/zsxq/other/join.html) **加入星球**:下载`星球APP`,从星球【课程入口】进入。里面有完整的学习指引,包括;使用说明、代码仓库、专属项目群、学习路线、往期项目。

36 changes: 36 additions & 0 deletions docs/md/project/big-market/notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: 面试:技能、简历、问题汇总
lock: no
---

# 《大营销平台系统》,关于面试中的技能、简历、问题汇总

作者:小傅哥
<br/>博客:[https://bugstack.cn](https://bugstack.cn)
<br/>课程:[https://t.zsxq.com/17gswKIeX](https://t.zsxq.com/17gswKIeX)

>沉淀、分享、成长,让自己和他人都能有所收获!😄

此部分主要用于向读者提供星球项目之一的《大营销平台系统》项目如何体现到简历中,包括;专业技能、项目经验。

## 一、项目介绍

面试官您好,大营销平台的 Raffle 抽奖模块,是我独立负责实现的一个(学习/工作)项目,此项目模块在架构设计上运用了 DDD 分层架构和模板模式、责任链模式、组合模式、工厂模式等,这样的设计模式对业务流程进行解耦和实现。

Raffle 抽奖模块的完整开发,让我对 SpringBoot 框架技术,分布式技术栈的运用更加熟练,也把设计模式在实际场景的使用了起来,积累了丰富的设计实现经验。这写技术学习的内容,也可以更好的应对以后的开发工作。非常感谢您给我这次面试机会。

## 二、项目经验

- 项目名称:大营销平台 - Raffle 抽奖服务
- 项目架构:微服务架构、DDD 领域驱动模型设计
- 核心技术:SpringBoot、MyBatis、MySQL、Redis、React、TypeScript
- 项目描述:Raffle 抽奖模块是整个大营销平台系统中非常重要的一个模块,也是本次项目中我来负责的设计和实现的模块。此模块主要以支撑各类差异化抽奖流程,如;通用抽奖、黑名单、人群、N消耗积分指定抽奖范围、抽奖N次解锁奖品等各类玩法的支持。在此系统模块的设计中运用到了模板模式、责任链模式、组合模式、工厂模式,解决代码的可扩展性,并对抽奖的计算和秒杀做了设计的优化,可以支撑单机 2c4g 服务器 1500 ~ 2000 TPS 的吞吐量。「不同服务器,带宽,以及是否还配置有环境相关,会有不同的数据效果」
- 核心职责:
- 以PRD文档诉求和对功能的评审,设计出抽奖的领域模型功能,以及在抽奖的流程抽象上,分为;抽奖前、抽奖中、抽奖后,的节点上扩展各项行为动作。如抽奖前的人群判断、抽奖中库存扣减、抽奖后兜底奖励等。
- 依赖于领域模型的定义,设计出抽奖库表。抽象抽奖过程为抽奖策略表、策略明细表、规则配置表、规则树动作表,这样会让抽奖更好扩展。
- 设计模板模式定义抽奖流程标准,再在模板模式中,调用责任链完成抽奖,对于抽奖中和后的动作使用组合模式的规则树进行动态处理【支持库表配置】。
- 在项目架构中定义统一标准的 api 由触发器层实现,在触发器层定义监听、任务、http、rpc模块,所有的行为动作,都理解为触发行为。
- 抽奖也是一种峰值流量高的业务场景,因此在设计奖品库存扣减上,采用了 Redis decr 分段消费和加锁兜底的设计,同时对于消费成功的库存,异步队列方式 + 定时任务更新库存。这样可以不超卖的同时,又减少数据库的压力。
- 在项目开发中熟练运用了 IntelliJ IDEA、WEbStorm、Docker、MySQL、云服务器、SSH工具,并已将项目完整部署到线上【在校伙伴可以提供线上案例版】。