<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

前后端數據接口協作提效實踐

倩倩 ? 來源:OSC開源社區 ? 作者:OSC開源社區 ? 2022-08-31 16:44 ? 次閱讀

導讀

introduction

在大部分場景中,前后端可以在開發前約定好數據接口,雙方能夠圍繞約定并行地完成開發和自測。然而在大型系統中一些后端模塊有時并非直連前端,在它們之間可能包含一些其它模塊的處理過程,為了保證數據真實有效,前端需要搭建整套環境來調試渲染效果,導致效率和研發體驗不斷劣化。本文主要介紹百度商業前端團隊結合接口平臺和數據直達能力優化前后端協作效率的嘗試,有效的提升了團隊協作效能。

一、實踐方案

GEEK TALK 我們的實踐主要分為兩大階段:

1. 協作提效;

2. 質量保障&體驗優化。

其中協作提效包括基礎能力建設和協作模式升級落地;質量保障&研發體驗是在協作提效的基礎上,對業務質量保障和極端場景所遇到的問題提出的一些解決方案。

45c2a93e-2862-11ed-ba43-dac502259ad0.png

二、數據直達能力

GEEK TALK 我們團隊所維護的后端模塊是一個BFF層,負責適配上游和前端模塊的數據,和前端業務聯系非常緊密。然而由于該層和前端之間還包含了一些策略和聚合的處理邏輯,大家在開發自測過程中沒辦法直接使用樁數據來預覽效果,前端為了調試功能只能維護多套環境,除去環境搭建本身需要消耗大把時間之外,模塊連通性排查、資源協調,環境更新都會影響前端的工作效率。 為了減少維護環境帶來的精力消耗,我們在實踐初期嘗試過多次環境管理優化,效果都不是很理想,一方面有限的環境資源始終沒辦法很好地滿足頻繁迭代的需要,另一方面環境提供方也疲于應對各種各樣的問題,所以我們就想能不能不再維護線下環境,而是將開發測試的工作轉移到線上環境上去進行,也就是讓后端能夠同時處理線上和線下數據請求,使前端在連接線上環境時看到線下數據的渲染結果。 基于這個思路,我們在后端隔離出一套旁支邏輯定時地從Redis拉取線下物料數據和對應的設備信息,其中設備信息是某臺手機或者某個瀏覽器唯一id,當這些設備所對應的請求到達時,后端就把它當作一個特殊請求替換原有請求成線下數據,接著繼續之后的處理過程,前端只需要將數據和設備信息寫入到Redis就能接收到線下數據的處理結果,這樣前端就像在使用一套始終保持最新版本的常駐環境,不會再被各種各樣的環境維護問題消耗精力,雙方都能在協作過程中更關注業務邏輯本身。

45f641c2-2862-11ed-ba43-dac502259ad0.png

三、升級協作模式

GEEK TALK 借助數據直達能力,我們成功解決了環境維護困難的問題,大幅地提升了聯調階段的效率,但其實我們在開發階段的協作仍然存在著一些問題。在能力建設初期我們只支持了請求數據的替換,前端沒辦法在后端代碼上線之前開始開發,這樣串行的協作模式顯然是有問題的,所以我們就想能不能基于數據直達能力擴展出一套常規的樁服務。 為了實現樁服務,我們在需要作為樁輸出給前端的數據上添加了特殊標識,當后端識別到攜帶特殊標識的數據請求時就會跳過后續的處理邏輯,直接返回結果給下游模塊。這種替換返回的模式能夠讓后端在開發前就將線下樁數據交付給前端使用,使前后端能夠并行協作。

4614474e-2862-11ed-ba43-dac502259ad0.png

為了減少學習和操作成本,我們將以上所介紹的能力封裝成平臺提供給團隊使用,后端可以按照項目為維度編輯和交付數據,前端可以拿這些數據去和設備做連接,然后直接在app上刷新就可以看到效果。

4623cf0c-2862-11ed-ba43-dac502259ad0.png

四、數據分級

