日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

网站消息通知设计

發布時間:2023/12/20 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网站消息通知设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通知系統是一個成熟的 web 網站或者 app 最基本的功能,比如微博、知乎、掘金等。當然今天本文要討論的不是這種大網站、大流量的通知系統,而是一般用戶量的網站或者應用。

通知系統的組成

一個通知系統主要由:通知來源、通知控制、通知方式、通知模板和通知的目標五個部分組成。 后面詳細介紹各個組成的作用。組成結構如下圖所示:

通知來源

通知來源是指觸發本次通知事件的源頭,一般包括以下三種情況:

  • 用戶事件觸發:當其他用戶對某個對象執行了評論、@、點贊、留言等動作,都需要對對象擁有者進行通知。這是最常見的需要通知的場景。
  • 滿足系統的規則后自動觸發:比如被系統封號、等級提升、獲得勛章時,理論上都應該對用戶進行通知。
  • 管理員觸發:管理員主動向全網或者某個用戶發送通知,比如發送公告等。
  • 通知控制

    通知控制用來進行權限控制、黑白名單過濾、用戶接收消息頻率控制、內容審查等。總之控制和過濾相關的都放在這里。

    通知模板

    通知模板用來與數據模型結合并最終展示給用戶,類似 MVC 模式中的 V,可以是純文本也可以是 Velocity 之類的模板。引入通知模板主要是為了滿足以下三點:

  • 不同通知方式通知的展示方式可以不同;
  • 通知的展示與通知的模型數據分離;
  • 通知模板可配。
  • 通知方式

    常見的有站內信、郵件、短信、工作通知(釘釘、企業微信)等。其中像郵件、短信和工作通知都是基于第三方應用的,用的時候頂多在他們提供的接口上做一層封裝就可以了,所以沒什么可以講的。而站內信往往則需要網站或者應用自己設計和開發,所以很多網上介紹通知系統都只是介紹站內信的設計。

    通知系統的分層

    本文設計的通知系統流程圖如下,主要分為業務層、數據模型層、控制層、分發層、視圖層和發送層。分層可以降低各個模塊之間的耦合,每一層只做自己該做的事。

    業務層

    該層與業務相關,屬于通知系統中的通知來源部分。是調用通知系統服務的調用方,放在這里為了后面講解業務與通知系統的解耦。

    數據模型層

    相信很多寫 web 后臺的程序員對 MVC 模式很熟悉,這一層相當于 MVC 模式中的 M 層,主要負責收集模型數據的。該層理論上劃分為通知系統的通知來源。該層的數據模型與上層業務緊密關聯,不同的業務場景需要不同的通知數據。

    控制/過濾層

    即通知控制,用來進行權限控制、黑白名單過濾、用戶接收消息頻率控制、內容審查等。

    分發層

    不同的業務往往需要不同的方式發送通知消息,比如事件通知要進行站內信通知、而被封號往往會選擇郵件或者短信通知。消息到達分發層后,根據業務的不同選擇不同的發送策略。如果需要將發送的消息記錄進行存儲也可以放在這層。

    視圖層

    本層與數據模型層關系很大,數據到這一層后會與模板結合組成要發送的內容。

    發送層

    主要是調用短信、郵件、工作通知和站內信等接口將消息發送出去。我們將在第三部分講解該層中的站內信設計。

    以上分層建議采用框架的方式將所有流程編排好,每層都采用接口或者抽象類的方式調用。每層都有一些基類和固定接口,一旦有新的業務來只需要繼承這些基類并實現相應接口就可以了。

    結尾

    本文通知系統設計就講到這里,雖然簡單但也是經驗之談吧。筆者在設計這塊的時候也是慢慢演化過來的。一開始業務少、功能簡單,直接將所有代碼壘在一起。后期增加功能改動非常之大,幾乎等于重構。采用這種設計后,如果需要新增業務,只需要新增一些類,流程就可以自動 run 起來。

    轉載于:https://juejin.im/post/5d02629c5188253d592e0631

    總結

    以上是生活随笔為你收集整理的网站消息通知设计的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。