欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

高阶之路:从零设计开发一个多端报警系统(1)

程序员文章站 2022-04-21 10:33:44
序 本文目的教你如何从零开始设计一个系统。本文会尽量减少代码相关的内容,而侧重于产品与系统设计。适合阅读人员:会写代码,但不知道代码在系统里为什么这么写。在线项目预览地址:【待给】(没给的话回复提醒我一下)第一章 需求的提出我们在实际业务中,会遇见这样的情况:希望在项目出现意料之外的错误时(例如服务意外停止),可以自动报警并通知相关负责人员;某些功能,在出错率超过阈值,自动通知相关人员;在收到工单,或者工单流程发生变更时,自动通知相关人员;系统每日周月的自动汇总(例如每日新注册用户、...

序 本文目的

教你如何从零开始设计一个系统。

本文会尽量减少代码相关的内容,而侧重于产品与系统设计。

适合阅读人员:会写代码,但不知道代码在系统里为什么这么写。

在线项目预览地址:

【待给】(没给的话回复提醒我一下)

第一章 需求的提出

我们在实际业务中,会遇见这样的情况:

  1. 希望在项目出现意料之外的错误时(例如服务意外停止),可以自动报警并通知相关负责人员;
  2. 某些功能,在出错率超过阈值,自动通知相关人员;
  3. 在收到工单,或者工单流程发生变更时,自动通知相关人员;
  4. 系统每日周月的自动汇总(例如每日新注册用户、UV、PV等),可以自动将数据推送给相关人员,而非是必须登录信息管理系统才能访问;
  5. 通知系统(例如服务部署成功后,推送给相关负责人);
  6. 其他情况;

在以上场景中,我们不讨论如何去获取这些信息(因为这些和场景是高度耦合的)。我们需要在获取到信息后,如何及时快速的通知到相关人员。

因此,我们需要设计一个报警平台,当遇见以上场景后,其他业务系统可以调用这个平台的 api,通知相关负责人。

具体举例如下图

高阶之路:从零设计开发一个多端报警系统(1)
需求明确:希望有一个方便、及时的信息通知系统

我写了一个这样的系统。为了帮助缺少设计经验的开发,学习相关知识,于是便有了这篇博客。

并为之写了一个接入服务,当本系列博客更新时,自动推送邮件给相关的订阅人员。感兴趣的可以试用一下,链接地址:http://report.lovelovewall.com/,订阅【《自动报警系统》系列博文更新监控】即可,流程如下图:

高阶之路:从零设计开发一个多端报警系统(1)

具体如何实现,请继续阅读以下内容。

第二章 需求的完善

第一节中,我们画出了整个系统的流程图,但是这个平台内部怎么构成的,尚未明确。

因此下一步工作是明确平台内部流程,现在我们开始一步一步细化出整个系统流程。(防盗:作者QQ:20004604,微信:qq20004604,QQ交流群:387017550)

本章的目的是细化整个系统的流程,最终形成一个完整的系统流程图。而具体每部分怎么做,将被放在下一章节

第一小节 调用方视角(推送者角色)

整个流程初步构想,是很简单的一件事,就是调用方通过调用平台接口来推送消息,平台方接口被成功调用后,再推送消息给消息接收人。

画出简单的流程图:

高阶之路:从零设计开发一个多端报警系统(1)
在这个过程中,调用方需要关心的是,我能否正确的推送给目标群体。

具体包括 2 点:

  1. 数据合法性校验;
  2. 接受者获取;

第一点很好理解,我们略过不谈;

第二点接受者获取,是这个系统的重点。他存在两个关键点:

  1. 推送者:也就是调用者,我们该怎么明确推送者在系统里的角色,即谁是推送者;
  2. 接收者:谁接收推送者的信息,即推送者怎么明确推送信息给谁;

这是系统的第一个难点,看起来很简单,但需要明确主被动关系。为了方便理解,我画了 2 张图:
高阶之路:从零设计开发一个多端报警系统(1)
接受者主动:常见于外网系统,可以有效避免骚扰信息的存在。即避免推送者发送垃圾信息给无关人士。类似:

高阶之路:从零设计开发一个多端报警系统(1)
推送者主动:一般在内网系统,我们会选择这种类型,优点的管理方便,典型就是各种邮件组。

本项目代码基于前者开发,但本项目的 PRO 版本会额外添加后者功能,感兴趣的可以关注一下。

此时整理整个流程:高阶之路:从零设计开发一个多端报警系统(1)
(未完待续,请关注我的博客,或使用本项目开发的平台订阅本系列博客的更新,又或是加入我的技术交流群。更新频率,预计1~2天一篇)

作者QQ:20004604
微信:qq20004604
QQ交流群:387017550

本文地址:https://blog.csdn.net/qq20004604/article/details/108219321