成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

團隊技術專家回老家了,留下的技術設計模版賊好用!

開發 前端
CRUD也有區別,一把梭,隨便寫也能實現功能,但是我們CRUD也得有點追求,而且面向C端用戶的系統,也基本上會有一些性能、可用性之類的要求,比如接口響應平均多少多少毫秒以下、單機QPS1000、系統幾個9可用……

大家好,我是老三,轉眼間,團隊的技術專家B哥,已經離職一年了,我還時不時會想起他,因為他留下的j技術設計模版,我覺得真的很好用,基本上涵蓋了設計需要考慮的方方面面。接下來,以一個CRM項目的用戶觸達模塊為例,給大家分享一下。

一、CRM_技術設計文檔_消息觸達模塊

項目名稱

CRM系統

項目負責人

三分惡

模塊名稱

用戶觸達模塊

模塊負責人

三分惡

老三說:第一部分主要說明項目或者模塊的概況,這一部分雖然不太重要,但是是必須的。

二、修訂記錄

版本

修訂人

修訂內容

修訂日期

V1.0

三分惡

創建

2022-12-23

老三說:技術設計不是一成不變的,經常會隨著業務的變化,或者根據遇到的一些問題,進行完善和優化,但是每一個版本,都應該留下記錄和備份。

三、需求/背景

產品文檔:xxxx

為了實現用戶的精細化運營,通過多種途徑,向用戶發送消息通知……

老三說:這一部分就是結合產品文檔,把需求/背景簡單提煉一下,必須,但不是重點。

四、設計目標

老三說:設計目標一般分為兩部分:

實現功能:這一部分就是就是分析需求,把產品文檔里的東西,拆解成一個個的功能,也就是CRUD。

設計指標:CRUD也有區別,一把梭,隨便寫也能實現功能,但是我們CRUD也得有點追求,而且面向C端用戶的系統,也基本上會有一些性能、可用性之類的要求,比如接口響應平均多少多少毫秒以下、單機QPS1000、系統幾個9可用……

4.1.實現功能

  1. 多種渠道給用戶推送消息,主要包含站內和站外兩大部分:
  • 站內:

站內信

彈屏

  • 站外:
  • 郵件

  • 短信

  • push

  • 微信

  • ……

  1. 觸達任務管理
  • 支持定時/延時消息發送
  • 支持觸發型消息發送
  • 支持用戶分群發送

……

老三說:功能點比較多的話,這一部分還可以用思維導圖的形式來整理。

圖片

思維導圖

老三說:這一部分評審的時候一定要拉上產品經理或者相關的業務方,確定功能點沒有錯漏。

4.2.設計指標

  1. 性能要求
  • 百萬級消息分鐘級發送完成
  • xx接口,性能指標:單機1000并發,95%響應<=200ms

……

老三說:一般C端的服務都是有比較嚴格的性能要求的,畢竟如果系統響應慢的話,用戶的流失率就會變高。當然,用戶觸達,其實主要在于推,用戶主動查會少一些,消息的推送通常也會要求速度,比如,有個網紅,九點鐘要在app上直播,直播開始的時候,要做一個推送,那就要求盡可能快地把消息推送給每個用戶,不能說等到十二點直播完了,有的用戶才收到消息。

  1. 可用性
  • 觸達模塊99.9%可用
  • 消息推送成功率80%以上

……

老三說:C端系統的可用性比較重要,畢竟掛一會,影響的用戶可能都是以萬計,所以,設計的時候,也要考慮可用性,分析系統的瓶頸在哪里,流量突然上來,哪里可能頂不住,是要擴容,還是要限流、熔斷降級……

  1. 擴展性
  • 采用策略模式+配置,新增消息渠道,只需少量代碼+代碼即可實現
  • 引入規則引擎,同一消息類型的不同渠道,可以通過規則調整,無需發版

……

老三說:這一部分也是設計中應當考慮的,不能一味求快,否則很容易堆屎山。

  1. 兼容性
  • 接口xxx向前兼容app 1.9.0版本,低版本需強制更新

