作者:性感超人
轉發鏈接:https://mp.weixin.qq.com/s/KT1TAcCUMtvxkgMNoSuUFQ
云開發(Tencent Cloud Base)
做前端的同學基本上或多或少都接觸過小程序,但是,接觸過小程序的同學不一定接觸過云開發
普及一下
云開發是一種典型的 Serverless 架構的實現方式,這里可能還有同學對 Serverless 不熟悉
我們再把這個詞拆開,Server(服務器) less(不重要),可以理解為“無服務器”
試想一下,大多數公司和開發者在開發應用時和部署服務時,無論是選擇公有云還是自建數據中心,都需要提前考慮服務器、存儲和數據庫等需求,并且需要花費時間精力在部署應用、依賴。那么是否有一種架構可以幫我們節省這部分的成本呢?有,就是我們的 Serverless(無服務器)架構
具體來說,Serverless 架構是指由第三方服務商負責后端基礎結構的維護,以服務的方式為開發者提供如數據庫、消息、身份驗證等功能,架構的目的就是要讓開發人員只需要專注業務本身
現在我們在回到小程序云開發本身,云開發官方封裝了云函數、存儲、云數據庫的能力,一個函數調用,直接就實現了鑒權、文件上傳、更新數據等最最常用的功能
兩個字來說,就是真相
我們以一個更具體的功能來說
傳統模式下我們想要調用微信登錄,需要將code傳給服務端,服務端將code拿去微信服務換取用戶信息,自動存儲,更新
而使用云開發時,我們只要調用一個api,沒看錯,就是一個api,一行代碼完事
我們看下圖對比一下
跨賬號環境共享
小程序的云開發一直都是一個Appid對應一個獨立云環境,這個怎么理解呢?
還是以實際場景舉例,比如你有A,B,C三個小程序產品,你的某些數據可能需要共享的,如用戶信息共享,商品信息共享
這個在發文前小程序云開發是沒有這個能力處理的,所以想要實現要么就是自建共享數據服務,要么就是直接棄用云服務
好在今天它來了
云開發支持跨賬號環境(資源)共享,也就是一個小程序的云開發資源可以授權給其他小程序 / 公眾號使用
開通方式也很簡單,只需要在云開發的后臺進行給相應的小程序 / 公眾號授權即可,如下圖
公眾號環境打通
細心的同學可能已經發現了,上面有提到公眾號
What? 公眾號也有云服務了嗎?
是滴,這次更新云開發打通了公眾號體系,公眾號只要小程序給開通授權,再引入云開發的Web sdk 就可以直接使用小程序的云服務
對我們來說有什么好處
- 資源復用
云開發小程序所有資源都可以在web端復用
- 能力復用
云開發小程序所有能力都可以在web端復用(如你花兩個星期寫好的一個全是bug的云函數)
更直觀的感受,比如我們之前 jssdk 的簽名方式
wx.config({
appId: '公眾號 AppID', // 必填,公眾號的唯一標識
timestamp: res.timestamp + '', // 必填,生成簽名的時間戳
nonceStr: res.nonceStr, // 必填,生成簽名的隨機串 signature: res.signature,// 必填,簽名 jsApiList: ['JS API 名'] // 必填,需要使用的JS接口列表
})
現在我們只需要這樣
const res = await cloud.getJSSDKSignature({
url: '要簽名的網頁 URL'
})
靜態網站托管
這個詞相信大家已經很熟了
當我們想布署一個靜態的網頁應用,博客,手頭上暫時又沒有域名,服務器的時候,我們可以將靜態網站托管到第三方平臺,比如同性交友github
那么小程序云開發的靜態網站托管跟其它的有什么不同嗎?
原則上沒什么不同,但作為微信生態的一部分,在微信中有著天然優勢
比如:
- 小程序 webview
小程序不用配置業務域名即可在打開云開發靜態網站托管的域名(僅支持能夠使用標簽的小程序)
- 免鑒權直接打開小程序
非個人主體的認證的小程序,使用靜態網站托管的網頁,可以免授權跳轉任意合法合規的小程序
寫到這里,小編突然邪魅一笑,是不是可以用靜態網站托管做一個微信小程序的應用分發,然后躺著掙流量錢
最后
雖然吹了一波云開發,但還是得給個中肯建議
個人項目、功能簡單的小程序可以嘗試使用,那是真香
規模稍大以及企業級項目現階段不建議完全使用,可按需混合使用