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