「在紅海中博殺是沒有前途的,所有的成功企業都是不同的。」這是 Paypal 創始人 Peter Thiel 在作品《從 0 到 1》中寫下的結論。
過去網際網路產品的快速發展得益於人口紅利,前幾年只要把握好流量就可以實現產品增長,而今天,用戶說產品好才是增長的核心,市場已從流量驅動轉為創新驅動。APP 作為用戶接入移動網際網路世界的橋梁和入口,無論對於傳統企業還是網際網路企業,都是市場營銷的重要戰場。但是,傳統的 APP 開發模式的門檻高、成本高、開發周期長、無法快速迭代,很難在應用交付上有突破性創新。
2017 年 1 月,微信小程序正式上線。小程序是微信基於 xml 和 js 定義的一套標記語言、全新的生態、一個輕 OS,開發工具和 UI 框架都是騰訊自己做的,它依附微信、無需下載,也是一座流量富礦。
一、傳統 APP 開發 vs 小程序開發
儘管,大部分團隊已經意識到創新和高效很重要,但卻依舊難以」敏捷「起來。在傳統 APP 開發方式下,應用交付需要經歷這樣的過程:
一個 APP 從 idea 到上架商店,要經歷 8 個步驟:設計流程設計原型設計 UI前端代碼後端伺服器搭建後端代碼後端部署測試上架。由於是代碼級開發,開發和測試周期都很長,成本高,調試出錯率也高,開發好的應用也需要一定時間磨合才能穩定。在這個過程中若需要使用外部商業化 API,還需要支付昂貴的費用。
過程中參與的人員至少包括 5 個人:Android + iOS + 後臺 + 產品經理 + 美工。這對開發人才的要求很高,分別需要精通程式語言、資料庫等。無論是物理託管,還是雲主機維護,都需要投入較多人力物力,成本無上限。
前後端聯調、資源存儲、部署等操作繁雜,上線流程耗時長。
上線後需時刻關注環境運行情況,且由於維護時代碼級修改導致產品新問題出現,調試過程也非常麻煩。
這些因素導致各環節和部門總體的效率不高,包括持續發布能力低、需求響應周期長、交付吞吐率低、交付過程質量低、交付質量低,業務部門提出的創新性需求也很難及時響應。
微信小程序的交付過程是這樣的:
一般小程序從 idea 到發布,也要經歷 8 個步驟:安裝微信開發者工具創建一個小程序編譯前端代碼後端伺服器搭建後端代碼後端部署發布。小程序框架本身所具有的快速加載和快速渲染能力,加之配套的雲能力、運維能力和數據匯總能力,可以釋放開發者的精力。且在語言上,小程序的前端開發學習成本較低。
過程中依舊需要前端和後端開發的參與。
提供豐富的微信原生 API,調用微信能力比較方便。相對於傳統 APP 開發,微信小程序官方的開發文檔較為豐富,開發語言門檻低,從組件到 API 都很全面,開發難度適中。且網絡上有豐富的開源項目,方便開發者獲取和比較。
再看用雲開發構建小程序的過程:
從 idea 到上線,需要經歷 5 個步驟:安裝微信開發者工具新建一個模板小程序開通雲開發服務編譯發布,且整個過程為可視化操作,只需寫核心邏輯代碼即可。
僅需 1 人即可完成開發。
平臺一體化,開發者無需關心伺服器搭建和管理;項目一體化,前後端可以在同一項目內開發和維護。
按請求數和資源的運行收費,投入按需付費。
如此看來,相對於大型網際網路公司來說,中小型企業更希望低成本、低人力投入、快速上線和迭代的產品,可以優先考慮通過雲開發構建小程序來承載。
二、為什麼開發小程序沒有繁重的後臺問題?
這幾年高頻的技術換新讓開發者又愛又恨,所謂的「學不動了」,不單單包括語言,框架、工具還有很多理念思維上的內容。但若學無所用,它的性價比就會下降。那麼,騰訊如何幫助開發者最大化實現技術先進、研發高效和投入成本低?
1、擁抱 Serverless 設計理念。 雲開發是一個入口,目標是為了讓開發者以更低的門檻,更小的成本接入雲計算服務,實現應用快速開發。同時這也是服務上 BaaS(後端即服務)+FaaS(函數即服務)的體現,尤其是雲函數的設計,可根據請求量彈性橫向擴展,開發者只需關注核心代碼,不再參與基礎設施架構設計。
2、從產品生態方面來說,雲開發和微信生態打通,技術擁抱產品生態,打通了客戶端和雲資源的鏈路,一個雲端服務支撐多端應用,實現一次開發,多端運行。
3、工具豐富,從資料庫,存儲服務,API 到雲函數,雲託管基本上涵蓋了所有的開發流程節點,每一個上手門檻都很低,只需瀏覽文檔對應模塊即可。
4、可視化程度高,雲開發正在朝著無代碼或者低代碼設計微信小程序的趨勢發展,這樣非開發人員可以直接設計應用,進一步降低門檻。
(傳統開發模式與雲開發模式的對比)
在傳統開發模式下,開發者需要更多關注文件存儲、備份、容災等,但是雲開發模式下就只需要關注與業務邏輯相關的資料庫、文件存儲、雲函數。目前,小程序開發主要採用雲開發的模式。
現在,我們整體對比下,實現同樣的功能,APP 開發者和小程序開發者需要解決的問題。
很明顯,如果一個全棧工程師沉浸在繁重的編程和運維上,那麼,遇到具體業務問題時,還怎麼有充足的精力和經驗來解決,面對新的需求還怎麼快速響應。
我們先不去討論全面自動化或零代碼有沒有可能,從這幾年的發展趨勢來看,擁抱 Severless、低代碼、可視化,已經穩穩抓住了程式設計師和企業技術架構的痛點。小程序雲開發已成為軟體開發效率提升的突破點,越來越多的業務需求可以得到有效解決。
三、哪些團隊適合使用小程序雲開發?
雲開發可以真正意義上實現前後端包攬的「全棧」,用在以下這幾個場景尤其合適:
1) 傳統企業 / 存量業務需要快速遷移上雲時,不希望改造代碼或重構業務的,雲開發可以提供免運維的後端雲服務,適用於傳統企業、存量業務;
2) SaaS 廠商需要多租戶隔離時,雲開發可以支持環境級別資源隔離,每個環境有獨立的一套後端雲服務;
3) 中小企業希望享受自動化運維和託管服務時,可以使用雲開發的後臺服務託管, 實現可視化操作,釋放運維壓力;
4) 初創企業或是企業內部創新孵化時,希望可以快速驗證商業模式,可以使用雲開發快速部署和上線
For example:
1、10 個月發布 349 次版本:微信讀書
微信讀書小程序繼承了微信讀書 APP 最核心的閱讀功能,並作為 APP 最核心的對外分享和運營渠道。上線 10 個月以來,微信小程序已發布 349 次版本,開發效率分別是對應的 APP 和 H5 的 4 倍與 2 倍,累計獲客數千萬,日均 PV 過千萬。
微信讀書為什麼用小程序雲開發?原因有三,一是團隊在小程序開發方面經驗不足,積累的 Node 框架也需更新,因此導致上線流程較為繁瑣,速度也不太可觀。二是團隊人力不足,這也是比較客觀也比較難解決的一個問題。三是考慮了性價比問題,雲開發要比自己搭建 Node 伺服器划算。
通過雲開發模式,微信讀書小程序的前端代碼和服務端代碼共存在一個項目中,同樣的技術棧、同樣的 IDE 環境,可以調試開發更高效。同時,雲函數支持動態擴容,可以完美支持瞬間增長的運營類業務。此外,雲開發還讓其團隊的分工和成員能力發生了顯著變化。以前其團隊按照前端開發、Node 開發和運維人員進行分工,現在前端負責全棧開發。團隊成員除了前端技術,還更關注服務性能和穩定性,資源利用率(如雲函數耗時、雲資料庫連接數等)。
微信讀書使用雲開發的具體邏輯如下圖,從小程序端獲取的數據通過雲函數、雲存儲等功能傳輸到 Server 後臺,並生成業務發展數據的報表,相當於一套從後臺到前端的完整服務。
2、1 人 2 周完成的億級項目:騰訊相冊
騰訊相冊的產品定位是幫助用戶在微信中能無限量存儲照片,快速與好友分享照片進行互動,對照片富媒體化編輯等基礎能力,讓用戶在微信場景點開即看。這裡有 4 個關鍵詞:存儲,分享,互動,富媒體化編輯。騰訊相冊小程序團隊僅投入 1 名前端開發工程師,2 周內就快速完成了「評論點讚」社交功能以及小程序內部二維碼的快速優化升級。
3、讓海外用戶訪問性能提升 42%
「境外遊禮包」是使用」微信「小程序的優惠平臺,只需掃店鋪海報上的二維碼或在 APP 上搜索小程序,即可獲取「超優匯率券「及「翻倍折扣券」等店鋪專享優惠券。「小程序·雲開發」還對數據訪問鏈路做了專門優化,使小程序的數據加載速度更快。藉助「小程序·雲開發」良好的網絡和數據加載性能,境外遊禮包小程序開發性能優於傳統模式 42%。
4、雲開發模式,不止於小程序
雲開發已經得到了很多開發者的認可。上線一年後,「小程序·雲開發」註冊帳戶數超過了 23 萬,服務了超過 50 萬開發者。這標誌著雲原生理念開始在國內有了大規模的應用落地。
在基礎能力之外,「小程序·雲開發」還正在進一步封裝騰訊雲、微信平臺的其他能力,提供擴展能力,包括 AI、音視頻、訂閱消息、微信支付等,讓開發者在更多業務場景中可以使用「小程序·雲開發」,打造更優質的小程序。