◆陳鵬旭 桑園
微信小程序開發(fā)系統(tǒng)分析及在校園中具體場景的實現(xiàn)
◆陳鵬旭 桑園通訊作者
(鄭州西亞斯學(xué)院 河南 451150)
隨著社會和信息傳播載體的多樣化發(fā)展,人們更加注重信息的收發(fā)效率、傳播速度,也對信息的整合程度提出了更高的要求。小程序作為一款具有便捷、微小并且不需要下載和安裝就可使用的軟件,使用戶真正體驗到了“用完即走”的理念,而這一理念也解決了之前用戶因程序安裝過多而帶來的手機(jī)內(nèi)存冗余的問題,其次小程序的開發(fā)不僅在Android平臺適用也同樣在iOS平臺適用,極大地減少了開發(fā)者的工作負(fù)擔(dān),也降低了開發(fā)成本,這也因此使小程序逐漸被許多開發(fā)者和用戶所青睞。除此之外,微信小程序是一款以主流社交軟件微信為載體,并在其基礎(chǔ)上拓展微信功能的軟件,在以微信為基礎(chǔ)之上開發(fā)的微信小程序相比于普通手機(jī)APP軟件將更容易被用戶所接受,也更符合互聯(lián)網(wǎng)及社會發(fā)展的方向。文章將對微信小程序的系統(tǒng)框架、關(guān)鍵技術(shù)、以及平臺特點和應(yīng)用前景進(jìn)行研究,為開發(fā)者提供一種可行的思路。
微信小程序;軟件;小程序開發(fā)
2019年,“酷鵝”用戶研究發(fā)布《2019年微信小程序用戶行為研究報告》,報告指出以微信搭建的社交、電商、娛樂為一體化的微信生態(tài)和板塊發(fā)展形勢良好。首先,小程序依靠微信的流量以及生態(tài)鏈的聚合、完善,在電商、零售、直播、娛樂、社交等領(lǐng)域逐步占據(jù)著越來越多的市場,截至2018年底,微信用戶規(guī)模已超6億,越來越多的開發(fā)者也正在使用小程序去代替常規(guī)APP,從而簡化用戶的使用操作,方便用戶。其次,微信是基于MINA網(wǎng)絡(luò)通信應(yīng)用框架開發(fā)的,擁有調(diào)用微信開放平臺API接口、微信事件通知、業(yè)務(wù)請求等功能,相較于基于HTML5技術(shù)和瀏覽器Device Mode實現(xiàn)前后端交互的動態(tài)網(wǎng)頁,小程序擁有自己的一套開發(fā)工具,可以實現(xiàn)更多定制的功能,同時微信也面向所有組織和開發(fā)者開放免費(fèi)注冊,并提供開發(fā)者平臺、開發(fā)指導(dǎo)、項目管理、調(diào)用組件說明以及調(diào)試等功能。
微信小程序采用了最先出現(xiàn)的C/S(Client-Sever)網(wǎng)絡(luò)架構(gòu)模式,通過wx.request或者socket連接服務(wù)器。C/S結(jié)構(gòu)通常采取兩層結(jié)構(gòu),服務(wù)器負(fù)責(zé)對數(shù)據(jù)的管理,而客戶機(jī)則負(fù)責(zé)與用戶的交互對接任務(wù)。C/S架構(gòu)幫助小程序得以實現(xiàn)高效運(yùn)行和數(shù)據(jù)傳輸、在線幫助、錯誤提示等功能,并且該結(jié)構(gòu)的主要特點為增強(qiáng)程序的交互性,具有安全的存取模式,響應(yīng)速度較快等,有利于對大量數(shù)據(jù)的處理、優(yōu)化高并發(fā)、多線程網(wǎng)絡(luò)擁堵現(xiàn)象,更適合小型的局域網(wǎng),且相較于B/S架構(gòu)更能保證對用戶群的固定以及對用戶信息安全的需求可以實現(xiàn)多方位的保障。C/S概述如圖1所示。