GEEK TALK 為了改造前后端協作模式,我們在開發過程中使用的其實都是樁數據,這樣可能會導致數據和最后真實邏輯所輸出的結果存在差異,這些差異可能會暴露到線上影響業務功能,所以如果缺少有效的措施去約束數據使用的話,那么質量風險會變得難以控制。 為此,我們將數據的使用根據規則和應用場景劃分成三種類型:手動生成、線下后端生成、線上后端生成。

46456ac2-2862-11ed-ba43-dac502259ad0.png

可以看到,數據的約束規則隨著項目的推進是逐步收緊的。在開發前期后端能使用編輯生成出的樁數據快速交付給前端,讓前端完成單模塊開發自測;在聯調階段,我們的數據是由后端所開發完成的代碼邏輯生成而來的,由于這部分數據需要保證一定真實性,所以不再支持編輯,這樣數據就能夠匹配上后端即將上線的邏輯;而在后端上線完成之后,前端能夠從線上檢索系統采集到真實物料數據,通過掃碼等方式進行效果預覽,這樣同時從數據和代碼邏輯兩方面保證了真實性。 通過上述對數據分級的規劃,我們保證了協作過程在高效并行運轉的同時,始終遵循一套流程標準,能夠有效地保障了業務的交付質量。

46626ea6-2862-11ed-ba43-dac502259ad0.png

五、優化平臺體驗

GEEK TALK 經過前面三個步驟的優化,我們在大部分的項目中已經能讓前后端解耦協作,然而在一些復雜項目中這套流程反而會降低工作效率,這是因為復雜項目往往需要覆蓋的功能點更多,數據組合也相應的更多,我們發現部分項目所需要的數據條數甚至超過兩百條,這樣后端就要花費大量的時間和精力去錄入和編輯數據,在這種極端需求下數據準備時間就成為了效率瓶頸,使得研發體驗急劇下降。 為了解決這個問題,我們圍繞“片段”概念支持了對數據批量編輯的功能,可以讓后端在編輯數據的過程中,將編輯的操作以“片段”的形式保存下來,每一個“片段”包含編輯的位置和值,這些“片段”可以繼續應用到多個數據上,這樣編輯工作就從多次變成一次,大大減少了重復工作量。

4688b4a8-2862-11ed-ba43-dac502259ad0.png

同時,由于前端需要頻繁對同一個功能進行例如版本兼容、標題長度兼容等細分情況的驗證,為了更好的支持這種需求,我們支持了“片段”的版本的功能,也就是在保持“片段”操作位置不變的前提下,為“片段”賦予不同的值,前端可以通過切換“片段”的不同版本,快速拿到同個功能下攜帶不同細節的數據去快速地驗證一些兼容效果。

46b089a6-2862-11ed-ba43-dac502259ad0.png

六、總結

GEEK TALK 前后端數據接口協作升級使我們的團隊能夠更穩定高效地完成產品迭代,團隊的項目的平均交付時間減少了50%以上,目前已經有上千次的業務項目基于這套方案完成了開發測試和線上回歸工作。我們也在持續不斷地探索在如產品視覺驗收、銷售問題驗證等其它方面落地的可能性,希望能在更多的場景下提升團隊的協作效能。

END

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2528

    瀏覽量

    46730
  • 數據接口
    +關注

    關注

    1

    文章

    73

    瀏覽量

    17766

