偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

團(tuán)隊(duì)技術(shù)專家回老家了,留下的技術(shù)設(shè)計(jì)模版賊好用!

開(kāi)發(fā) 前端
CRUD也有區(qū)別,一把梭,隨便寫(xiě)也能實(shí)現(xiàn)功能,但是我們CRUD也得有點(diǎn)追求,而且面向C端用戶的系統(tǒng),也基本上會(huì)有一些性能、可用性之類的要求,比如接口響應(yīng)平均多少多少毫秒以下、單機(jī)QPS1000、系統(tǒng)幾個(gè)9可用……

大家好,我是老三,轉(zhuǎn)眼間,團(tuán)隊(duì)的技術(shù)專家B哥,已經(jīng)離職一年了,我還時(shí)不時(shí)會(huì)想起他,因?yàn)樗粝碌膉技術(shù)設(shè)計(jì)模版,我覺(jué)得真的很好用,基本上涵蓋了設(shè)計(jì)需要考慮的方方面面。接下來(lái),以一個(gè)CRM項(xiàng)目的用戶觸達(dá)模塊為例,給大家分享一下。

一、CRM_技術(shù)設(shè)計(jì)文檔_消息觸達(dá)模塊

項(xiàng)目名稱

CRM系統(tǒng)

項(xiàng)目負(fù)責(zé)人

三分惡

模塊名稱

用戶觸達(dá)模塊

模塊負(fù)責(zé)人

三分惡

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

二、修訂記錄

版本

修訂人

修訂內(nèi)容

修訂日期

V1.0

三分惡

創(chuàng)建

2022-12-23

老三說(shuō):技術(shù)設(shè)計(jì)不是一成不變的,經(jīng)常會(huì)隨著業(yè)務(wù)的變化,或者根據(jù)遇到的一些問(wèn)題,進(jìn)行完善和優(yōu)化,但是每一個(gè)版本,都應(yīng)該留下記錄和備份。

三、需求/背景

產(chǎn)品文檔:xxxx

為了實(shí)現(xiàn)用戶的精細(xì)化運(yùn)營(yíng),通過(guò)多種途徑,向用戶發(fā)送消息通知……

老三說(shuō):這一部分就是結(jié)合產(chǎn)品文檔,把需求/背景簡(jiǎn)單提煉一下,必須,但不是重點(diǎn)。

四、設(shè)計(jì)目標(biāo)

老三說(shuō):設(shè)計(jì)目標(biāo)一般分為兩部分:

實(shí)現(xiàn)功能:這一部分就是就是分析需求,把產(chǎn)品文檔里的東西,拆解成一個(gè)個(gè)的功能,也就是CRUD。

設(shè)計(jì)指標(biāo):CRUD也有區(qū)別,一把梭,隨便寫(xiě)也能實(shí)現(xiàn)功能,但是我們CRUD也得有點(diǎn)追求,而且面向C端用戶的系統(tǒng),也基本上會(huì)有一些性能、可用性之類的要求,比如接口響應(yīng)平均多少多少毫秒以下、單機(jī)QPS1000、系統(tǒng)幾個(gè)9可用……

4.1.實(shí)現(xiàn)功能

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

站內(nèi)信

彈屏

  • 站外:
  • 郵件

  • 短信

  • push

  • 微信

  • ……

  1. 觸達(dá)任務(wù)管理
  • 支持定時(shí)/延時(shí)消息發(fā)送
  • 支持觸發(fā)型消息發(fā)送
  • 支持用戶分群發(fā)送

……

老三說(shuō):功能點(diǎn)比較多的話,這一部分還可以用思維導(dǎo)圖的形式來(lái)整理。

圖片

思維導(dǎo)圖

老三說(shuō):這一部分評(píng)審的時(shí)候一定要拉上產(chǎn)品經(jīng)理或者相關(guān)的業(yè)務(wù)方,確定功能點(diǎn)沒(méi)有錯(cuò)漏。

