千呼萬(wàn)喚始出來(lái),張小龍?jiān)?016年年初提到的微信應(yīng)用號(hào)終于以“小程序”的身份款款到來(lái)。媒體、KOl、產(chǎn)品經(jīng)理乃至創(chuàng)業(yè)者無(wú)不對(duì)此發(fā)表意見(jiàn),作為一名奮斗在一線的程序員,當(dāng)我看到這個(gè)消息時(shí),同樣難以壓抑住內(nèi)心的興奮。不過(guò),我關(guān)注的不是微信小程序能夠帶來(lái)多大的商業(yè)想象力,而是騰訊拿出了“傻瓜式”開(kāi)發(fā)方式。
為什么為小程序的開(kāi)發(fā)抱以期待?先來(lái)說(shuō)說(shuō)APP開(kāi)發(fā)過(guò)程中有哪些坑。
廣為人知的就是兼容性測(cè)試。iOS的系統(tǒng)還好,畢竟蘋果加起來(lái)也沒(méi)有20款iOS設(shè)備,可憐的就是Android開(kāi)發(fā)者。早在幾年前有關(guān)Android的碎片化問(wèn)題就引發(fā)了很大的爭(zhēng)論,原因就是一款A(yù)PP要適配不同的處理器、不同的屏幕大小,甚至不同的UI。由此造成的工作量可想而知,這也是Android上的軟件體驗(yàn)不及iOS的原因,更可惡的是iOS開(kāi)發(fā)者的薪水通常比Android還要高。
該怎么解決呢?當(dāng)然不是傻傻的呼吁手機(jī)廠商不要機(jī)海戰(zhàn)術(shù),每年發(fā)布的新品少了,再加上舊機(jī)型的淘汰,Android的碎片化問(wèn)題變得越來(lái)越樂(lè)觀。事實(shí)上,很多公司的做法是,優(yōu)先適配銷量較高的手機(jī),或者和某些手機(jī)品牌進(jìn)行相關(guān)的合作。常見(jiàn)的情況是,測(cè)試人員通常要買回一大堆真機(jī),各種牌子各種價(jià)格,可很多產(chǎn)品根本用不了幾次。
就目前來(lái)看,不少開(kāi)發(fā)者開(kāi)始使用網(wǎng)易易測(cè)、騰訊優(yōu)測(cè)、Testin等測(cè)試平臺(tái),比如網(wǎng)易易測(cè)提供了基礎(chǔ)兼容性測(cè)試、深度兼容性測(cè)試、真機(jī)租用、自定義腳本測(cè)試等,能夠解決元素錯(cuò)位、異常元素等實(shí)際問(wèn)題。因?yàn)楸救怂龅牟皇菧y(cè)試工作,只能和大家聊聊所知道的這些。
APP異常問(wèn)題讓人深惡痛絕,也是我和小伙伴們每天罵上八百遍的。什么卡頓、崩潰、秒退、無(wú)限加載、圖片顯示失敗等等問(wèn)題,在你們看來(lái)這不過(guò)是一個(gè)個(gè)小BUG,可對(duì)我們來(lái)說(shuō)意味著今天又要加班到深夜。
在程序猿群體中流傳著這樣一個(gè)段子:BUG是絕對(duì)狂熱的好戰(zhàn)分子,具有永不停歇的戰(zhàn)斗欲望,它潛伏在程序員的周圍,一雙小眼賊亮賊亮,在你百密一疏時(shí)出其不意一擊奏效。而無(wú)論你是鋼筋鐵骨,還是羊脂玉體,只要被這只“蟲子”襲擊,就得褪上三層皮,更有甚者,很可能鋃鐺入獄、命喪黃泉或者煙消玉損。甚至有人寫過(guò)一篇文章叫《盤點(diǎn)史上最具毀滅性的的Bug》,每每讀到此文,感同身受,臨文涕零。
哭訴了這么多,問(wèn)題還是要解決的,不然老板就要掀桌子讓你卷鋪蓋走人。最早解決這些問(wèn)題的做法是,測(cè)試人員發(fā)現(xiàn)問(wèn)題后反饋給我們,逐行逐行的看代碼,發(fā)現(xiàn)有問(wèn)題的地方修改下,然后繼續(xù)測(cè)試。鄉(xiāng)親們,知道為什么把程序員稱作“碼農(nóng)”了吧。后來(lái)很多公司建立了BUG跟蹤機(jī)制,比如項(xiàng)目中的所有成員都利用同一種方式去進(jìn)行BUG提交、跟蹤,避免造成BUG提交重復(fù)、回歸不及時(shí),或不能正常被回歸。
不過(guò),有研究數(shù)據(jù)顯示,iOS的崩潰率超過(guò)8‰,Andriod的崩潰率超過(guò)4‰,高達(dá)63%的用戶在使用移動(dòng)APP時(shí)會(huì)遭遇Crash,如果Crash發(fā)生在首次啟動(dòng),21%的用戶會(huì)選擇立即卸載,而如果Crash發(fā)生在使用過(guò)程中,70%的用戶會(huì)給應(yīng)用差評(píng)。再者,由于安卓機(jī)型的多樣性和用戶本地環(huán)境的復(fù)雜性,很難無(wú)法排查出應(yīng)用程序的出錯(cuò)代碼,加之開(kāi)發(fā)和測(cè)試周期有限而不得不擱置帶來(lái)的BUG累積,最終導(dǎo)致用戶差評(píng)增多、活躍用戶流失,嚴(yán)重影響移動(dòng)APP的用戶留存率、口碑、市場(chǎng)競(jìng)爭(zhēng)力及 其生存周期。即便采用了更加科學(xué)的BUG跟蹤機(jī)制,程序猿的壓力并沒(méi)有減輕太多,簡(jiǎn)直是天生的勞碌命。
一些聰明的公司開(kāi)始引入網(wǎng)易云捕等APP質(zhì)量跟蹤平臺(tái),即在軟件中集成網(wǎng)易易盾的SDK,可以實(shí)現(xiàn)Crash的實(shí)時(shí)監(jiān)控,根據(jù) Crash 次數(shù)進(jìn)行趨勢(shì)分析,提供全面完整的機(jī)器運(yùn)行信息,以及顯示崩潰堆棧信息,直接定位出錯(cuò)代碼行號(hào)。給大家安利網(wǎng)易云捕的原因是,集成簡(jiǎn)單且免費(fèi)使用,服務(wù)相對(duì)比較穩(wěn)定完善。
說(shuō)了這么多,微信小程序到底改變了什么呢?
由于我們的產(chǎn)品還沒(méi)有拿到內(nèi)測(cè)試資格,下面的分析僅以網(wǎng)上的分享為準(zhǔn),并加上本人的一些臆測(cè)。
微信小程序真正吸引人的地方就是8.6億規(guī)模的用戶群,這個(gè)數(shù)字超過(guò)了國(guó)內(nèi)所有的第三方應(yīng)用分發(fā)商店,盡管多方解讀稱微信并不會(huì)做應(yīng)用分發(fā),強(qiáng)大的用戶規(guī)模依舊會(huì)讓我們這些程序猿趨之若鶩。
還有就是開(kāi)發(fā)者不再猶豫適配什么手機(jī),只要通過(guò)了微信的兼容性測(cè)試就可以了,再加上小白也能輕松搞定的開(kāi)發(fā)指南和簡(jiǎn)單的接口。這便一舉搞定了兼容性和各種BUG帶給開(kāi)發(fā)者的苦惱。微信小程序似乎將程序猿們從苦海中拯救了出來(lái)(也或許是失業(yè)),但這也只是一種美好的幻想。
微信小程序在本質(zhì)上仍屬于H5的范疇,而且H5和APP的產(chǎn)品定位本身已經(jīng)很清晰,微信也強(qiáng)調(diào)并不會(huì)取代手機(jī)APP。目前來(lái)看程序猿們并不會(huì)因?yàn)樾〕绦虻拇嬖诙@得解脫,然而,微信的思路或許值得蘋果和谷歌重新思考軟件開(kāi)發(fā)的方式。興奮之余,還是老老實(shí)實(shí)寫代碼吧。