極客大學架構師訓練營 系統架構 淘寶架構 第四次作業

作業:

一個典型的大型互聯網應用系統使用了哪些技術方案和手段,主要解決什麼問題?請列舉描述。

阿里巴巴淘寶的前後端技術方案

1.1淘寶整體架構

在這裏插入圖片描述
淘寶架構圖如何剖析,從外圍到內圍,從左到右。外圍都是用戶,數據的生產者,內部是數據的消費存儲者;左邊都是數據處理的源頭,右邊到達大數據平臺,是大數據的分析。經過大數據的分析,爲運營和產品提供優化方向,進一步提供更好的產品、商品、活動,提高GMV、DAU等。

  • 解決的問題:解決重複造輪子的問題。阿里巴巴曾經說過很多部門爲了5%的不同,重新開發了一套系統,這導致性價比很低。
  • 技術方案:催生出了中臺,中間件,微服務等公用的功能呢。共性的內容由中臺,中間件處理。
  • 手段:合併相同的部門,比如聚划算App、農村淘寶App,合併進了淘寶App。

1.2 淘寶App架構

在這裏插入圖片描述
淘寶APP通過插件的方式引入各個業務模塊,實現輕量級可插拔的系統。上半部分未業務部門模塊,通過下面的bundle模塊和基礎模塊組合而成,很像樂高,比如手機淘寶,聚划算,淘點點,農村淘寶等。下半部分分爲:Bundle爲公用的業務模塊,比如商鋪、購物車、商鋪詳情等;底層bundle爲基礎功能模塊,比如掃碼、路由、熱修復等。

在這裏插入圖片描述
單個Bundle內部架構,淘寶分爲多個App,比如淘寶、天貓、聚划算等。每個App的架構都是一樣的,分爲業務層、核心層、基礎層。

APP由URLRouter來解耦各個Bundle的互相引用。比如通過路由taobao://car可以訪問到購物車模塊,不管是Native還是H5都是用的同一個路由,通過參數區別調用Native還是H5,這樣子就可以通過Server端下發參數的形式,或者App內部策略來實現降級(比如Native crash 連續crash2次以後,這個頁面用H5打開)。並且不需要引入跟個類的頭文件,通過Protocol接口的方式實現。

  • 解決的問題:解決重複造輪子的問題。阿里巴巴有多款App,很多組件可以複用,比如購物車,訂單,搜索,商品列表,商品詳情,旺信聊天等。
  • 技術方案:組件複用,插件化開發。
  • 手段:框架以及殼工程(初始工程)由基礎架構部門出方案,組件庫由基礎架構部門,或者友部門共享。

1.3 Flutter架構

在這裏插入圖片描述
Flutter爲Google出品, 用Dart語言編寫,實現一次編寫,實現跨端運行iOS,Android。因爲React-Native是通過iOS WebKit的bridge,Android的V8引擎來解析H5,最後生成純Native代碼,性能多多少少有點被詬病。Flutter解決性能問題,並且兼容Google下一代Web操作系統。所以阿里巴巴、騰旭、字節跳動都早早的入局Flutter。

  • 解決的問題:App Native原生開發成本太高,維護成本高,開發速度慢。
  • 技術方案:Flutter 開發一次,最終是渲染爲Native原生組件,iOS、Android兩個平臺公用一套代碼。性能比較ReactNative 高。
  • 手段:通過橋接技術轉換爲native代碼。

1.4 大前端未來

在這裏插入圖片描述
Flutter這些跨端的技術,相對還有代碼維護的噩夢。比如很多老代碼都是推倒重來,現在Google,Microsoft都在大力收購無代碼編程公司。詳情可以參考下面鏈接。
https://www.softwaretestinghelp.com/low-code-development-platforms/

  • 解決的問題:Flutter這些跨端的技術,相對還有代碼維護的噩夢。比如很多老代碼都是推倒重來。
  • 技術方案:更細粒度的組件化工具,通過拖拽能實現功能。
  • 手段:減少代碼干預,降低犯錯誤的概率。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章