……

老三說:C端系統的開發,有時候比較麻的是低版本app的兼容,盡可能早期設計的時候,就考慮可能的擴展,如果實在沒法兼容,那就只能app強制更新,當然這種用戶體驗就非常不好了。

  1. 可觀測性
  • 接入Prometheus和Grafana,對服務和業務進行監控
  • 服務監控:通過控制面板觀察服務的內存、CPU、JVM、接口QPS、接口RT……
  • 業務監控:通過埋點上報,收集用戶觸達數據,通過面板可以分設備、渠道查看用戶觸達成功率……

老三說:這一部分也很重要,我們一般上班的第一件事,就是看監控面板,分析有沒有什么異常的地方。服務的可觀測性,一般公司都是用一些開源的或者付費的監控平臺,大廠一般都會自研監控平臺。服務的監控很多是通過插樁來實現,業務的監控一般都需要打埋點。

  1. 告警
  • 通過PrometheusAlert實現服務的告警,告警信息分級別,進行飛書通知、電話通知,告警類型分為服務告警和業務告警
  • 服務告警:內存、CPU占用過高,接口QPS過多,接口RT過長,觸發告警
  • 業務告警:用戶觸達成功率過低告警

老三說:告警通常也是和監控在一起的,畢竟開發人員也不可能二十四小時盯著告警,一般開源的、付費的、自建的監控系統,都支持配置告警規則,并通過不同的方式,郵件、短信、電話之類的渠道進行通知。

五、概要設計

老三說:概要設計,就是做個大概的系統整體設計。

5.1.設計思路

  • 數百萬消息段時間發送完成,流量較大,對數據存儲性能要求較高,需要選用高性能DB,對存儲壓力也比較大,同時需要一定削峰處理
  • 定時/延時消息發送采用消息隊列實現,對MQ的消費要求較高,并發度要高,批量消費
  • ……

老三說:這一部分主要是梳理一下整體的開發設計思路,把一些零散的想法梳理成點或者面,前期大家的討論可以整理在這里。

5.2.技術選型

  • 存儲:TiDB
  • 緩存:Redis
  • 消息隊列:業務RocketMQ,埋點Kafka
  • 注冊中心:Nacos
  • 配置中心:Nacos
  • RPC:Dubbo
  • 網關:Gateway
  • Push通道:自建

……

老三說:這一部分就是大概定一下技術選型,其實要是整個項目做好了選型,這一部分也可以不做,一般需要高級技術人員或者架構師,來整體地進行把握,當然,很多時候選型也沒好選的,基本就是主流的那些,而且一般一個團隊,都是統一的技術選型,方便維護。

5.3.業務架構

圖片

業務架構

老三說:這一部分就是大概對功能分分層,分分塊,把大概的功能切一切。

5.4.技術架構

老三說:技術選型+業務架構,其實一個大概的技術架構就出來了。

圖片

技術架構

老三說:技術架構圖類型,其實也沒有特別固定的形式,主要是圖能達意,我這個圖是通過draw.io畫的,還有一些其它的還用的工具,比如大家應該都聽過“PPT架構師”,用PPT畫也是可以的。當然這個圖是我隨手畫的。

5.5.系統環境

  • JDK版本:11
  • 部署環境:k8s+Containerd,單pod8核CPU+4G內存,服務集群32個pod
  • 數據庫:
  • 業務數據:TiDB 64核CPU+128G內存
  • 離線數據:Hbase……
  • ……

老三說:如果是項目初建,一般還需要對系統的環境進行評估,根據技術選型、數據容量、系統QPS等等,來選擇系統的環境,這一部分一般評審的時候會拉上運維同學,提前確定好系統環境,和運維同學對齊需求和排期。

六、詳細設計

老三說:詳細設計,就是具體指導開發的設計部分了,包括流程啊、數據模型啊、具體用到的算法、和客戶端的接口,等等,這一部分很重要,如果沒做好,沒對齊,那么搞不好就要返工,耽誤進度。

