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

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

序 本文目的

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

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

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

在线项目预览地址:

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

第一章 需求的提出

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

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

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

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

具体举例如下图


需求明确:希望有一个方便、及时的信息通知系统

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

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

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

第二章 需求的完善

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

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

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

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

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

画出简单的流程图:


在这个过程中,调用方需要关心的是,我能否正确的推送给目标群体。

具体包括 2 点:

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

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

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

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

这是系统的第一个难点,看起来很简单,但需要明确主被动关系。为了方便理解,我画了 2 张图:

接受者主动:常见于外网系统,可以有效避免骚扰信息的存在。即避免推送者发送垃圾信息给无关人士。类似:


推送者主动:一般在内网系统,我们会选择这种类型,优点的管理方便,典型就是各种邮件组。

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

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

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服