架構小談之美團外賣

2022-08-28 20:09:19 字數 931 閱讀 4010

美團外賣,大家都很熟悉,與我們的生活已經緊密相連了。今天有機會讀到了關於美團外賣架構的文章。都說打敗速食麵企業的不是另一家速食麵企業,而是先在的網際網路外賣公司,下面,根據自己讀了美團外賣框架介紹,談一談自己的美團外賣框架的一些認識。

好的架構源於不停地衍變,而非設計。對於外賣android客戶端的平台化架構構建也是經歷了同樣的過程。我們從考慮如何解決**復用的問題,逐漸的衍變成如何去解決**復用和平台化的兩個問題。而實際上外賣平台化正是解決兩端**復用的一劑良藥。我們通過建立外賣平台,將現有的外賣業務降級為乙個頻道,將外賣業務以aar的形式分別接入到外賣平台和美團平台,這樣在解決外賣平台化的同時,**復用的問題也將得到完美的解決。

平台化架構

經過了整整一年的艱苦奮鬥,形成了如圖所示的美團外賣android客戶端平台化架構:

從底層到高層依次為平台層、業務層和宿主層。

平台層的內容包括,承載上層的資料通訊和頁面跳轉;提供外賣核心服務,例如商品管理、訂單管理、購物車管理等;提供配置管理服務;提供統一的基礎設施能力,例如網路、、監控、報警、定位、分享、熱修、埋點、crash上報等;提供其他管理能力,例如生命週期管理、元件化等。

業務層的內容包括,外賣業務和垂直業務。

在構建平台化架構的過程中,我們遇到這樣乙個問題,如何長久的維持我們平台化架構的層級邊界。試想,如果所有的**都在乙個工程裡面開發,通過包名、約定去規範層級邊界,任何乙個緊急的需求都可能破壞層級邊界。維持層級邊界的最好辦法是什麼?我們的經驗是工程隔離。平台化的每一層都去做工程隔離,業務層的每個業務都建立自己的工程庫,實現工程隔離。同時,配套編譯指令碼,檢查業務庫之間是否存在相互依賴關係。工程隔離的好處是顯而易見的:

每個工程都可以獨立編譯、獨立打包;

每個工程內部的修改,不會影響其他工程;

但工程隔離帶來的另乙個問題是,同層間的業務庫需要通訊怎麼辦?這時候就需要提供業務庫通訊框架來解決這個問題。

業務庫通訊框架

美團外賣上線年度報告「 2021美團外賣年度味道」

程式設計客棧 www.cppcns.com 12月28日 訊息 昨日,美團外賣上線了 2021美團外賣年度味道 使用者可在美團或者美團外賣app搜尋 年度味道 查收年賬單。美團外賣年賬單為使用者總結了今年點外賣的總金額以及訂單數。同時,美團外賣還為使用者歸納出了特殊節日吃了什麼 點餐位址 備註資訊 ...

APP的案例分析 美團外賣

大一才開始用軟體訂外賣了,很方便 上手快只要註冊個賬號登陸即可,支付時自動跳轉到其他支付應用。嚴重的bug也沒有,只有之前一段時間通過首單可以刷優惠,之後也修復了。身邊的同學也很多都在用。方便省事,主要是不用去食堂排隊。給使用者帶來了什麼?省時 節省時間成本,特別是省去了排隊等待就餐的時間 省錢 優...

Android藍芽列印小票,仿美團外賣小票列印

自適應排版小票格式,一行兩列和三列輕鬆搞定,文字長短不用愁 先看一下效果圖 但像列印的小票排版樣式與細節這塊相對是比較粗糙,直接在 裡寫死的樣式,而大多數平台的小票排版都不太一樣,這裡就涉及到自定義排版,而我這裡主要講的就是小票列印的排版樣式了。我在demo中已經把排版封裝到 printutil,主...