圖1 C/S概述圖
微信小程序前端基于MINA框架搭建,樣式上基于ElementUi樣式庫。MINA框架是通用的網(wǎng)絡(luò)通信框架,該框架核心為實時響應(yīng)的數(shù)據(jù)綁定系統(tǒng),且采用MVVM模式。MINA框架保障了系統(tǒng)的視圖層和邏輯層的數(shù)據(jù)同步,當(dāng)數(shù)據(jù)需要更新時,開發(fā)者通過對邏輯層的操作則可以快速達(dá)到在視圖層自動響應(yīng)并更新的效果,方便了開發(fā)者在開發(fā)過程中的操作。MINA框架在小程序中的架構(gòu)如圖2所示。
小程序后端架構(gòu)采用分布式架構(gòu),由開發(fā)者對接微信開發(fā)平臺API接口,通過調(diào)用來接收微信服務(wù)器發(fā)送的數(shù)據(jù),并回調(diào)以做出回復(fù)響應(yīng)。在整體小程序后端架構(gòu)中,主服務(wù)器作為核心部分負(fù)責(zé)靜態(tài)資源管理、微信服務(wù)器回調(diào)、API調(diào)用等一系列組件功能,從而實現(xiàn)小程序開發(fā)的部分功能。在一般第三方平臺使用的后端架構(gòu)中,主服務(wù)器負(fù)責(zé)和云服務(wù)器連接傳送靜態(tài)資源,進(jìn)行對對象的存儲及實現(xiàn)其他云服務(wù)功能,并通過API和數(shù)據(jù)庫建立連接傳輸數(shù)據(jù)。業(yè)務(wù)服務(wù)器作為普通的應(yīng)用服務(wù)器提供小程序業(yè)務(wù)接口的實現(xiàn),通過分布式中間件配合Redis數(shù)據(jù)庫實現(xiàn)和主服務(wù)器部分?jǐn)?shù)據(jù)共享。小程序后端架構(gòu)如圖3所示。
小程序包含一個描述整體程序的App和多個描述各自頁面的Page。小程序整體程序文件結(jié)構(gòu)由App.js、App.WXSS、App.json三部分主要組成,在Pages下又劃分4個文件:WXML文件、WXSS文件、js文件、json文件,這4個文件組成視圖層和邏輯層兩部分。其中,App.js作用為小程序邏輯代碼,App.json作用為小程序公共配置,App.wxss作用為小程序公共樣式表,js作用為頁面邏輯,WXML作用為頁面結(jié)構(gòu),json作用為頁面配置、WXSS作用為頁面樣式表。

圖2 MINA框架在小程序中的架構(gòu)

