B端技術(shù)常識:同步異步接口模式
本文介紹程序設(shè)計中常見的同步、異步接口模式,并通過設(shè)計案例讓大家理解兩種模式如何融入到產(chǎn)品設(shè)計中。
在軟件開發(fā)中,接口是一個非常重要的概念。所謂接口,是指兩個對象進(jìn)行通信的方式和協(xié)議。
軟件領(lǐng)域的接口和我們生活中所使用的硬件設(shè)備的接口(例如USB接口、蘋果的Lighting接口、3.5mm耳機接口等)類似,每種接口都有約定的格式和規(guī)范,只要在設(shè)計時遵循了約定和規(guī)范,就能夠方便地進(jìn)行信息交換。
在軟件設(shè)計領(lǐng)域,小到一個軟件模塊,大到一個軟件系統(tǒng),都會有若干接口,實現(xiàn)不同模塊、不同系統(tǒng)之間的通信。
一般來講,每個接口都應(yīng)該實現(xiàn)一個具體的功能,接口需要有明確的輸入,以及明確的輸出(有的時候輸出結(jié)果為空)。例如,調(diào)用客戶姓名查詢接口時,需要傳入客戶ID,執(zhí)行后返回客戶姓名。
在跨團隊、跨模塊的軟件開發(fā)中,接口的設(shè)計規(guī)則需要在設(shè)計技術(shù)方案時就協(xié)商好,然后各方團隊各自開發(fā),在約定的時間一起聯(lián)調(diào),進(jìn)行集成測試。
接口之間的調(diào)用模式分為同步調(diào)用模式和異步調(diào)用模式兩種,產(chǎn)品經(jīng)理需要理解這兩種模式的區(qū)別,因為這不僅是技術(shù)問題,也會影響產(chǎn)品方案,我們通過兩個產(chǎn)品設(shè)計案例來理解這兩種模式。
同步調(diào)用模式
在同步調(diào)用模式下,接口的調(diào)用方會一直等待被調(diào)用方返回執(zhí)行結(jié)果,除非調(diào)用超時,如下圖所示。同步調(diào)用模式是最常見的接口調(diào)用形式。
我們來看一個采用同步調(diào)用模式的數(shù)據(jù)文件查詢下載頁面的設(shè)計案例。在該頁面中,用戶查詢并下載csv文件,如下圖所示。
具體交互與系統(tǒng)處理步驟如下:
- 用戶設(shè)置好查詢條件,點擊“下載”按鈕;
- “下載”按鈕會以同步模式調(diào)用后臺數(shù)據(jù)查詢接口,將前端用戶填寫的日期作為參數(shù)傳遞給后端服務(wù)接口;
- 后端服務(wù)拼寫SQL查詢語句,執(zhí)行SQL語句并等待數(shù)據(jù)庫返回結(jié)果;
- 數(shù)據(jù)庫返回結(jié)果后,后端服務(wù)接口組裝數(shù)據(jù),生成csv文件,并返回給前端瀏覽器。在這個過程中,用戶在瀏覽器端一直處于等待狀態(tài)(瀏覽器左下角可能會有提示文字:等待服務(wù)器響應(yīng));
- 瀏覽器收到服務(wù)器返回的數(shù)據(jù)文件,彈出窗口,提示用戶選擇文件的保存位置,并執(zhí)行文件下載操作。
異步調(diào)用模式
在異步調(diào)用模式下,接口調(diào)用方給被調(diào)用方發(fā)出指令,但不會等待結(jié)果,如下圖所示。
一般耗時比較長的處理工作會采用異步調(diào)用模式,調(diào)用方會給被調(diào)用方提供一個回調(diào)接口,意思是“你處理時間比較長,等你處理完以后,再調(diào)用這個回調(diào)接口,通知我結(jié)果吧!”
我們依然以文件查詢下載為例來看看異步調(diào)用模式下的產(chǎn)品設(shè)計。在上一個案例中,數(shù)據(jù)查詢有可能非常耗時,如果讓用戶停留在前端頁面等待,體驗并不友好,所以我們考慮對功能進(jìn)行改進(jìn),通過異步調(diào)用模式重新設(shè)計功能,交互效果如下圖所示,具體執(zhí)行步驟如下:
- 用戶設(shè)置好查詢條件,點擊“下載”按鈕。
- 前端提示“下載任務(wù)已提交,請耐心等待?!焙蠖说南螺d任務(wù)調(diào)度管理程序開始執(zhí)行,在數(shù)據(jù)庫生成一條狀態(tài)是“處理中”的任務(wù)記錄,同時異步調(diào)用后端數(shù)據(jù)查詢服務(wù)接口,并提供回調(diào)接口。
- 后端服務(wù)接口拼寫SQL語句并執(zhí)行,數(shù)據(jù)庫返回結(jié)果后,程序?qū)?shù)據(jù)處理成csv格式,保存在服務(wù)器,并調(diào)用回調(diào)接口,后端服務(wù)接口程序執(zhí)行結(jié)束,將任務(wù)狀態(tài)更新為“成功”,并提供數(shù)據(jù)下載的鏈接。
- 如果后端服務(wù)接口長時間沒有得到數(shù)據(jù)庫返回結(jié)果,超過規(guī)定時間后,下載任務(wù)調(diào)度管理程序會將任務(wù)狀態(tài)更新為“失敗”。
希望本文能夠幫助你進(jìn)一步感受技術(shù)原理與產(chǎn)品設(shè)計方案的相關(guān)性。
插播一條廣告
大家好,我是《決勝B端》作者楊堃,曾在VIPKID任產(chǎn)品總監(jiān)一職。在工作中,遇見有很多優(yōu)秀的B端產(chǎn)品經(jīng)理,但缺少體系化、針對B端產(chǎn)品的實操訓(xùn)練,在成長中走了許多彎路。
我努力將自己多年做B端產(chǎn)品的經(jīng)驗提煉總結(jié)出來,和起點學(xué)院聯(lián)合打造了一門B端產(chǎn)品體系課——《To B產(chǎn)品實戰(zhàn)訓(xùn)練營》希望能給需要的同學(xué)一些實質(zhì)性的幫助。
幫助大家構(gòu)建B端產(chǎn)品知識體系脈絡(luò),掌握B端產(chǎn)品建設(shè),從業(yè)務(wù)診斷、需求分析,到抽象建模、設(shè)計落地的全過程的方法思路,最終直接應(yīng)用于工作實踐。
掃碼即可報名,還可為大家爭取到的專屬優(yōu)惠~
立即搶座,報名成功后即可領(lǐng)取詳細(xì)課程資料!
#專欄作家#
楊堃,公眾號:PM楊堃(ID:pmYangKun)。人人都是產(chǎn)品經(jīng)理專欄作家,《決勝B端》作者,11年互聯(lián)網(wǎng)研發(fā)、產(chǎn)品設(shè)計經(jīng)驗,曾就職于傳統(tǒng)外資保險公司、百度,現(xiàn)就職于VIPKID。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
清晰~
是的,真的寫的太清晰了,厲害啊
B端產(chǎn)品對技術(shù)的要求很高嘛[捂臉]
通過案例,很好理解!
雙十一才把你的書買了