4.2.設(shè)計(jì)指標(biāo)

  1. 性能要求
  • 百萬(wàn)級(jí)消息分鐘級(jí)發(fā)送完成
  • xx接口,性能指標(biāo):?jiǎn)螜C(jī)1000并發(fā),95%響應(yīng)<=200ms

……

老三說(shuō):一般C端的服務(wù)都是有比較嚴(yán)格的性能要求的,畢竟如果系統(tǒng)響應(yīng)慢的話,用戶的流失率就會(huì)變高。當(dāng)然,用戶觸達(dá),其實(shí)主要在于推,用戶主動(dòng)查會(huì)少一些,消息的推送通常也會(huì)要求速度,比如,有個(gè)網(wǎng)紅,九點(diǎn)鐘要在app上直播,直播開(kāi)始的時(shí)候,要做一個(gè)推送,那就要求盡可能快地把消息推送給每個(gè)用戶,不能說(shuō)等到十二點(diǎn)直播完了,有的用戶才收到消息。

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

……

老三說(shuō):C端系統(tǒng)的可用性比較重要,畢竟掛一會(huì),影響的用戶可能都是以萬(wàn)計(jì),所以,設(shè)計(jì)的時(shí)候,也要考慮可用性,分析系統(tǒng)的瓶頸在哪里,流量突然上來(lái),哪里可能頂不住,是要擴(kuò)容,還是要限流、熔斷降級(jí)……

  1. 擴(kuò)展性
  • 采用策略模式+配置,新增消息渠道,只需少量代碼+代碼即可實(shí)現(xiàn)
  • 引入規(guī)則引擎,同一消息類型的不同渠道,可以通過(guò)規(guī)則調(diào)整,無(wú)需發(fā)版

……

老三說(shuō):這一部分也是設(shè)計(jì)中應(yīng)當(dāng)考慮的,不能一味求快,否則很容易堆屎山。

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

……

老三說(shuō):C端系統(tǒng)的開(kāi)發(fā),有時(shí)候比較麻的是低版本app的兼容,盡可能早期設(shè)計(jì)的時(shí)候,就考慮可能的擴(kuò)展,如果實(shí)在沒(méi)法兼容,那就只能app強(qiáng)制更新,當(dāng)然這種用戶體驗(yàn)就非常不好了。

  1. 可觀測(cè)性
  • 接入Prometheus和Grafana,對(duì)服務(wù)和業(yè)務(wù)進(jìn)行監(jiān)控
  • 服務(wù)監(jiān)控:通過(guò)控制面板觀察服務(wù)的內(nèi)存、CPU、JVM、接口QPS、接口RT……
  • 業(yè)務(wù)監(jiān)控:通過(guò)埋點(diǎn)上報(bào),收集用戶觸達(dá)數(shù)據(jù),通過(guò)面板可以分設(shè)備、渠道查看用戶觸達(dá)成功率……

老三說(shuō):這一部分也很重要,我們一般上班的第一件事,就是看監(jiān)控面板,分析有沒(méi)有什么異常的地方。服務(wù)的可觀測(cè)性,一般公司都是用一些開(kāi)源的或者付費(fèi)的監(jiān)控平臺(tái),大廠一般都會(huì)自研監(jiān)控平臺(tái)。服務(wù)的監(jiān)控很多是通過(guò)插樁來(lái)實(shí)現(xiàn),業(yè)務(wù)的監(jiān)控一般都需要打埋點(diǎn)。

  1. 告警
  • 通過(guò)PrometheusAlert實(shí)現(xiàn)服務(wù)的告警,告警信息分級(jí)別,進(jìn)行飛書(shū)通知、電話通知,告警類型分為服務(wù)告警和業(yè)務(wù)告警
  • 服務(wù)告警:內(nèi)存、CPU占用過(guò)高,接口QPS過(guò)多,接口RT過(guò)長(zhǎng),觸發(fā)告警
  • 業(yè)務(wù)告警:用戶觸達(dá)成功率過(guò)低告警