原文標題:前后端數據接口協作提效實踐

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    模擬前端和后端的區別

    模擬前端和模擬后端在電子系統設計中各自扮演著重要的角色,它們之間有著明顯的區別。
    的頭像 發表于 03-15 15:59 ?345次閱讀

    模擬后端是什么意思

    模擬后端,在軟件開發和測試領域,通常是指使用工具或技術來模擬實際后端服務的行為。這樣做的主要目的是在項目開發過程中,當后端服務還未就緒或暫時無法訪問時,前端或其他依賴后端的系統能夠繼續
    的頭像 發表于 03-15 15:58 ?307次閱讀

    什么是接口測試?如何開展接口測試

    接口其實就是前端頁面或APP等調用與后端做交互用的,有朋友會問,我的功能測試都測好了,為什么還要測接口呢?
    發表于 03-14 14:15 ?190次閱讀
    什么是<b class='flag-5'>接口</b>測試?如何開展<b class='flag-5'>接口</b>測試

    詳解PyTorch在MPS后端的新特性

    大家好,我叫Kulinseth,我在蘋果的MPS團隊工作,今天我將討論PyTorch中MPS后端的改進。接下來,我將介紹MPS后端進入Beta Stage的新功能。我們添加了一些新功能,如支持分析器、自定義內核和MPS開發者API,這些都是MPS
    的頭像 發表于 12-15 10:57 ?1422次閱讀
    詳解PyTorch在MPS<b class='flag-5'>后端</b>的新特性

    芯片設計分為哪些步驟?為什么要分前端后端?前端后端是什么意思

    芯片設計分為哪些步驟?為什么要分為前端后端?前端后端分別是什么意思? 芯片設計分為前端和后端兩個主要步驟。前端設計由邏輯設計和驗證組成,后端設計則包括物理設計與驗證。這樣的分工有利于更
    的頭像 發表于 12-07 14:31 ?2287次閱讀

    Standard cell是怎么應用到我們的后端設計中的呢?

    Standard cell,標準單元,或者簡稱cell,可以說是數字芯片后端最基本的概念之一了,甚至可能沒有接觸過后端的同學也有所耳聞?
    的頭像 發表于 12-04 11:44 ?468次閱讀

    基于springboot和vue框架的Java

    和Vue項目的環境,并展示從前端到后端的完整開發流程。接著,將重點關注前后端分離的開發模式,并介紹如何通過RESTful API進行數據交互。最后,將分享一些實踐中的經驗和技巧,以及對
    的頭像 發表于 12-03 15:15 ?648次閱讀

    springboot前后端交互流程

    Boot 進行開發時,前后端交互是一個非常重要的部分,本文將詳細介紹 Spring Boot 前后端交互的流程。 前后端交互的基本原理 在前后端交互的過程中,前端負責向
    的頭像 發表于 11-22 16:00 ?1265次閱讀

    基于Django+Vue的前后端分離開發教程

    難受的,那就是使用Django自帶的模版,這種通常需要自己利用HTML+CSS+Jquery的方式總感覺是上一個時代的做法,前后端分離無論對于開發效率、多端支持等等都是很有好處的。 所以,本文希望通過一個簡單的demo,講一講基于Django+Vue的前后端分離開發,將
    的頭像 發表于 11-01 09:22 ?567次閱讀
    基于Django+Vue的<b class='flag-5'>前后端</b>分離開發教程

    后端JWT接口認證的操作流程

    為了反爬或限流節流,后端編寫接口時,大部分 API 都會進行權限認證,只有認證通過,即:數據正常及未過期才會返回數據,否則直接報錯 本篇文章以 Django 為例,聊聊
    的頭像 發表于 10-31 11:20 ?373次閱讀

    IC后端概述(下)

    本節介紹后端處理的剩余部分,上節我們講到floorplan和placement。后面就到了CTS階段。
    的頭像 發表于 08-31 14:31 ?2045次閱讀
    IC<b class='flag-5'>后端</b>概述(下)

    構建ARM NN自定義后端插件21.08版教程

    Cortex-A CPUs、馬里-GPUs和Arm ML 處理器上運行工作量。Arm NNNN還允許您撰寫自己的自定義后端與第三方設備接口,如下圖所示:圖2-1:數據流向和來自神經網絡應用程序的流程。
    發表于 08-22 07:27

    29.6.10 前后端聯調

    開發代碼應用程序
    充八萬
    發布于 :2023年07月20日 19:35:18

    17.5.1 前后端分離介紹

    代碼程序開發
    充八萬
    發布于 :2023年07月19日 18:07:02

    Splashtop如何增強教育協作

    。 Splashtop是遠程訪問軟件的領導者,提供強大的工具來增強協作學習體驗。無論位置或設備如何,這種連接、溝通和協作的能力極大地改變了我們對教育的看法和實踐方式。 在這篇博文中,我們探討了Splashtop遠程訪問解決方案在
    的頭像 發表于 07-08 09:20 ?283次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>