微信小程式開發平臺剛剛開放了一個全新的功能:雲開發。
簡單地說就是將開發人員搭建微信小程式後端的成本再次降低,此文剛好在此產品公測時,來快速上手看看都有哪些方便開發者的功能更新。
微信小程式一直保持一個比較穩定的節奏進行功能的開放與更新,不激進但是又不怠慢,就一直像微信產品的節奏一樣,而在生活中我們使用微信小程式的頻率也慢慢高起來,如 KFC 自助點個餐、下單一些較冷門的商品等等。
而我給大家免費更新的「微信小程式開發視訊教程」大綱也一直在修正與增加,從 40 集增加到 60 集,在雲開發釋出後,課程估計會更新到 80 集左右。各大平臺加起來已近 20w 的播放量,需要的同學可以免費觀看學習、指導。
1. 公測申請與開發工具更新
首先需要在雲開發文件的頁面中申請「雲開發」的公測許可權,我的是半天就收到郵件通知了。
然後需要下載 beta 版的開發工具,包含了雲開發的功能模組。
2. 專案初始化
按照官方的說法,可以通過直接新建一個官方的演示 DEMO 專案學習檢視,通過在新建專案時選擇「建立雲開發快速啟動模版」。
新建後的專案結構如圖左側所示,較之前的專案結構,多了雲端檔案儲存的本地對映。
3. 雲開發的功能
官方的說明如下:
目前提供三大基礎能力支援:
雲函式:在雲端執行的程式碼,微信私有協議天然鑑權,開發者只需編寫自身業務邏輯程式碼
資料庫:一個既可在小程式前端操作,也能在雲函式中讀寫的 JSON 資料庫
檔案儲存:在小程式前端直接上傳/下載雲端檔案,在雲開發控制檯視覺化管理
3.1 雲函式
雲函式是一段執行在雲端的程式碼,無需管理伺服器,在開發工具內編寫、一鍵上傳部署即可執行後端程式碼。
小程式內提供了專門用於雲函式呼叫的 API。開發者可以在雲函式內獲取到每次呼叫的上下文(appid、openid 等),無需維護複雜的鑑權機制,即可獲取天然可信任的使用者登入態(openid)。
開放了運用 Node.js 等框架編寫「後端」業務邏輯後,直接可以部署在雲平臺下,完全不需要去考慮域名、伺服器、打包釋出、運維等等瑣事,大家體會一下這樣的功能對於開發一些小型專案帶來的便利以及實惠。
3.2 資料庫
雲開發提供了一個 JSON 資料庫,顧名思義,資料庫中的每條記錄都是一個 JSON 格式的物件。一個資料庫可以有多個集合(相當於關係型資料中的表),集合可看做一個 JSON 陣列,陣列中的每個物件就是一條記錄,記錄的格式是 JSON 物件。
這樣的話,資料庫的儲存也不用考慮了,直接提供了一個類似於 NOSQL 一樣的資料庫,而且免費的儲存空間達到了 1G,足夠使用了。
3.3 檔案儲存
雲開發提供了一塊檔案儲存空間,提供了上傳檔案到雲端、帶許可權管理的雲端下載能力,開發者可以在小程式端和雲函式端通過 API 使用雲檔案儲存功能。
在小程式端可以分別呼叫 wx.cloud.uploadFile 和 wx.cloud.downloadFile 完成上傳和下載雲檔案操作。
這不就是直接給你提供了一個靜態檔案的 CDN 嘛,還是騰訊直接提供的,免費的容量直接達到了 5G,我想小型專案前期一般是用不完的。
4. 雲開發控制檯
如下圖所示,在開發工具的工具欄直接可以調起獨立的雲開發控制檯,圖形化管理起來也非常地方便。
5. 功能上手測試
我們就以官方的 DEMO 來看一下雲函式的執行過程。
上圖就是雲端定義的邏輯,上面的「後端」加引號就是因為在這裡還可以直接呼叫一些小程式的 API,不用自己處理一些額外的邏輯,如之前後端在不同的語言框架下,實現獲取 openid 的方法就完全不一樣。
定義好了雲函式後,右鍵可以上傳發布,釋出後就可以直接在前臺呼叫了。
開發起來真是無縫銜接,絲般順滑。
6. 結語
按照官方建立的 DEMO 模板專案就有很多演示學習的程式碼,大家感興趣可以直接去初始化專案後學習,這裡就不再多貼程式碼說明。
至於此功能釋出後對於小程式開發環境的推動,大家可以自己思考一下。我覺得這才是對於很多孵化專案的開發者最有推動力的官方大招了,省卻了域名備案、資料庫運維、伺服器運維、後端開發、打包釋出等等工作,一個小程式開發賬號下還可以建立兩個這樣的雲端後臺,不管是從執行效率、空間容量等方面,應該沒有比官方能優化的更好的第三方解決方案了。
我們的 DevOpenClub 社群中也開始孵化了一些微信小程式方面的專案,感興趣的朋友可以在那裡找到志同道合的朋友,利用閒暇的時間來實現一些自己的想法了,開發的成本已經非常非常低了。