老三說(shuō):告警通常也是和監(jiān)控在一起的,畢竟開(kāi)發(fā)人員也不可能二十四小時(shí)盯著告警,一般開(kāi)源的、付費(fèi)的、自建的監(jiān)控系統(tǒng),都支持配置告警規(guī)則,并通過(guò)不同的方式,郵件、短信、電話之類的渠道進(jìn)行通知。

五、概要設(shè)計(jì)

老三說(shuō):概要設(shè)計(jì),就是做個(gè)大概的系統(tǒng)整體設(shè)計(jì)。

5.1.設(shè)計(jì)思路

  • 數(shù)百萬(wàn)消息段時(shí)間發(fā)送完成,流量較大,對(duì)數(shù)據(jù)存儲(chǔ)性能要求較高,需要選用高性能DB,對(duì)存儲(chǔ)壓力也比較大,同時(shí)需要一定削峰處理
  • 定時(shí)/延時(shí)消息發(fā)送采用消息隊(duì)列實(shí)現(xiàn),對(duì)MQ的消費(fèi)要求較高,并發(fā)度要高,批量消費(fèi)
  • ……

老三說(shuō):這一部分主要是梳理一下整體的開(kāi)發(fā)設(shè)計(jì)思路,把一些零散的想法梳理成點(diǎn)或者面,前期大家的討論可以整理在這里。

5.2.技術(shù)選型

  • 存儲(chǔ):TiDB
  • 緩存:Redis
  • 消息隊(duì)列:業(yè)務(wù)RocketMQ,埋點(diǎn)Kafka
  • 注冊(cè)中心:Nacos
  • 配置中心:Nacos
  • RPC:Dubbo
  • 網(wǎng)關(guān):Gateway
  • Push通道:自建

……

老三說(shuō):這一部分就是大概定一下技術(shù)選型,其實(shí)要是整個(gè)項(xiàng)目做好了選型,這一部分也可以不做,一般需要高級(jí)技術(shù)人員或者架構(gòu)師,來(lái)整體地進(jìn)行把握,當(dāng)然,很多時(shí)候選型也沒(méi)好選的,基本就是主流的那些,而且一般一個(gè)團(tuán)隊(duì),都是統(tǒng)一的技術(shù)選型,方便維護(hù)。

5.3.業(yè)務(wù)架構(gòu)

圖片

業(yè)務(wù)架構(gòu)

老三說(shuō):這一部分就是大概對(duì)功能分分層,分分塊,把大概的功能切一切。

5.4.技術(shù)架構(gòu)

老三說(shuō):技術(shù)選型+業(yè)務(wù)架構(gòu),其實(shí)一個(gè)大概的技術(shù)架構(gòu)就出來(lái)了。

圖片

技術(shù)架構(gòu)

老三說(shuō):技術(shù)架構(gòu)圖類型,其實(shí)也沒(méi)有特別固定的形式,主要是圖能達(dá)意,我這個(gè)圖是通過(guò)draw.io畫(huà)的,還有一些其它的還用的工具,比如大家應(yīng)該都聽(tīng)過(guò)“PPT架構(gòu)師”,用PPT畫(huà)也是可以的。當(dāng)然這個(gè)圖是我隨手畫(huà)的。

5.5.系統(tǒng)環(huán)境

  • JDK版本:11
  • 部署環(huán)境:k8s+Containerd,單pod8核CPU+4G內(nèi)存,服務(wù)集群32個(gè)pod
  • 數(shù)據(jù)庫(kù):
  • 業(yè)務(wù)數(shù)據(jù):TiDB 64核CPU+128G內(nèi)存
  • 離線數(shù)據(jù):Hbase……
  • ……

