技术挑战与决定

复杂得超出想象

老王继续介绍他们的业务场景,我意识到通知系统比想象中复杂多了。

通知类型:

  • 评论通知:有人评论了你的动态
  • 点赞通知:有人点赞了你的内容
  • 关注通知:有人关注了你
  • 系统通知:平台活动、促销信息
  • 私信通知:收到私信

推送渠道:

  • iOS:通过 APNs(Apple Push Notification service)
  • 安卓:国内用不了 Google 的 FCM,需要接各家厂商推送(小米、华为、OPPO、vivo)
  • 站内信:App 内部的消息中心
  • 可选:短信、邮件

多端同步:用户可能同时登录手机、平板、电脑。怎么保证同步?已读状态怎么处理?

问题一个接一个。这不是一个简单的功能,而是一个完整的系统设计问题。

我的决定

面试结束后,我在楼下咖啡馆坐了很久。

  • 大厂:系统架构都是现成的,成长空间有限。
  • 创业公司:用户增长快,可以从零设计系统,虽然风险大但能学到很多。

我打开手机,给老张发了条微信:「我决定加入了,什么时候能入职?」

三分钟后,他回了一条:「太好了!下周一入职。我让 HR 准备 offer,对了,通知系统就交给你了,全权负责。」

看着那条消息,我既兴奋又紧张。这是我第一次独立负责一个系统的设计。

课程预告

接下来的章节,我将沿着时间线解决这些问题:

章节要解决的问题
通知基础认清通知的本质(三阶段、两种形式)
推送渠道APNs 与安卓厂商推送、到达率
站内信持久化消息中心、已读未读
多端同步多设备状态一致
限流防骚扰避免通知轰炸
偏好管理让用户控制接收方式
系统架构收束成完整设计

一句话

这一节是课程的问题定义:通知系统的复杂度来自「及时、可靠、不打扰」三者之间的平衡。带着这些挑战,我们开始第一章——重新认识通知。

发现内容有问题?

告诉我们哪里需要改进。