當前位置: 首頁 > 案例
别再糾結後端了,小(xiǎo)程序開(kāi)發這麽做
5003
時間:2019-11-25 17:12:00
文章發布:
在互聯網人口紅利見頂的大(dà)背景下(xià),小(xiǎo)程序成爲移動互聯網從業者們的布局重點。伴随着高頻(pín)率的功能上新,小(xiǎo)程序·雲開(kāi)發的技術逐漸成熟。

  2017 年,微信小(xiǎo)程序上線。通過「無需安裝、用完即走」的輕便形态,小(xiǎo)程序可以快速解決用戶的實際需求。在互聯網人口紅利見頂的大(dà)背景下(xià),小(xiǎo)程序成爲移動互聯網從業者們的布局重點。

  

  2018 年 9 月,小(xiǎo)程序·雲開(kāi)發正式上線,打通了小(xiǎo)程序前端與雲資(zī)源的鏈路,省去(qù)運維成本,幫助開(kāi)發者快速上線和叠代小(xiǎo)程序。這也标志(zhì)着 Serverless 理念開(kāi)始在國内有了大(dà)規模的應用落地。

  

  瘋狂的一(yī)年

  

  回望這一(yī)年,小(xiǎo)程序·雲開(kāi)發團隊收到最多的反饋就是:“爲什麽 XXX 功能還沒上,爲什麽 XXX 還不能支持。”不斷湧現的客戶需求推着團隊快速向前。

  

  2019 年 1 月,上線監控告警能力,提升産品保障性;

  

  2019 年 4 月,上線雲調用能力,進一(yī)步降低開(kāi)發小(xiǎo)程序門檻,提升研發效率;

  

  2019 年 5 月,新增智能客服解決方案,與即速等服務商(shāng)開(kāi)展合作;

  

  2019 年 7 月,上線預付費(fèi)能力,正式成爲商(shāng)用産品;

  

  2019 年 8 月,上線實時推送能力,切入小(xiǎo)遊戲引擎市場;

  

  2019 年 9 月,上線代金券和新套餐,支持企業用戶靈活購買;

  

  ……

  

  伴随着高頻(pín)率的功能上新,小(xiǎo)程序·雲開(kāi)發的技術逐漸成熟。

  

  雲開(kāi)發爲開(kāi)發者提供完整的原生(shēng)雲端支持和微信服務支持,弱化後端和運維概念,無需搭建服務器,使用平台提供的 API 進行核心業務開(kāi)發,即可實現快速上線和叠代,同時這一(yī)能力,與開(kāi)發者已經使用的雲服務相互兼容,并不互斥。

  

  那麽,小(xiǎo)程序·雲開(kāi)發如何讓前端開(kāi)發者無需考慮後端實現,專注于業務開(kāi)發呢?這就不得不提到小(xiǎo)程序·雲開(kāi)發提供的兩大(dà)能力:基礎能力及騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的增值能力。


  

  小(xiǎo)程序·雲開(kāi)發的基礎能力是依托微信生(shēng)态,深度定制高頻(pín)雲産品組件,提供便捷的、一(yī)體(tǐ)化的小(xiǎo)程序原生(shēng)基礎産品能力,目前包括雲函數、雲數據庫、雲存儲、雲調用等服務。

  

  雲函數:一(yī)段運行在雲端的代碼,無需管理服務器,在開(kāi)發工(gōng)具内編寫、一(yī)鍵上傳部署即可運行後端代碼。小(xiǎo)程序内提供了專門用于雲函數調用的 API。開(kāi)發者可以在雲函數内獲取到每次調用的上下(xià)文(appid、openid 等),無需維護複雜(zá)的鑒權機制,即可獲取天然可信任的用戶登錄态(openid)。并在開(kāi)放(fàng)了運用 Node.js 等框架編寫“後端”業務邏輯後,直接可以部署在雲平台下(xià),不需要去(qù)考慮域名、服務器、打包發布、運維等瑣事。雲數據庫:既可以在小(xiǎo)程序前端操作,也能在雲函數中(zhōng)讀寫的 JSON 數據庫,不再受限于關系型數據庫複雜(zá)的操作模式構建,數據管理上非常簡潔。最近,小(xiǎo)程序雲開(kāi)發新上線數據庫實時推送能力,它可以優化升級諸如聊天、棋牌類遊戲、訂單狀态同步等等很多長連接、實時交互場景下(xià)的開(kāi)發體(tǐ)驗,可以說,數據庫實時推送能力對于小(xiǎo)程序的功能完善上來說,有非常重要的意義。雲存儲:雲開(kāi)發提供了一(yī)塊文件存儲空間,提供了上傳文件到雲端、帶權限管理的雲端下(xià)載能力,開(kāi)發者可以在小(xiǎo)程序端和雲函數端通過 API 使用雲文件存儲功能。同時具備默認配置域名、無需自建 CDN 的特點。雲調用:打通雲函數來簡化鑒權,騰訊雲和微信兩邊有打通鑒權的功能,把鑒權的工(gōng)作自動化。

  

  而騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的增值能力,核心爲打通雲開(kāi)發與公有雲服務鏈路,提供豐富小(xiǎo)程序應用場景,并整合圖像識别、音視頻(pín)以及其它騰訊雲基礎産品的能力,通過模塊化一(yī)鍵部署至雲函數,不需要後台開(kāi)發,後續隻需要調用函數即可實現功能。

  

  不僅如此,騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的增值能力在進一(yī)步減少小(xiǎo)程序開(kāi)發技術需求的同時,以業務場景爲入口,借助雲開(kāi)發能力,不斷降低新技術的使用門檻。其中(zhōng),開(kāi)發者們最爲期待的當屬 AI 與小(xiǎo)程序的結合。

  

  AI 場景中(zhōng)落地

  

  當下(xià),AI 技術浪潮正改變我(wǒ)(wǒ)們生(shēng)活的方方面面,很多開(kāi)發者都有過在自己項目中(zhōng)使用 AI 技術的想法。然而由于入門 AI 的難度比較大(dà),并且上手時間較長,許多開(kāi)發者在小(xiǎo)程序研發籌備期就放(fàng)棄了。而在近日,小(xiǎo)程序·雲開(kāi)發上線 AI 增值服務,通過文檔或者代碼的形式,降低小(xiǎo)程序 AI 使用門檻,讓開(kāi)發者在研發中(zhōng)輕松調用 AI 服務,滿足不同小(xiǎo)程序業務場景的個性化需求。

  

  鄭州小(xiǎo)程序開(kāi)發公司認爲,在要求實時性較強的 AI 場景下(xià),因爲依賴強計算力,如果将原有的技術方案直接在小(xiǎo)程序本端運行,就會出現一(yī)些性能上的問題。那麽,針對此類問題,小(xiǎo)程序·雲開(kāi)發又(yòu)是如何解決的呢?

  

  首先,團隊會對項目進行技術評估,确保在微信小(xiǎo)程序框架下(xià)具可行性;其次應用測試中(zhōng)對性能進行評估,适配不同機型、不同設備上的内存限制以及 CPU 限制;最後在代碼層面上通過編譯等手段使用單一(yī)數據類型,減少運行時類型推斷與隐式轉換,加快執行效率。同時采用手動控制内存的方式,防止内存頻(pín)繁開(kāi)辟回收引起的性能與資(zī)源問題。

  

  目前,騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的增值能力已全面開(kāi)放(fàng)了增值服務 AI 智能圖像能力,其借助了騰訊雲人臉識别、人臉核身和人臉融合功能,通過雲開(kāi)發的雲函數和存儲,簡化素材存儲、配置拉取和服務調用 image-node-sdk 等功能,并爲企業提供定制化的解決方案,滿足不同企業對于小(xiǎo)程序功能的不同需求。

  

  以“傑尼亞何謂當代男士小(xiǎo)程序”爲例。對于爲奢侈品牌的定制化需求,在以往開(kāi)發的過程中(zhōng),D1M(第一(yī)秒) 電(diàn)商(shāng)科技總會爲每個品牌搭建獨立的環境,部署整套代碼,由于定制開(kāi)發居多,相對而言代碼複用率不高。如何在小(xiǎo)程序開(kāi)發的過程中(zhōng),以敏捷高效的方式實現具有趣味性的互動,成爲 D1M 在開(kāi)發該小(xiǎo)程序初期所面臨的最大(dà)痛點。在此背景下(xià),D1M 借助騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的“AI 濾鏡”增值服務,爲傑尼亞打造小(xiǎo)程序,并将繼續推進“人臉融合”功能上線。

  

  應用場景一(yī):新品 T 恤上線明星代言試穿,引導用戶濾鏡自拍并分(fēn)享

  

  在微信小(xiǎo)程序中(zhōng)每張中(zhōng)等質量的圖像原始數據量都在 2M 左右,受限于移動設備與運行環境算力和其他資(zī)源,如在小(xiǎo)程序本地處理即時對圖像進行計算處理及渲染,小(xiǎo)程序性能及穩定性将面臨巨大(dà)挑戰。

  

  這時,雲開(kāi)發首先将獨有的圖像處理算法移植到小(xiǎo)程序平台,實現了圖像的本地處理,減少上傳與下(xià)載網絡消耗。再加之雲開(kāi)發在性能與系統資(zī)源管控方面的優化,AI 濾鏡增值能力可使小(xiǎo)程序在 20-30ms 内,完成一(yī)張 480P 分(fēn)辨率的圖象處理和渲染,這也是騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的極具代表性的增值技術能力。

  

  别再糾結後端了,小(xiǎo)程序開(kāi)發這麽做

  

  别再糾結後端了,小(xiǎo)程序開(kāi)發這麽做

  

  圖片來自編輯實測傑尼亞何謂當代男士小(xiǎo)程序截屏

  

  基于 AI 濾鏡增值能力優越的性能,其不僅可以像傳統濾鏡服務一(yī)樣實現照片的處理,還可以在拍攝過程中(zhōng)實現實時的濾鏡效果預覽。AI 濾鏡技術對核心圖像處理 API 與集成自定義組件兩部分(fēn)進行插件封裝。其中(zhōng),集成自定義組件基于微信官方組件,封裝初始化、監聽(tīng)、處理、渲染、讀取等能力,做到了開(kāi)箱即用。細節上在微信官方組件的回調中(zhōng),小(xiǎo)程序會對攝像頭像數據以 30FPS 的幀率進行實時讀取,之後結合原始 API 中(zhōng)封裝的優圖 X-lab 濾鏡算法,對像素幀數據進行矩陣運算,最終渲染到 webgl 畫布中(zhōng),屏幕中(zhōng)呈現用戶帶有濾鏡效果的自拍圖像。

  

  應用場景二:模特試穿照片與用戶自拍的人臉融合(即将上線)

  

  小(xiǎo)程序·雲開(kāi)發的另一(yī)項 AI 增值能力——人臉融合,封裝了騰訊雲 AI 團隊已有的人臉融合技術能力,在實現函數内免鑒權調用的同時,對兩張人像進行臉部融合,進而輸出融合圖像。但如何獲取合适的 【圖像主體(tǐ)】 内容,成爲人臉融合面臨的一(yī)大(dà)挑戰。

  

  面對人臉融合場景難點,人工(gōng)進行預處理是萬無一(yī)失的辦法,但面對數據巨大(dà)的内容信息,基于可直接部署并使用的雲函數,并借助騰訊雲基于小(xiǎo)程序·雲開(kāi)發輸出的 AI 人臉特征分(fēn)析與檢測能力,就可以得到圖像寬高像素數量,以及圖像中(zhōng)人臉的位置、大(dà)小(xiǎo)、分(fēn)析屬性、質量等信息,根據這些信息就可以準确裁剪。而在雲函數的接入過程中(zhōng),其龐大(dà)集群的快速擴容能力,也足以 hold 住百萬級,甚至千萬級的高并發使用場景。


推薦閱讀:

開(kāi)發一(yī)個小(xiǎo)程序難嗎(ma)?

開(kāi)發商(shāng)城小(xiǎo)程序需要多少錢呢?

APP開(kāi)發和微信小(xiǎo)程序開(kāi)發的優勢區别在哪裏?