老三說(shuō):如果是項(xiàng)目初建,一般還需要對(duì)系統(tǒng)的環(huán)境進(jìn)行評(píng)估,根據(jù)技術(shù)選型、數(shù)據(jù)容量、系統(tǒng)QPS等等,來(lái)選擇系統(tǒng)的環(huán)境,這一部分一般評(píng)審的時(shí)候會(huì)拉上運(yùn)維同學(xué),提前確定好系統(tǒng)環(huán)境,和運(yùn)維同學(xué)對(duì)齊需求和排期。

六、詳細(xì)設(shè)計(jì)

老三說(shuō):詳細(xì)設(shè)計(jì),就是具體指導(dǎo)開(kāi)發(fā)的設(shè)計(jì)部分了,包括流程啊、數(shù)據(jù)模型啊、具體用到的算法、和客戶端的接口,等等,這一部分很重要,如果沒(méi)做好,沒(méi)對(duì)齊,那么搞不好就要返工,耽誤進(jìn)度。

6.1.流程設(shè)計(jì)

  • push流程

圖片

push流程

老三說(shuō):用戶觸達(dá),業(yè)務(wù)流程基本比較簡(jiǎn)單,對(duì)于一些交易類的,比如支付,或者B端的系統(tǒng),比如ERP,在開(kāi)始開(kāi)發(fā)之前,流程一定要梳理清楚,一般通過(guò)流程圖、時(shí)序圖來(lái)描述業(yè)務(wù)流程。給大家看一下我之前對(duì)接alipay畫(huà)的簡(jiǎn)單的時(shí)序圖:

圖片

Alipay接入時(shí)序圖

6.2.算法設(shè)計(jì)

  • 渠道分流:同一消息類型,多種渠道,支持按比例分流,采用加權(quán)隨機(jī)算法實(shí)現(xiàn)
  • ……

老三說(shuō):算法設(shè)置不一定數(shù)據(jù)結(jié)構(gòu)相關(guān)的算法,代碼里的一些涉及到一些需要進(jìn)行邏輯計(jì)算的,都可以稱之為算法,這一部分也可以先梳理一下。

6.3.數(shù)據(jù)模型設(shè)計(jì)

  • crm_user_toutch_tash:用戶觸達(dá)任務(wù)表

字段

描述

數(shù)據(jù)類型

id

主鍵

bigint

task_no

任務(wù)編號(hào)

bigint

comment

描述

varchar

……



老三說(shuō):數(shù)據(jù)模型設(shè)計(jì)非常重要,可以說(shuō)是系統(tǒng)設(shè)計(jì)的根基,如果沒(méi)有設(shè)計(jì)好,開(kāi)發(fā)和維護(hù)起來(lái)真的很痛苦,每個(gè)公司應(yīng)該都有一定的數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范,基本就是結(jié)合業(yè)務(wù)和規(guī)范來(lái)設(shè)計(jì)了。

具體用什么工具設(shè)計(jì)呢?業(yè)務(wù)比較簡(jiǎn)單的C端系統(tǒng),其實(shí)直接拿表格也行,之前也試過(guò)PdMan,還行吧。

6.4.接口設(shè)計(jì)

接口名稱

添加支付任務(wù)

接口文檔地址

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

入?yún)?br>


入?yún)⒚枋?br>

comment:任務(wù)描述

出參


出參描


老三說(shuō):這一部分也是重量級(jí),但凡涉及到客戶端,或者其它服務(wù)的,這一部分都少不了,一般可以通過(guò)YApai之類的接口工具,但是建議大家還是在文檔里做個(gè)重復(fù)工作,把入?yún)⒊鰠⒅惖拿枋鲆幌?,有些地方?biāo)標(biāo)重點(diǎn),因?yàn)橛行┤苏娴牟辉趺磿?huì)看文檔。

