一次真正意義上的低成本技術(shù)架構(gòu)升級(jí)。
項(xiàng)目背景
衡東點(diǎn)貨網(wǎng)是根據(jù)物流行業(yè)發(fā)展趨勢及國家政策引導(dǎo)開發(fā)的網(wǎng)絡(luò)貨運(yùn)平臺(tái),其主要功能承載“車貨信息發(fā)布、匹配、運(yùn)費(fèi)支付與發(fā)放、信用管理等”。
而關(guān)于項(xiàng)目的開發(fā)人員組成,長期以來僅僅只是“核心開發(fā) 2 人 + 實(shí)習(xí)開發(fā) 2 人“的規(guī)模,在支撐日常的業(yè)務(wù)迭代方面力有不逮。同時(shí),結(jié)合 2020 年網(wǎng)絡(luò)貨運(yùn)平臺(tái)政策的調(diào)整,點(diǎn)貨網(wǎng)作為網(wǎng)絡(luò)貨運(yùn)平臺(tái),我們的移動(dòng)端 App 內(nèi)需嵌入監(jiān)管平臺(tái)的 SDK 插件,從而日常業(yè)務(wù)運(yùn)營數(shù)據(jù)能夠與監(jiān)管平臺(tái)的系統(tǒng)打通,統(tǒng)一管理規(guī)范。
難點(diǎn)出現(xiàn)了。
因現(xiàn)有的開發(fā)團(tuán)隊(duì)組成主要以 Java 工程師為主,同時(shí)能夠?qū)尤?SDK 的開發(fā)僅兩位,開發(fā)資源突然捉襟見肘。而在原有的工程中,存在 Uni-App 的選型,在缺少對(duì)方技術(shù)團(tuán)隊(duì)支持的情況下,要我們現(xiàn)有團(tuán)隊(duì)實(shí)現(xiàn)原生 SDK 的接入頗有難度。同時(shí)考慮到后續(xù)“點(diǎn)貨網(wǎng) App”自身需具備接入原始 SDK 的能力,因此我們的視角開始轉(zhuǎn)向了“如何保障項(xiàng)目順利完成聯(lián)調(diào)測試,并提升自有 App 的健壯性”。
我們開始篩選市面上各類跨平臺(tái)的 App 開發(fā)技術(shù),在此期間對(duì)比了 Uni-App、Weex、Flutter、mPaaS 等跨平臺(tái)開發(fā)框架。
作為一名 Java 開發(fā),以上各跨平臺(tái)開發(fā)框架的對(duì)比僅作為第一印象。針對(duì)各框架的優(yōu)劣對(duì)比沒有展開深度分析,僅適用于大家在現(xiàn)有項(xiàng)目/工程中應(yīng)對(duì)特定需求的技術(shù)選型參考。
因個(gè)人目前只具備 Java 和 Vue.js 的開發(fā)能力,無法在短時(shí)間內(nèi)快速掌握一門全新的開發(fā)語音或原生 UI 組件開發(fā)的能力,但因業(yè)務(wù)要求我們務(wù)必要徹底提升 App 的健壯性,因此團(tuán)隊(duì)決定將 Uni-App 替換為 mPaaS。
接入過程回顧
作為一名 Java 開發(fā),對(duì)于 Vue.js 的語法還算熟悉,因此我在 2019 年 8 月起開始接觸并測試 mPaaS 的框架能力,尤其是小程序容器的部分,同時(shí)在這期間開始了解安卓開發(fā)的相關(guān)知識(shí)。
2020 年 6 月開始,我開始嘗試獨(dú)立接入 mPaaS 小程序,針對(duì)點(diǎn)貨網(wǎng) App 進(jìn)行功能遷移并正式接入監(jiān)管 SDK 插件。
由于在正式使用之前,我已了解到 mPaaS 產(chǎn)品的具體特性,也了解到 mPaaS 不同版本之間開發(fā)配置存在一定差異,最終我們決定直接基于“mPaaS 小程序 Demo”實(shí)現(xiàn)點(diǎn)貨網(wǎng)的基礎(chǔ)功能,并在此基礎(chǔ)上針對(duì)功能進(jìn)行調(diào)整,以滿足自身業(yè)務(wù)特性的需要。期間也有遇到一些小問題,在 mPaaS 研發(fā)團(tuán)隊(duì)的支持下得以順利解決。
我們也建議大家,如果是初次接觸 mPaaS,務(wù)必要針對(duì)官方文檔提供的步驟,結(jié)合現(xiàn)有的 Demo 進(jìn)行測試,避免因技術(shù)框架兼容性導(dǎo)致各類異常錯(cuò)誤。
最終,得益于 mPaaS 小程序的不斷升級(jí)迭代,點(diǎn)貨網(wǎng) App 的小程序組件接入和更新也變得愈發(fā)簡單,技術(shù)門檻被極大地降低優(yōu)化。
回顧第一版點(diǎn)貨網(wǎng) App 接入 mPaaS 小程序容器的場景,當(dāng)時(shí)我們團(tuán)隊(duì)只有兩位技術(shù)開發(fā),另外一位同學(xué)還需要兼顧運(yùn)維和其他開發(fā)事項(xiàng),因此實(shí)際上真正開發(fā)的只有一個(gè)人。
面對(duì)這樣的情況,我們只能選擇冒險(xiǎn)。但本質(zhì)上,我們實(shí)際上信任的還是 mPaaS 具備原生應(yīng)用與小程序兼容的框架能力,以及 mPaaS 技術(shù)團(tuán)隊(duì)的支持響應(yīng)速度。
我們選擇現(xiàn)有的 App 直接接入 mPaaS 進(jìn)行開發(fā),為了加快業(yè)務(wù)的迭代速度,第一版點(diǎn)貨網(wǎng) App 中我們只包含原有 App 的核心功能和監(jiān)管 SDK 能力,并同時(shí)根據(jù)實(shí)際業(yè)務(wù)需求完成迭代。
目前,點(diǎn)貨網(wǎng) App 基于 mPaaS 小程序,已成功實(shí)現(xiàn)從歡迎頁啟動(dòng)后自動(dòng)進(jìn)入小程序,并直接調(diào)用自定義 API 實(shí)現(xiàn)歡迎頁面銷毀和安卓端權(quán)限校驗(yàn)的功能。預(yù)計(jì)八月下旬,我們將正式上線,替換原有的 App 為客戶提供服務(wù)。
價(jià)值沉淀
回顧接入 mPaaS 小程序的歷程,我們也受益良多。對(duì)于 Java 開發(fā)同學(xué)而言,我們不再需要專門學(xué)習(xí)安卓的 UI,用熟悉的 HTML 即可直接進(jìn)行頁面開發(fā),真正地以較低成本進(jìn)行技術(shù)架構(gòu)的升級(jí)。
而我們的 Web 端與小程序的網(wǎng)絡(luò)請(qǐng)求全部使用相同的框架,因此 Web 端已開發(fā)完成的業(yè)務(wù)能夠快速地遷移至 mPaaS 小程序中,只需簡單的調(diào)整即可滿足 mPaaS 業(yè)務(wù)邏輯的處理需要,從而避免業(yè)務(wù)邏輯代碼重復(fù)編寫,保證雙端業(yè)務(wù)邏輯一致,降低多人協(xié)作中業(yè)務(wù)理解差異導(dǎo)致項(xiàng)目實(shí)現(xiàn)不一致的問題。
實(shí)現(xiàn) mPaaS 接入后,只有在原生 SDK 插件變更時(shí)或增加時(shí),我們才需要針對(duì) App 進(jìn)行更新。像一般小程序的功能調(diào)整、變更、升級(jí),均可以實(shí)現(xiàn)用戶無感知升級(jí),避免對(duì)用戶的打擾,同時(shí)也能充分滿足我們業(yè)務(wù)快速迭代的訴求。
未來展望
作為一名非專業(yè)的 App 開發(fā),我們也由衷希望 mPaaS 能夠推出插件市場或者平臺(tái),為開發(fā)者直接提供如人臉核身、圖片識(shí)別、手機(jī)號(hào)碼校驗(yàn)等通用基礎(chǔ) API 服務(wù)或者功能。
開發(fā)者的訴求實(shí)際上很簡單,如果能專注于業(yè)務(wù)的需求開發(fā),而不是重復(fù)地接入通用化的能力,對(duì)于個(gè)人及業(yè)務(wù)的成長都具有一定價(jià)值。
未來“點(diǎn)貨網(wǎng) App”將繼續(xù)依托 mPaaS,利用現(xiàn)有的移動(dòng)端組件能力幫助 App 持續(xù)升級(jí)。以客戶的需求為導(dǎo)向,結(jié)合實(shí)際業(yè)務(wù)隨取,為客戶提供簡單、便捷和實(shí)用的 App 體驗(yàn)。對(duì)于“點(diǎn)貨網(wǎng) App”而言,我們同時(shí)也保持開放,希望能夠跟更多開發(fā)者一起交流接入、使用 mPaaS 過程中遇到的問題,和大家一起共建 mPaaS 的開發(fā)者生態(tài)。
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
(圖片來源網(wǎng)絡(luò)侵刪)
發(fā)表評(píng)論
2024-06-21 13:24:52 · 來自222.58.121.19回復(fù)