圖3 小程序后端架構(gòu)
在微信小程序的關(guān)鍵技術(shù)中使用API無疑是最重要和便捷的一門技術(shù)。在底層框架里,微信開發(fā)者工具是一個基于ne.js,使用API等工具來實現(xiàn)底層模塊,使用react、redux等技術(shù)來實現(xiàn)用戶交互功能,使代碼具有跨平臺性。微信開發(fā)者平臺提供了一套非常全面的API調(diào)用說明和實例演示,方便開發(fā)者去開發(fā)小程序。API按照功能屬性包括:網(wǎng)絡(luò)、用戶管理、媒體、數(shù)據(jù)緩存、設(shè)備、智能、界面、微信卡券、微信門店等接口。
小程序的啟動機(jī)制分為兩種情況:冷啟動和熱啟動。更新機(jī)制可以分為啟動時更新和未啟動時的更新。
在程序未啟動的時候,如果用戶本地曾經(jīng)打開過小程序并且緩存有小程序的歷史版本,再次打開小程序的時候?qū)J(rèn)為舊版本,而這一情況造成了一些影響:如開發(fā)者在管理后臺更新了小程序版本,并不能直接影響到正在使用的所有用戶。這種機(jī)制可以看作是對用戶當(dāng)前使用體驗的一種保護(hù),但同時也可能會給開發(fā)者造成一定困擾。
而另一種情況是在程序啟動時的更新。與許多軟件一樣,小程序在每次冷啟動的時候,系統(tǒng)都會自動檢測當(dāng)前版本是否是最新版本、是否需要更新。如果檢測到開發(fā)者后臺新版本的發(fā)布,小程序?qū)惒较螺d新版本的組件和代碼,同時使用客戶端本地緩存的代碼包啟動,新版本的代碼包則會等待下一次的程序冷啟動時應(yīng)用。
小程序的生命周期和Android類似,界面線程總共有四個狀態(tài):初始化的狀態(tài)、首次渲染狀態(tài)、持續(xù)渲染狀態(tài)、結(jié)束狀態(tài)。服務(wù)線程可分為五個狀態(tài):初始化狀態(tài)、等待激活狀態(tài)、激活狀態(tài)、局部渲染狀態(tài)、后臺運(yùn)行狀態(tài)。
依靠小程序的開發(fā)門檻降低、易推廣、成本低等特性,目前,對于高校來說,學(xué)校可以通過小程序簡化辦公流程,將教務(wù)、學(xué)務(wù)等工作移植到小程序上,教師、教輔人員可以通過手機(jī)隨時隨地對學(xué)校通知和工作信息進(jìn)行收發(fā)和查閱,而不必通過Web端去登錄查詢和操作。對于學(xué)生的信息錄入工作,使用者可以通過掃描二維碼登錄微信小程序進(jìn)行注冊和填寫,同時在小程序上開放學(xué)生交流和接收學(xué)校、學(xué)院通知等功能。進(jìn)一步地,通過小程序建立以學(xué)院或宿舍為單位的社區(qū),開放師生、學(xué)生之間的交互功能,在后端接入數(shù)據(jù)庫對學(xué)生、教師信息進(jìn)行統(tǒng)一管理。就使用群體的便利性而言,小程序比手機(jī)APP、Web端網(wǎng)頁更符合學(xué)生的使用習(xí)慣。對于網(wǎng)絡(luò)購物、交流、娛樂等社會服務(wù)性功能的開發(fā),小程序為在校學(xué)生開發(fā)群體提供了更大的施展空間和低成本需求。因此,小程序的開發(fā)與應(yīng)用根植于校園這片土壤,不僅可以簡化校園管理程序,給同學(xué)們帶來更加便捷、高效的校園生活體驗,還能為學(xué)生提供實戰(zhàn)開發(fā)經(jīng)驗。
相比于目前市場上常見的基于Android操作系統(tǒng)開發(fā)的各種APP來說,小程序更加微小、便捷、易于使用和推廣,尤其重要的是小程序的出現(xiàn)解決了目前APP占用手機(jī)內(nèi)存大,啟動速度慢等問題外,也對程序占用手機(jī)運(yùn)行內(nèi)存進(jìn)行了優(yōu)化,從而較好地解決了手機(jī)卡頓的問題。小程序的出現(xiàn)不僅為用戶帶來了極大的便利,同時也對開發(fā)者提供了一個新的機(jī)遇和一個全新的市場,開發(fā)者可以便捷、高效的利用小程序平臺開發(fā)出更低成本的程序,且微信小程序在市場的快速推廣方面具有先天優(yōu)勢,更適合低成本開發(fā)、企業(yè)規(guī)模較小、資金不充足的微小企業(yè)、學(xué)生創(chuàng)業(yè)者、學(xué)校組織等應(yīng)用需求。微信小程序只需要通過分享二維碼就可讓用戶注冊、登錄、快速體驗和獲取信息。
隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展和用戶市場需求的增加,無論是開發(fā)者還是用戶都對手機(jī)的軟件功能和服務(wù)多樣性提出了更高的要求。而作為新一代的手機(jī)軟件--微信小程序與傳統(tǒng)手機(jī)APP和Web端網(wǎng)頁相比較,不僅滿足了以上的需求,而且具有更為高效的開發(fā)流程;更為全面的開發(fā)指導(dǎo)和API說明;更為簡單的系統(tǒng)開發(fā)架構(gòu)。同時結(jié)合小程序本身的特點,其符合目前移動互聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展對新一代手機(jī)軟件所提出的微小、高效、便捷、易操作的需求特性。綜上所述,小程序不僅在不久的將來會擁有更好的市場前景和校園發(fā)展空間,而且小程序也為下一代移動互聯(lián)網(wǎng)軟件的開發(fā)提供了很好的模板和發(fā)展方向。
[1]劉玉佳.微信“小程序”開發(fā)的系統(tǒng)實現(xiàn)及前景分析[J].信息通信,2017(1):260-261.
[2]徐星明.微信小程序第三方平臺的設(shè)計與實現(xiàn)[D].山東大學(xué),2020.
[3]王磊,王皓,基于C/S架構(gòu)的機(jī)場地理信息系統(tǒng)的設(shè)計與實現(xiàn)[J].信息技術(shù)與網(wǎng)絡(luò)安全,2020(3):68-72.
[4]李哲,周靈.微信小程序的架構(gòu)與開發(fā)淺析[J].福建電腦,2019(12):66-69.
[5]劉紅衛(wèi).微信小程序應(yīng)用探析[J].無線互聯(lián)科技,2016(23):11-12,40.
[6]郝磊.網(wǎng)絡(luò)商城微信小程序的設(shè)計與實現(xiàn)[D].西北民族大學(xué),2019.
[7]張曉燕.微信“小程序”開發(fā)的系統(tǒng)實現(xiàn)及前景[J].電子技術(shù)與軟件工程,2018(12).
[8]騰訊.微信小程序API[EB/OL].2019.