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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

业务设计原则

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 业务设计原则 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面這些內(nèi)容摘自張開濤的書籍《億級(jí)流量網(wǎng)站架構(gòu)核心技術(shù)》,推薦大家閱讀本書。

業(yè)務(wù)設(shè)計(jì)原則,主要有:

  • 防重設(shè)計(jì)
  • 冪等設(shè)計(jì)
  • 流程可定義
  • 狀態(tài)與狀態(tài)機(jī)
  • 后臺(tái)系統(tǒng)操作可反饋
  • 后臺(tái)系統(tǒng)審批化
  • 文檔和注釋
  • 備份
  • 防重設(shè)計(jì)

    比如,結(jié)算頁面要考慮重復(fù)提交的問題,還有下單時(shí)扣減庫存要防止重復(fù)扣減的問題。解決方案可以考慮防重key、防重表。而有些場(chǎng)景下如重復(fù)支付,是因?yàn)橛械碾娚叹W(wǎng)站同時(shí)支持微信支付、京東支付,渠道不一樣是無法防止重復(fù)支付的。但是在系統(tǒng)設(shè)計(jì)時(shí),需要將支付的每筆情況記錄下來。

    冪等設(shè)計(jì)

    在交易系統(tǒng)中,經(jīng)常會(huì)用到消息,而現(xiàn)有消息中間件基本不保證不發(fā)生重復(fù)消息的消費(fèi)。因此,需要業(yè)務(wù)系統(tǒng)在重復(fù)消費(fèi)時(shí)進(jìn)行冪等處理。還有在使用第三方支付時(shí),第三方支付會(huì)進(jìn)行異步回調(diào),也要做好回調(diào)的冪等處理。

    流程可定義

    如果接觸過保險(xiǎn)業(yè)務(wù),就會(huì)發(fā)現(xiàn)不同保險(xiǎn)的理賠服務(wù)是不一樣的。在設(shè)計(jì)系統(tǒng)時(shí)就設(shè)計(jì)了一套專門的理賠流程模塊。而承保流程和理賠流程是分離的,在需要時(shí)進(jìn)行關(guān)聯(lián),從而可以復(fù)用一些理賠流程,并提供個(gè)性化的理賠流程。

    狀態(tài)與狀態(tài)機(jī)

    在設(shè)計(jì)交易訂單系統(tǒng)時(shí),會(huì)存在正向狀態(tài)和逆向狀態(tài),正向狀態(tài),例如待付款、待發(fā)貨、已發(fā)貨;逆向狀態(tài)如取消訂單、退款等。正向狀態(tài)和逆向狀態(tài)應(yīng)該根據(jù)系統(tǒng)的特征來決定要不要分離存儲(chǔ)。狀態(tài)設(shè)計(jì)時(shí)應(yīng)有狀態(tài)軌跡,方便用戶跟蹤當(dāng)前訂單的軌跡并記錄相關(guān)日志,萬一出問題時(shí)可回溯問題。

    另外,還有訂單狀態(tài)的變遷,例如待支付、已支付待發(fā)貨、待收貨的遷移。要考慮要不要使用狀態(tài)機(jī)來驅(qū)動(dòng)狀態(tài)的變更和后續(xù)流程節(jié)點(diǎn)的操作,尤其當(dāng)狀態(tài)很多的時(shí)候使用狀態(tài)機(jī)能更好的控制狀態(tài)遷移。

    還要考慮并發(fā)狀態(tài)修改問題,如一個(gè)訂單同時(shí)只能有一個(gè)修改;狀態(tài)變更的有序問題,以及狀態(tài)變更消息的先到后到的問題,如支付成功消息和用戶取消消息的時(shí)間差。

    后臺(tái)系統(tǒng)操作可反饋

    假如修改了某些內(nèi)容后想預(yù)覽看最終效果,這就是希望得到反饋結(jié)果;還有就是在規(guī)則系統(tǒng)中,希望看到這些規(guī)則在系統(tǒng)數(shù)據(jù)下的反饋。因此,在設(shè)計(jì)后臺(tái)系統(tǒng)時(shí),需考慮效果的可預(yù)覽、可反饋。

    后臺(tái)系統(tǒng)審批化

    對(duì)于有些重要的后臺(tái)功能需要設(shè)計(jì)審批流,比如調(diào)整價(jià)格,并對(duì)操作進(jìn)行日志記錄,從而保證操作可追溯、可審計(jì)。

    文檔和注釋

    在一個(gè)系統(tǒng)發(fā)展的初期就應(yīng)該建立文檔庫,例如設(shè)計(jì)架構(gòu)、設(shè)計(jì)說明書、業(yè)務(wù)規(guī)則說明書,程序猿在寫代碼時(shí)也應(yīng)寫清楚注釋,不然會(huì)給其他的程序猿帶來理解上的障礙,并嚴(yán)重降低工作效率。

    備份

    一種是代碼備份,代碼要提交到代碼倉庫進(jìn)行管理和備份。還有一種就是程序猿的備份,我們要確保一個(gè)模塊,至少有兩個(gè)程序猿對(duì)其是相當(dāng)熟悉的。

    ?

    總結(jié)

    以上是生活随笔為你收集整理的业务设计原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。