版權聲明:本文由賀嘉原創文章,轉載請注明出處:
文章原文鏈接:https://www.qcloud.com/community/article/145
來源:騰雲閣 https://www.qcloud.com/community
最近2天,互聯網圈和技術圈的熱點話題非微信“小程序”莫屬。有些文章從產品角度探討哪些類型的服務適合做成應用號,也有直接發布內應用號的開發教程的。做為騰訊雲的技術布道師,我想換個不一樣的角度,從我熟悉和關注的移動開發技術棧的演進角度,講講移動開發技術下來可能會發生的變化,以及對於移動應用開發者可能帶來的三點重大影響。
HTML5在國內的流行與微信息息相關,一個小小的創業團隊用業余時間開發的“圍住神經貓”這樣一個輕游戲輕松就獲得了上億次訪問,做為一款現象級的產品直接拉動了國內企業與市場對於H5開發者的需求。核心的優勢在於開發過程的足夠輕量,但同時這樣輕的技術語言本身也不是完美無缺,“圍住神經貓” 這款游戲本身沒有建立自己的用戶體系,帶來的實際問題就是上億次的用戶訪問並未沉淀在這個創業團隊手上,成為他們真正的用戶資產。
React-Native做為Facebook開源的移動開發語言,基本的理念是能不能JavaScript類的語法做移動端的開發,開發者只要去寫一次代碼,就能同時在ios和Andriod兩類手機操作系統上運行,減少移動APP開發的工作量。
我們可以看到應用號應該是通過API的方式將部分系統級的權限和微信獨有的社交和支付接口開放給了應用號,同時實現了React-native設計的初衷,一次開發,兩端運行。應用號所提供緩存、文件操作和websocket等接口,讓騰訊雲上的移動開發者有機會把自己的“小程序”做的比H5游戲更重一些,這也意味着開發者可以更好地在微信應用號的平台上沉淀屬於自己的用戶資產。
圖1 移動開發技術棧的演進
微信應用號的開發語言是HTML標簽語言的子集,而且語言設計上有着React-Native的影子,有這兩種語言基礎的開發者學習應用號開發會更容易
今天,我在國內主流搜索引擎搜索“應用號開發“結果 2,660,000個,搜索”ReactNtive“ 結果 2,140,000個。結果也可以看出,已經流行了1-2年的react-native技術在熱度上比不上新出的應用號開發。我的預期是會有不少學React Native的人開始轉向應用號開發學習,沒有內測資格的會先學習微信服務號開發。
圖2 Html5-應用號開發語言-ReactNative三種語言接口、功能對比
注:以上應用號信息來自於騰訊科技報道
微信應用號所開放的手機LBS、文件處理、重力感應等“系統級接口” 加上微信自身的社交、支付接口,將會為移動開發者極大賦能,開發者可以更輕量級地開發出更多新的玩法
通過上表開發語言的對比看出,HTML5語言里面雖然設計了一定的地理定位、系統信息獲取等涉及手機客戶端的底層能力,但實際上由於手機操作系統的權限設計限制,這些接口的訪問都是需要系統授權的。
下圖是我分別在Safari瀏覽器和微信內置瀏覽器中運行HTML5的 獲取地理位置方法的結果:
1) Safari瀏覽器中getCurrentPosition的系統授權請求被屏蔽了,沒有提示,也無法返回結果。
2) 微信中能夠彈出getCurrentPosition的系統授權請求,在點擊“同意”后,可以反饋出手機對應的經度緯度。
圖3【LBS位置讀取】Safari瀏覽器 vs 微信內置瀏覽器
小程序(應用號)可以讓你的應用火,而雲計算可以讓你在火了之后不會宕機
下圖是我個人預計大部分應用號的前后台技術架構,應用號的前端的開發語言基本上應該是應用號擴展的HTML標簽語言+CSS+JavaScript,后台服務的開發其實不論是用Python或者是Node.js應該都是可以的。
但是對於預計訪問量較大,需要實現HA高可用的應用號而言,就需要考慮使用CLB負載均衡,CDN內加速,雲緩存等服務來保證應用的訪問體驗;如果涉及電商秒殺場景還可以考慮使用騰訊雲的CMQ消息隊列;對於安全性要求較強的金融與游戲類應用,則需要考慮接入大禹服務來抗DDOS攻擊、接入天御防刷服務來抵御惡意用戶。
圖4 預期的應用號技術架構
小結:
微信小程序(應用號)的出現,伴隨着更開放的手機“系統級”接口和微信社交+支付接口,讓創業者有機會和H5時代一樣,打造出下一批現象級的互聯網應用。但雲計算能夠給這些受歡迎的應用號,提供高可用、高擴展與安全性。
一句話總結,“小程序可以讓你火,雲計算可以讓你在火了之后,不會宕機”。
附:我們這邊寫的一個小程序demo,1小時就可以快速搭建。