接口設(shè)計(jì)的時(shí)候一定要和相關(guān)的同學(xué)對(duì)齊,不要怕花時(shí)間,后期改接口,是一件很痛苦的事情。

6.5.異常處理

  • 系統(tǒng)中的不確定異常,進(jìn)行統(tǒng)一處理,響應(yīng)“Network Error”
  • 埋點(diǎn)異步發(fā)送,不影響主要功能
  • ……

老三說(shuō):異常處理也是需要考慮的地方,哪些異??梢酝痰艚导?jí),哪些沒(méi)法處理,怎么給客戶端展示,怎么打日志,都需要考慮。

七、風(fēng)險(xiǎn)評(píng)估

老三說(shuō):其實(shí)每一次上線都伴隨著風(fēng)險(xiǎn),從設(shè)計(jì),一直到上線之前,都要對(duì)存在的風(fēng)險(xiǎn)進(jìn)行評(píng)估,上線了要重點(diǎn)觀察風(fēng)險(xiǎn)點(diǎn),也要提前設(shè)計(jì)好回滾或者處理方案,一旦發(fā)現(xiàn)不對(duì)勁,及時(shí)回滾和處理。

7.1.已知風(fēng)險(xiǎn)

  • 對(duì)數(shù)據(jù)相關(guān)服務(wù)壓力較大,用戶分群、用戶畫(huà)像等數(shù)據(jù)服務(wù)崩潰風(fēng)險(xiǎn)
  • MQ存在堆積風(fēng)險(xiǎn),導(dǎo)致用戶收到消息延遲
  • QPS較高,數(shù)據(jù)庫(kù)CPU飆升風(fēng)險(xiǎn)
  • ……

7.2.可能風(fēng)險(xiǎn)

  • 場(chǎng)景類消息延遲,可能會(huì)影響交易相關(guān)流程,拉低轉(zhuǎn)化率和成交率

……

八、測(cè)試建議

老三說(shuō):需求評(píng)審階段、設(shè)計(jì)評(píng)審階段,最好都拉上測(cè)試同學(xué),測(cè)試同學(xué)要對(duì)整體的功能,還有性能,都有比較清楚的了解。但是啊,如果只看功能的話,可能就是表面的點(diǎn)點(diǎn)點(diǎn),具體實(shí)現(xiàn)邏輯,還是開(kāi)發(fā)比較清楚,所以說(shuō)給測(cè)試同學(xué)提一些測(cè)試建議,給測(cè)試的測(cè)試用例提供參考。

同時(shí),我個(gè)人覺(jué)得,從測(cè)試的角度進(jìn)行思考,也能有效減少寫(xiě)代碼的bug。

8.1.功能測(cè)試

功能

測(cè)試步驟

預(yù)期結(jié)果

定時(shí)消息發(fā)送

創(chuàng)建定時(shí)消息

消息定時(shí)發(fā)送

……



老三說(shuō):這一部分基本就是結(jié)合設(shè)計(jì)目標(biāo)的實(shí)現(xiàn)功能,列一下測(cè)試步驟和預(yù)期結(jié)果

8.2.性能測(cè)試

  • xxx接口壓測(cè),預(yù)估單機(jī)QPS1000

這一部分基本就是壓測(cè)了,很多時(shí)候,系統(tǒng)的壓測(cè)沒(méi)那么簡(jiǎn)單,尤其是鏈路長(zhǎng)的時(shí)候,壓一次都得興師動(dòng)眾。

九、上線準(zhǔn)備

  • 運(yùn)維搭建環(huán)境
  • 數(shù)據(jù)初始化
  • 添加配置
  • 消息隊(duì)列創(chuàng)建
  • 依賴服務(wù)上線
  • 服務(wù)上線

老三說(shuō):這一部分算是上線的備忘吧,有些wiki類的工具,支持在文檔里建任務(wù),把上線前需要做的事情列出來(lái),有不知道你經(jīng)歷過(guò)“測(cè)試環(huán)境猛如虎,上線一看原地杵”沒(méi)?可能就是上線準(zhǔn)備沒(méi)做好,缺了什么,少了什么。

