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

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

圖2 MINA框架在小程序中的架構

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