手把手教你寫設(shè)計(jì)方案,你學(xué)明白了嗎?
背景
假設(shè)你負(fù)責(zé)一個(gè)禮物系統(tǒng)的開發(fā),領(lǐng)導(dǎo)給你分配一個(gè)技術(shù)需求,給系統(tǒng)的送禮接口,實(shí)現(xiàn)冪等。于是你開始寫技術(shù)方案...
目的
本文檔旨在概述如何設(shè)計(jì)冪等,以確保禮物系統(tǒng)中的送禮接口具有冪等性。
用例圖
用例圖(Use Case Diagram):是軟件工程中的一種行為模型,用于描述系統(tǒng)的功能需求和用戶與系統(tǒng)的交互。它展示了系統(tǒng)中的不同用戶(或角色)和系統(tǒng)功能之間的關(guān)系,以及各種用例(功能需求)的交互關(guān)系。
用例圖一般包含這三要素:
- 參與者:表示與系統(tǒng)交互的外部實(shí)體,可以是用戶、另一個(gè)系統(tǒng)或外部設(shè)備等。它們以符號形式表示,通常是一個(gè)人的輪廓圖標(biāo)。
- 用例:表示系統(tǒng)提供的各種功能或服務(wù)需求。每個(gè)用例都描述了一個(gè)系統(tǒng)的功能,它以橢圓形圖標(biāo)表示,并與參與者之間通過連線連接。
- 關(guān)系:用例圖通過連線(箭頭)表示參與者和用例之間的關(guān)系,通常表示參與者和用例之間的交互行為。
回到冪等方案處理,我們這么寫用例圖:
圖片
時(shí)序圖
時(shí)序圖(Sequence Diagram)是軟件工程中的一種行為模型,用于描述對象之間的交互和消息傳遞順序。它展示了對象之間交互方式。我們一般方案設(shè)計(jì)的實(shí)現(xiàn)細(xì)節(jié),都體現(xiàn)在時(shí)序圖。
要素解釋:
- 對象(Object):在時(shí)序圖中表示系統(tǒng)中的各個(gè)對象或參與者,可以是類、實(shí)例、角色或系統(tǒng)組件等。它們用矩形框表示,并在頂部寫有對象名稱。
- 生命線(Lifeline):每個(gè)對象下方有一條垂直的虛線,稱為生命線,表示對象存在的時(shí)間段。生命線上方的箭頭表示對象的生命周期。
- 消息(Message):表示對象之間的通信或交互,以箭頭的形式從一個(gè)對象向另一個(gè)對象傳遞,指示消息的傳遞方向。消息可以是同步消息、異步消息、返回消息等,箭頭上方標(biāo)注了消息的類型和內(nèi)容。
- 激活(Activation):在生命線上方,表示對象正在執(zhí)行操作時(shí)的時(shí)間段,通常用豎直的方塊或者壓扁的橢圓形表示。
比如送禮的冪等處理邏輯,就可以體現(xiàn)在以下的時(shí)序圖:
圖片
流程圖
流程圖,通常被用來描述一個(gè)過程、系統(tǒng)或活動中的步驟和流程。它一般用于把一些分支體現(xiàn)出來,以方便更好體現(xiàn)設(shè)計(jì)方案。比如送禮接口的冪等方案,用流程表現(xiàn)如下:
送禮冪等處理流程圖
狀態(tài)圖
狀態(tài)圖是一種圖形化的建模工具,用于描述系統(tǒng)中一個(gè)特定對象的各種狀態(tài)以及它們之間的轉(zhuǎn)換和事件觸發(fā)。比如回到我們冪等處理這個(gè)方案設(shè)計(jì),這個(gè)冪等表的狀態(tài),就可以用一個(gè)狀態(tài)圖來表示。
圖片
冪等表狀態(tài)圖
- INIT: 冪等表插入的時(shí)候,就是初始化狀態(tài)
- SUCCESS: 如果送禮的業(yè)務(wù)邏輯處理成功,就更新為成功狀態(tài)
- FAIL: 如果送禮的業(yè)務(wù)邏輯處理失敗,冪等表就更新為失敗狀態(tài)
數(shù)據(jù)庫設(shè)計(jì)
對于寫方案設(shè)計(jì),數(shù)據(jù)庫這塊是比較重要的,尤其我們是后端開發(fā)。一般來說,你的表是如何設(shè)計(jì)的,就把ER圖放出來。如果你的方案只是修改原有的一些數(shù)據(jù)庫表,比如加字段、加索引等等,只需要突出就行。
比如我的送禮冪等方案,我的ER圖就是這樣的:
圖片
因?yàn)闆]有其他表跟它關(guān)聯(lián),所以這個(gè)ER圖只有一個(gè)單表。
接口文檔
請求方式: POST
接口名稱: 送禮接口
請求參數(shù):
圖片