在業務中臺,如何做代碼評審

圖片

作者:西部

部門:業務中臺 / 測試開發

1、業務背景

=========

業務方應用接入 BOS 需要依賴於 bos-sdk,應用集羣在啓動時通過 bos-sdk 將應用指定註解的組件進行收集,收集完成後保存在 DB 中,集羣中的每一臺機器在重啓時,需要保證入庫時只有一條請求的處理能夠正確入庫,以保證數據不會重複入庫以及數據插入衝突的情況,爲防止出現上述情況,項目中採用分佈式鎖,對此我們針對項目中分佈式鎖的邏輯,以及業務拿到鎖的實現進行了 CR,CR 的最佳指導我們採用結構化方式進行,分別從背景瞭解、業務場景、邏輯分析、異常分析、編程規範、非功能分析、可測性分析這幾個唯度進行 CR。

2、我們先看一下收集流程

3、分佈鎖的實現

3.1 鎖實現邏輯:


3.2 鎖實現時序調用:

3.3 鎖流程處理:

3.4 我們針對上述鎖的實現開始 CR:

a 背景瞭解:

b 鎖業務場景分析:

c 邏輯分析:

場景遺漏:

邏輯冗餘:

d 非功能點分析

可測性分析:

可監控:

4、業務獲鎖後處理邏輯

4.1 業務代碼邏輯處理:

4.2 業務獲取鎖業務處理流程:

4.3 問題分析:

a 背景瞭解 (註釋中相關業務場景信息缺失):

b 邏輯分析

邏輯處理不合理:

try 語句塊的邏輯在此場景核心是關注 DB 操作的,不應在 try 語句塊中加入其它邏輯調用,換句話理解,如果 DB 操作成功,第 34 行調用失敗或調用異常,則會走 catch,與 try 中關心場景本意不符。

c 代碼寫法規範:

異常分析:

d 非功能分析

可監控:

可測性:

性能無

總結:

經過結構化 CR,我們可以從背景瞭解、業務場景、邏輯分析、異常分析、編程規範、非功能分析、可測性這幾個唯度發現代碼在實現過程中的問題,當然上述代碼中不論是鎖自身實現,還是業務拿到鎖之後的實現結合具體的業務場景可能還有一些隱藏的問題待挖掘,但通過結構化的 CR 方式 ,我們可以提前將一些顯見的問題類型提前識別出來,防止這些問題擊穿不同階段的測試,引發線上問題,關於業務中臺 BOS 的介紹,可參考有贊 coder 公衆號中相關文章 "千億級公司低代碼平臺的測試體系介紹"。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/hF9Ymt8_ZBw8SNNtssVDLg