背景
如果工作中涉及到很多的模塊但是由于數(shù)據(jù)沒(méi)有閉環(huán)導(dǎo)致測(cè)試的時(shí)候提出一些數(shù)據(jù)不一致的bug括授。
比如系統(tǒng)各個(gè)模塊中統(tǒng)一為一個(gè)邏輯整體捐顷,但是沒(méi)有做數(shù)據(jù)同步導(dǎo)致出現(xiàn)數(shù)據(jù)不一致舷暮。對(duì)于實(shí)現(xiàn)細(xì)節(jié)的人可以立馬想到原因是什么励两?但是對(duì)于產(chǎn)品或者測(cè)試來(lái)說(shuō),他們的腦子里認(rèn)為這是一個(gè)邏輯整理地消,我在其中一個(gè)模塊是可以看到記錄但是與其他模塊交互的時(shí)候?yàn)槭裁床淮嬖诼澹X中自洽的邏輯被打破了。
工作中具體的例子
我司CRM客戶(hù)脉执、互聯(lián)平臺(tái)企業(yè)疼阔、訂貨通客戶(hù)是一個(gè)邏輯的整體,他們的鏈路關(guān)系式 CRM客戶(hù) -> 互聯(lián)平臺(tái)企業(yè) -> 訂貨通客戶(hù)适瓦,即互聯(lián)平臺(tái)企業(yè)邏輯上來(lái)自于CRM客戶(hù)竿开,當(dāng)然可以直接在互聯(lián)平臺(tái)創(chuàng)建企業(yè)(同步在CRM創(chuàng)建客戶(hù)),訂貨通客戶(hù)來(lái)源于互聯(lián)平臺(tái)企業(yè)玻熙。所以當(dāng)CRM客戶(hù)被刪除的時(shí)候應(yīng)該刪除互聯(lián)平臺(tái)企業(yè)和訂貨通客戶(hù) 否彩。
但是由于CRM是北京團(tuán)隊(duì)做的,他們沒(méi)有做數(shù)據(jù)同步操作嗦随。當(dāng)然很多模塊都依賴(lài)于CRM的業(yè)務(wù)列荔,北京CRM團(tuán)隊(duì)可以發(fā)送客戶(hù)刪除的mq消息來(lái)通知很多團(tuán)隊(duì)來(lái)同步數(shù)據(jù)的。
沒(méi)有做數(shù)據(jù)同步導(dǎo)致測(cè)試的時(shí)候不理解枚尼,為什么訂貨通客戶(hù)還在缺報(bào)客戶(hù)不存在呢贴浙?其實(shí)是調(diào)用北京的接口提示說(shuō)不存在的。這樣的不一致在一定程度上降低團(tuán)隊(duì)的效率署恍,會(huì)出現(xiàn)很多這樣的數(shù)據(jù)不一致的bug都需要去跟蹤耗費(fèi)時(shí)間崎溃。
數(shù)據(jù)要同步且最好只有一條渠道來(lái)同步
在互聯(lián)平臺(tái)與訂貨通客戶(hù)之間有一個(gè)mq消息來(lái)同步,但是當(dāng)時(shí)小伙伴認(rèn)為mq消息不靠譜盯质,在查詢(xún)query的時(shí)候比對(duì)了一把把不一樣的刪除了袁串。
直到有一次上線出現(xiàn)過(guò)這種情況,客戶(hù)命名同步了訂貨通的可見(jiàn)范圍且賦予了權(quán)限呼巷,但是就是看不到訂貨通的聯(lián)系人囱修。通過(guò)查日志才知道是在查詢(xún)語(yǔ)句里被刪除了。
這里的場(chǎng)景就是數(shù)據(jù)同步有兩個(gè)地方王悍,而另外一處是當(dāng)時(shí)對(duì)于mq不信任寫(xiě)的是在測(cè)試破镰、產(chǎn)品、客戶(hù)可理解范圍之外的压储。他們不會(huì)想到query的時(shí)候也會(huì)比對(duì)一把同步數(shù)據(jù)沒(méi)有這樣的邏輯鲜漩。所以從這一點(diǎn)來(lái)說(shuō)我們寫(xiě)的代碼實(shí)現(xiàn)的功能應(yīng)該是符合上層的邏輯,上層的邏輯最好的校驗(yàn)就是產(chǎn)品和測(cè)試渠脉。
所以數(shù)據(jù)要同步且應(yīng)該符合邏輯最好只有一條渠道來(lái)同步宇整。