6.1.流程設計

  • push流程

圖片

push流程

老三說:用戶觸達,業務流程基本比較簡單,對于一些交易類的,比如支付,或者B端的系統,比如ERP,在開始開發之前,流程一定要梳理清楚,一般通過流程圖、時序圖來描述業務流程。給大家看一下我之前對接alipay畫的簡單的時序圖:

圖片

Alipay接入時序圖

6.2.算法設計

  • 渠道分流:同一消息類型,多種渠道,支持按比例分流,采用加權隨機算法實現
  • ……

老三說:算法設置不一定數據結構相關的算法,代碼里的一些涉及到一些需要進行邏輯計算的,都可以稱之為算法,這一部分也可以先梳理一下。

6.3.數據模型設計

  • crm_user_toutch_tash:用戶觸達任務表

字段

描述

數據類型

id

主鍵

bigint

task_no

任務編號

bigint

comment

描述

varchar

……



老三說:數據模型設計非常重要,可以說是系統設計的根基,如果沒有設計好,開發和維護起來真的很痛苦,每個公司應該都有一定的數據庫設計規范,基本就是結合業務和規范來設計了。

具體用什么工具設計呢?業務比較簡單的C端系統,其實直接拿表格也行,之前也試過PdMan,還行吧。

6.4.接口設計

接口名稱

添加支付任務

接口文檔地址

??https://yapi.com/xxx??

入參


入參描述

comment:任務描述

出參


出參描


老三說:這一部分也是重量級,但凡涉及到客戶端,或者其它服務的,這一部分都少不了,一般可以通過YApai之類的接口工具,但是建議大家還是在文檔里做個重復工作,把入參出參之類的描述一下,有些地方標標重點,因為有些人真的不怎么會看文檔。

接口設計的時候一定要和相關的同學對齊,不要怕花時間,后期改接口,是一件很痛苦的事情。

6.5.異常處理

  • 系統中的不確定異常,進行統一處理,響應“Network Error”
  • 埋點異步發送,不影響主要功能
  • ……

老三說:異常處理也是需要考慮的地方,哪些異常可以吞掉降級,哪些沒法處理,怎么給客戶端展示,怎么打日志,都需要考慮。

七、風險評估

老三說:其實每一次上線都伴隨著風險,從設計,一直到上線之前,都要對存在的風險進行評估,上線了要重點觀察風險點,也要提前設計好回滾或者處理方案,一旦發現不對勁,及時回滾和處理。

7.1.已知風險

  • 對數據相關服務壓力較大,用戶分群、用戶畫像等數據服務崩潰風險
  • MQ存在堆積風險,導致用戶收到消息延遲
  • QPS較高,數據庫CPU飆升風險
  • ……

7.2.可能風險

  • 場景類消息延遲,可能會影響交易相關流程,拉低轉化率和成交率

……

八、測試建議

老三說:需求評審階段、設計評審階段,最好都拉上測試同學,測試同學要對整體的功能,還有性能,都有比較清楚的了解。但是啊,如果只看功能的話,可能就是表面的點點點,具體實現邏輯,還是開發比較清楚,所以說給測試同學提一些測試建議,給測試的測試用例提供參考。

同時,我個人覺得,從測試的角度進行思考,也能有效減少寫代碼的bug。

8.1.功能測試

功能

測試步驟

預期結果

定時消息發送

創建定時消息

消息定時發送

……



老三說:這一部分基本就是結合設計目標的實現功能,列一下測試步驟和預期結果

8.2.性能測試

  • xxx接口壓測,預估單機QPS1000

這一部分基本就是壓測了,很多時候,系統的壓測沒那么簡單,尤其是鏈路長的時候,壓一次都得興師動眾。

九、上線準備

  • 運維搭建環境
  • 數據初始化
  • 添加配置
  • 消息隊列創建
  • 依賴服務上線
  • 服務上線