十、評(píng)審及意見(jiàn)

評(píng)審意見(jiàn)

提出人

提出日期

解決意見(jiàn)

解決人

解決日期

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

老六

2023年1月1日

修改字段類型

老三

2023年1月1日

……






老三說(shuō):設(shè)計(jì)文檔不是寫(xiě)完,啪,丟出去就完事了,還要上設(shè)計(jì)評(píng)審會(huì),評(píng)審的時(shí)候,通常相關(guān)同學(xué)會(huì)提出一些評(píng)審意見(jiàn),這些都應(yīng)該記錄下來(lái),解決完了之后,再次評(píng)審,直到評(píng)審?fù)ㄟ^(guò),然后就可以開(kāi)始CRUD了。

好了,看完這個(gè)模板,想必你對(duì)技術(shù)設(shè)計(jì)也有一定的認(rèn)識(shí)了,老三實(shí)際上沒(méi)怎么接觸過(guò)用戶運(yùn)營(yíng)相關(guān)的東西,所以內(nèi)容大家隨便看看,主要看模板。

當(dāng)然模板是相對(duì)固定的,但是設(shè)計(jì)是靈活的,做技術(shù)設(shè)計(jì)的時(shí)候,也不用拘泥于固定的形式,根據(jù)具體的需求,考慮到需要考慮的點(diǎn),能做到設(shè)計(jì)指導(dǎo)開(kāi)發(fā)就夠了。

那么,假如你已經(jīng)能做好技術(shù)設(shè)計(jì)……

但是——

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

老三:可能不太……

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

老三:沒(méi)問(wèn)題,三天夠了!

而且——

老板:呦,三某的文檔寫(xiě)的很清晰,代碼也很優(yōu)雅,今年公司績(jī)效不好,找個(gè)實(shí)習(xí)生把他替了吧。

……

繃不住

參考:

[1].用戶運(yùn)營(yíng):觸達(dá)系統(tǒng)應(yīng)該如何搭建:https://www.woshipm.com/user-research/4239618.html)

[2].一個(gè)實(shí)時(shí)精準(zhǔn)觸達(dá)系統(tǒng)的自我修養(yǎng):https://juejin.cn/post/6844904009770221581


責(zé)任編輯:武曉燕 來(lái)源: 三分惡
相關(guān)推薦

2020-11-04 07:13:16

程序員職業(yè)工資

2020-11-02 08:24:34

Leader技術(shù)團(tuán)隊(duì)

2022-08-28 16:01:39

團(tuán)隊(duì)技術(shù)

2020-01-07 15:40:43

React前端技術(shù)準(zhǔn)則

2009-06-26 10:54:24

JSF技術(shù)

2019-01-07 09:15:10

BAT技術(shù)互聯(lián)網(wǎng)Java

2018-12-27 22:25:07

國(guó)雙

2021-01-28 19:58:48

技術(shù)團(tuán)隊(duì)效能

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2022-08-16 09:34:50

程序員技術(shù)

2018-01-29 09:42:27

創(chuàng)業(yè)技術(shù)團(tuán)隊(duì)

2019-02-18 08:24:09

技術(shù)應(yīng)用架構(gòu)

2021-03-10 09:33:51

技術(shù)研發(fā)管理

2018-10-08 09:00:58

考核技術(shù)人KPI

2018-04-02 10:00:27

技術(shù)快速成長(zhǎng)

2010-06-29 19:08:23

UML建模技術(shù)

2013-01-04 15:57:49

微軟Tech 2012

2019-09-23 09:46:58

能力模型技術(shù)

2019-07-10 09:19:26

技術(shù)開(kāi)發(fā)編程

2020-02-25 14:27:46

FlutterWeb對(duì)接
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)