邱煜炎,盧小蝶,吳福生
(蚌埠醫(yī)學(xué)院衛(wèi)生管理系,安徽蚌埠233000)
在互聯(lián)網(wǎng)時代飛快發(fā)展的浪潮之中,移動學(xué)習(xí)已經(jīng)成為教育行業(yè)發(fā)展的必然趨勢。與傳統(tǒng)的課堂學(xué)習(xí)相比,移動學(xué)習(xí)可以使用戶隨時隨地根據(jù)自己安排進(jìn)行知識獲取,從而激發(fā)學(xué)習(xí)興趣[1]。Python作為一門編程語言,語法簡潔優(yōu)雅、兼容眾多平臺[2],并且具有豐富而強大的第三方庫,近年來隨著人工智能應(yīng)用的廣泛普及,Python語言的熱度和影響力持續(xù)上升。為此,本文設(shè)計并實現(xiàn)了基于微信小程序的Python語言在線移動學(xué)習(xí)平臺,使用戶快速掌握Python編程語言,并提供自測練習(xí)及第三方庫的查閱接口,以滿足用戶隨時學(xué)習(xí)和方便使用的需要。
隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,各種在線學(xué)習(xí)平臺不斷涌現(xiàn),脫穎而出的有中國大學(xué)生慕課網(wǎng)、網(wǎng)易云課堂、學(xué)堂在線等。平臺發(fā)布及使用方式主要分為兩類:一類是基于CS架構(gòu),另一類是基于BS架構(gòu)[3]。
CS架構(gòu),即客戶機-服務(wù)器(Client-Server)架構(gòu),該類平臺需要在手機端安裝專門的應(yīng)用軟件與平臺進(jìn)行交互。因此,龐雜的應(yīng)用勢必耗費手機大量的硬件資源。BS架構(gòu),即瀏覽器-服務(wù)器(Browser-Server)架構(gòu),該類平臺依托手機端瀏覽器進(jìn)行網(wǎng)頁發(fā)布,用戶雖然無須安裝應(yīng)用軟件,但是各種在線學(xué)習(xí)平臺網(wǎng)址冗長、標(biāo)簽收藏混亂,不方便用戶管理、查閱困難,用戶體驗效果不高。
微信是當(dāng)前發(fā)展最為迅速、使用人數(shù)最多的社交應(yīng)用手機軟件。微信小程序是一個基于微信客戶端構(gòu)建的網(wǎng)頁版應(yīng)用程序,它設(shè)計理念簡單,無須下載安裝即可使用,易于傳播,實現(xiàn)了應(yīng)用程序“觸手可及”的目標(biāo)[4]。
基于以上原因,本文設(shè)計了基于微信小程序的Python語言在線學(xué)習(xí)平臺,無須安裝軟件,不占用內(nèi)存,方便管理,以達(dá)到用戶高效檢索、便捷學(xué)習(xí)的目的[5]。
本項目使用的是騰訊公司推出的微信開發(fā)者工具,其提供了完整的MINA框架[6]。MINA是一個網(wǎng)絡(luò)通信應(yīng)用框架,主要分為兩個部分:頁面視圖層和應(yīng)用邏輯層。其中,頁面視圖層進(jìn)行界面的渲染,渲染部分由wxss和wxml文件共同構(gòu)成,wxml用來設(shè)計頁面的結(jié)構(gòu),wxss用來設(shè)計頁面的樣式[7]。應(yīng)用邏輯層有處理事務(wù)的功能,由Java Script實現(xiàn)邏輯交互、網(wǎng)絡(luò)請求、數(shù)據(jù)請求等功能[8]。視圖層和邏輯層利用系統(tǒng)層的JSBridge通信,視圖層將觸發(fā)的事件通知邏輯層進(jìn)行數(shù)據(jù)處理;邏輯層把數(shù)據(jù)變化返回到視圖層,從而實現(xiàn)視圖層頁面更新,如圖1所示。
圖1 MINA框架
本文利用ThinkPHP框架實現(xiàn)服務(wù)器后臺業(yè)務(wù)邏輯功能。ThinkPHP是一種高效敏捷的Web框架,可以讓開發(fā)更關(guān)注具體業(yè)務(wù)邏輯實現(xiàn),不需要關(guān)心程序的底層實現(xiàn)原理,提高程序的開發(fā)效率[9]。它基于PHP語言,采用MVC設(shè)計模式,即模型(Model)、視圖(View)和控制(Control)實現(xiàn)業(yè)務(wù)邏輯。框架已經(jīng)構(gòu)建好常用的功能類庫,以幫助構(gòu)建穩(wěn)定、快速、高效建立在線學(xué)習(xí)平臺系統(tǒng);其次,該系統(tǒng)因為框架的使用使得本身的擴(kuò)展性、靈活性、維護(hù)性、適應(yīng)需求方面獲得最大化的增強。
Mysql數(shù)據(jù)庫是互聯(lián)網(wǎng)行業(yè)最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),通過微信小程序開發(fā)者工具與數(shù)據(jù)庫連接實現(xiàn)系統(tǒng)的數(shù)據(jù)管理功能,在微信小程序開發(fā)者工具JS中編寫請求代碼,向數(shù)據(jù)庫發(fā)送數(shù)據(jù)請求,數(shù)據(jù)庫接收到數(shù)據(jù)請求后在數(shù)據(jù)庫中查詢到所需數(shù)據(jù)并返回給微信小程序的邏輯層,最終的數(shù)據(jù)通過視圖層顯示在微信小程序的界面。以獲取自測成績數(shù)據(jù)為例,微信小程序請求數(shù)據(jù)代碼和數(shù)據(jù)庫返回數(shù)據(jù)代碼如下:
請求數(shù)據(jù)代碼
本系統(tǒng)基于ThinkPHP框架的MVC開發(fā)模式,系統(tǒng)架構(gòu)設(shè)計見圖2。程序運行流程是首先通過微信小程序打開Python語言在線學(xué)習(xí)平臺,進(jìn)行授權(quán)操作,以獲取用戶的基本信息如頭像、用戶名等,如果拒絕授權(quán)將退出返回。用戶身份認(rèn)證體系采用token令牌請求接口,微信小程序調(diào)用接口,經(jīng)過數(shù)據(jù)驗證層,判斷參數(shù)是否合法,然后由Controller層訪問Model數(shù)據(jù)層,業(yè)務(wù)邏輯需要調(diào)用Server層里面的方法,最后由Model層訪問數(shù)據(jù)庫DB層,返回數(shù)據(jù)給小程序。Controller層主要進(jìn)行請求的分發(fā),Model層主要處理業(yè)務(wù)邏輯和訪問數(shù)據(jù)庫獲取數(shù)據(jù),Server層主要進(jìn)行業(yè)務(wù)代碼的封裝,為Controller層提供調(diào)用。
用戶模塊主要有3個功能,一是獲取微信用戶信息,二是獲取用戶學(xué)習(xí)進(jìn)度,三是瀏覽收藏的第三方庫條目。通過微信小程序自帶的登錄認(rèn)證體系獲取微信用戶信息,如圖3所示。
圖2 系統(tǒng)架構(gòu)設(shè)計
圖3 用戶登錄界面
打開微信小程序,掃碼登錄之后,會顯示出微信小程序的首頁。微信小程序的界面主要是通過wxml和wxss來顯示的,對微信小程序來說,視圖層就是他們的集合,首頁是一個歡迎頁面,windows用來設(shè)定標(biāo)題、背景、顏色等屬性,代碼為
此外,tarBar用來實現(xiàn)與其他功能頁面的銜接與跳轉(zhuǎn)。
視頻課程以章節(jié)目錄方式進(jìn)行展示,用戶通過滑動列表進(jìn)行點擊、選擇學(xué)習(xí)視頻,見圖4。章節(jié)界面代碼由wxml與wxss組成,wxml中使用swiper輪播圖組件實現(xiàn)圖片的動態(tài)變化,使用navigator實現(xiàn)章節(jié)的對應(yīng)跳轉(zhuǎn).wxss中設(shè)置了輪播圖和圖片的長、寬屬性,設(shè)置了button按鈕邊框、顏色以及view的屬性。
視頻播放界面主要由視頻跟內(nèi)容簡介組成,簡介與視頻內(nèi)容同步以方便用戶理解與記憶。視頻內(nèi)容以wxml形式進(jìn)行播放,文字簡介以text文本框進(jìn)行展示,見圖5。視頻數(shù)據(jù)流通過微信小程序開發(fā)者工具與云存儲服務(wù)器建立連接,利用JavaScript腳本向服務(wù)器發(fā)送請求,當(dāng)服務(wù)器接收到視頻請求后將相關(guān)視頻并返回給微信小程序的邏輯層,最終的視頻會通過視圖層顯示在微信小程序的界面。
圖4 課程目錄列表
圖5 視頻播放界面
自測模塊主要分為在線測試和成績解析兩部分。習(xí)題庫通過程序后臺管理端進(jìn)行操作,題型涉及判斷、單選、多選和填空四類。題型、分值、題目及答案以數(shù)組形式構(gòu)建數(shù)據(jù)結(jié)構(gòu),以單選題為例,其代碼為
前端利用微信小程序開發(fā)工具的wxml和wxss對習(xí)題界面進(jìn)行布局與構(gòu)造,見圖6。
圖6 習(xí)題界面
強大而易用的第三方庫,使Python語言在人工智能領(lǐng)域受到學(xué)界和工業(yè)界的強烈追捧。為方便用戶查詢,并能做到收集和掌握,平臺嵌入了Pyhton第三方庫匯總和查詢模塊。利用Python的Scrapy跟蹤github網(wǎng)站,并周期性抓取第三方庫資源列表以做到實時更新。抓取內(nèi)容主要涉及庫名、簡介以及官網(wǎng)鏈接地址,此外,小程序界面通過JavaScript設(shè)置收藏功能,以方便用戶保存利用,代碼為
小程序發(fā)布的流程如圖7所示。
圖7 發(fā)布流程圖
首先在本地計算機設(shè)計完成系統(tǒng)的主要功能模塊的開發(fā)版本,然后,利用微信公眾平臺提交開發(fā)版本程序,當(dāng)審核通過后就轉(zhuǎn)換成線上版本。用戶通過微信掃碼關(guān)注該小程序即可在線學(xué)習(xí)。
在服務(wù)器端,平臺采用阿里云服務(wù)器基于Linux內(nèi)核的Centos7.0操作系統(tǒng),并需要安裝配置相關(guān)支持軟件如PHP、Python、mysql和nginx等,代碼為
為檢驗平臺運行效果,需要進(jìn)行相關(guān)系統(tǒng)評測,相關(guān)指標(biāo)見表1。
表1 系統(tǒng)測試指標(biāo)
當(dāng)平臺通過以上一系列性能指標(biāo)評測后,筆者邀請20名在校大學(xué)生進(jìn)行用戶體驗測試。
參與者通過微信掃描二維碼登錄,使用學(xué)習(xí)平臺,并給出反饋意見??傮w上說,用戶對該平臺的使用滿意度評價較高,體會到基于微信小程序的平臺學(xué)習(xí)Python編程語言帶來的新穎性和便利性。此外,評價的反饋缺陷主要體現(xiàn)在3方面,①平臺學(xué)習(xí)模塊單一,內(nèi)容不夠豐富,不能滿足多層次用戶的知識需求;②界面不夠美觀,顏色搭配不合理,UI交互不夠友好;③用戶體驗不流暢,多并發(fā)條件下易出現(xiàn)卡頓現(xiàn)象。
隨著微信用戶體量的不斷增加,基于微信小程序無須下載即可使用的特點,本文設(shè)計并開發(fā)了基于微信小程序的Python語言在線學(xué)習(xí)平臺。實現(xiàn)了在線視頻學(xué)習(xí)、在線測試、Python第三方庫查詢收藏等功能,具有移動學(xué)習(xí)便利性的優(yōu)勢。在以后的設(shè)計中,逐漸豐富學(xué)習(xí)平臺的功能,如增加學(xué)習(xí)社群、在線編譯等內(nèi)容;優(yōu)化設(shè)計界面,可參考優(yōu)秀的小程序模板,對界面及按鈕等細(xì)節(jié)的顏色做合理搭配,以做到統(tǒng)一協(xié)調(diào)[10];后臺增加Redis緩存,已滿足多用戶并發(fā)訪問的需要。此外,要設(shè)置平臺安全機制,增加防火墻以及數(shù)據(jù)加密功能,以保證用戶數(shù)據(jù)不受侵犯。