老三說:這一部分算是上線的備忘吧,有些wiki類的工具,支持在文檔里建任務,把上線前需要做的事情列出來,有不知道你經歷過“測試環境猛如虎,上線一看原地杵”沒?可能就是上線準備沒做好,缺了什么,少了什么。

十、評審及意見

評審意見

提出人

提出日期

解決意見

解決人

解決日期

xxx接口需要考慮一下兼容性,建議xx字段,從object改為list

老六

2023年1月1日

修改字段類型

老三

2023年1月1日

……






老三說:設計文檔不是寫完,啪,丟出去就完事了,還要上設計評審會,評審的時候,通常相關同學會提出一些評審意見,這些都應該記錄下來,解決完了之后,再次評審,直到評審通過,然后就可以開始CRUD了。

好了,看完這個模板,想必你對技術設計也有一定的認識了,老三實際上沒怎么接觸過用戶運營相關的東西,所以內容大家隨便看看,主要看模板。

當然模板是相對固定的,但是設計是靈活的,做技術設計的時候,也不用拘泥于固定的形式,根據具體的需求,考慮到需要考慮的點,能做到設計指導開發就夠了。

那么,假如你已經能做好技術設計……

但是——

老板:三某,這個需求,三天能不能搞定?

老三:可能不太……

老板:這個需求很急,而且我不能不急,你懂我的意思吧?

老三:沒問題,三天夠了!

而且——

老板:呦,三某的文檔寫的很清晰,代碼也很優雅,今年公司績效不好,找個實習生把他替了吧。

……

繃不住

參考:

[1].用戶運營:觸達系統應該如何搭建:https://www.woshipm.com/user-research/4239618.html)

[2].一個實時精準觸達系統的自我修養:https://juejin.cn/post/6844904009770221581


責任編輯:武曉燕 來源: 三分惡
相關推薦

2020-11-04 07:13:16

程序員職業工資

2020-11-02 08:24:34

Leader技術團隊

2022-08-28 16:01:39

團隊技術

2020-01-07 15:40:43

React前端技術準則

2009-06-26 10:54:24

JSF技術

2019-01-07 09:15:10

BAT技術互聯網Java

2018-12-27 22:25:07

國雙

2021-01-28 19:58:48

技術團隊效能

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2022-08-16 09:34:50

程序員技術

2018-01-29 09:42:27

創業技術團隊

2019-02-18 08:24:09

技術應用架構

2021-03-10 09:33:51

技術研發管理

2018-10-08 09:00:58

考核技術人KPI

2018-04-02 10:00:27

技術快速成長

2010-06-29 19:08:23

UML建模技術

2013-01-04 15:57:49

微軟Tech 2012

2019-09-23 09:46:58

能力模型技術

2019-07-10 09:19:26

技術開發編程

2020-02-25 14:27:46

FlutterWeb對接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色视频免费 | av天天看| 精品久久av | 成人性视频在线播放 | 99久久婷婷国产精品综合 | 亚洲精品一区在线 | 日韩午夜激情 | 久久精品成人 | 日韩激情网| 国产精品av久久久久久久久久 | 亚洲日本一区二区 | 精品国产青草久久久久96 | 欧美在线| 亚洲精品99| 亚洲在线成人 | 中文字幕亚洲视频 | 精品美女视频在免费观看 | 成人一区二区在线 | www久久国产| 欧美一区二区久久 | 女同久久| 亚洲精品久久区二区三区蜜桃臀 | 亚洲综合小视频 | 亚洲午夜视频 | 日本人爽p大片免费看 | 亚洲中午字幕 | 亚洲一区播放 | 美女国内精品自产拍在线播放 | 日韩一区二区三区在线播放 | 免费性视频 | 国产99久久精品 | 四季久久免费一区二区三区四区 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 久久久久久久久久久久久9999 | 日韩精品在线视频 | 色综合天天天天做夜夜夜夜做 | 亚洲成人一二三 | 欧美中文在线 | 在线观看中文字幕 | 久久人爽 | 成人精品一区 |