楊磊
(江西軟件職業(yè)技術(shù)大學(xué),江西南昌,330000)
隨著教育改革進程的持續(xù)推進,高校學(xué)生評價制度對人才培養(yǎng)的導(dǎo)向功能越來越顯著,將現(xiàn)代技術(shù)應(yīng)用于高校學(xué)生評價中,不僅是信息時代發(fā)展的客觀需求,也是深化高校學(xué)生評價改革的必要舉措。目前高校學(xué)生評價體系還存在測評過程不嚴謹、測評結(jié)果應(yīng)用不科學(xué)等問題,評價育人效果還有提升空間,且操作系統(tǒng)尚無法滿足新環(huán)境下高并發(fā)、高擴展、高集成的技術(shù)要求,并且已有系統(tǒng)多為封閉系統(tǒng),不能較好實現(xiàn)系統(tǒng)兼容與擴容,給師生增加了額外工作量。鑒于此,根據(jù)工作實際有必要創(chuàng)建學(xué)生發(fā)展記錄平臺,從而分層建立學(xué)生發(fā)展數(shù)據(jù)。微信小程序是一種連接用戶與服務(wù)的新型方式,為開發(fā)者提供了第三方開發(fā)接口,能夠定制符合自身需求的程序平臺,可在微信內(nèi)被便捷獲取與傳播[1]。因此,基于微信小程序設(shè)計出一種高校學(xué)生發(fā)展記錄系統(tǒng),通過分解功能,開發(fā)相應(yīng)的應(yīng)用程序編程接口(Application Programming Interface,API),將功能視為獨立化模塊,在模塊組合中實現(xiàn)系統(tǒng)的高耦合性與擴展性[2]。本系統(tǒng)涵蓋大學(xué)生文化素養(yǎng)、品德素養(yǎng)、健康素養(yǎng)等過程性與發(fā)展性相結(jié)合的評價要素,能夠?qū)崿F(xiàn)全程記錄每名學(xué)生的表現(xiàn),為科學(xué)進行大學(xué)生發(fā)展評價提供了數(shù)據(jù)支撐,促進了大學(xué)生的個性化發(fā)展。
系統(tǒng)采用面向資源架構(gòu)(Resource Oriented Architecture,ROA)與面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)的數(shù)據(jù)底層結(jié)構(gòu),如圖1所示。ROA面向高校學(xué)生全體,用戶可通過微信小程序上傳數(shù)據(jù);SOA面向管理者,管理者通過后臺進行數(shù)據(jù)管理,例如學(xué)生信息查詢、數(shù)據(jù)導(dǎo)入等交互性操作[3]。系統(tǒng)整體分為展示層、管理層、服務(wù)層與數(shù)據(jù)層,如圖1所示。
圖1 系統(tǒng)整體架構(gòu)
展示層包括微信小程序與管理員界面,分別使用Json與Wxss技術(shù)開發(fā)。管理層利用Adobe Flex平臺,并調(diào)用其功能完成界面設(shè)計,界面功能主要包括后臺數(shù)據(jù)處理,學(xué)生信息管理、上傳信息管理等??蚣懿捎肳ebsocketmvc-springboot-starter,開發(fā)語言使用Javascript,同時開發(fā)相應(yīng)的應(yīng)用程序編程接口(Application Programming Interface,API),將功能視為獨立化模塊,在模塊組合中實現(xiàn)系統(tǒng)的高耦合性與擴展性,以此滿足微信小程序端和服務(wù)器端數(shù)據(jù)交互的需求[4]。服務(wù)層由富因特網(wǎng)應(yīng)用程序(Rich Internet Application,RIA)搭建,該層作為系統(tǒng)整體架構(gòu)的核心,具有不可替代的中間層功能。用戶完在微信小程序完成操作后,服務(wù)器發(fā)出的HTTP請求進行數(shù)據(jù)處理,包括加載數(shù)據(jù)信息以及自主下載等,最終通過服務(wù)器成功向客戶端傳輸處理后的結(jié)果。數(shù)據(jù)層基于MariaDB數(shù)據(jù)庫與AGS技術(shù),提供空間、屬性、數(shù)據(jù)于一體存儲的數(shù)據(jù)服務(wù)[5]。MariaDB數(shù)據(jù)庫對數(shù)據(jù)的存儲管理,當接收服務(wù)器處理任務(wù)后,運用相關(guān)組件提供功能,實現(xiàn)提取、分析、計算、處理各類數(shù)據(jù),最終向服務(wù)器傳輸結(jié)果,并向用戶反饋相應(yīng)界面。如果客戶端產(chǎn)生查詢需求,且涉及分布式數(shù)據(jù),那么還會向遠程服務(wù)器發(fā)送處理請求。
系統(tǒng)根據(jù)功能差異分為用戶與管理員,用戶群體為高校學(xué)生。根據(jù)高校學(xué)生評價標準,創(chuàng)建分層化的高校學(xué)生發(fā)展記錄數(shù)據(jù),系統(tǒng)設(shè)計涵蓋大學(xué)生文化素養(yǎng)、品德素養(yǎng)、健康素養(yǎng)等過程性與發(fā)展性相結(jié)合的評價要素。管理員根據(jù)權(quán)限差異分為管理員、輔導(dǎo)員與班級管理者三類角色,管理員擁有最高權(quán)限,輔導(dǎo)員管理本年級學(xué)生,班級管理者負責本班學(xué)生。系統(tǒng)功能如圖2所示。
圖2 系統(tǒng)功能
1.3.1 登錄
用戶打開小程序后加載App.js文件,彈窗提示使用個人信息,點擊同意后運行WxLogin方法,獲得標識Open ID與版本信息SessionKey,執(zhí)行成功后攜帶Open ID,使用Get方法調(diào)用API,與后端數(shù)據(jù)開始交互,小程序端根據(jù)結(jié)果進行判斷并進入相應(yīng)頁面。
1.3.2 提交
高校學(xué)生發(fā)展記錄系統(tǒng)錄入的信息量較大,為了減少代碼量,提升小程序使用效率,可將提交功能放于Eteringinformation文件,各類記錄內(nèi)容通過EnteringInformation?id=class調(diào)用。將數(shù)據(jù)放于Data內(nèi),攜帶Open ID請求后臺,后臺處理后反饋結(jié)果,小程序根據(jù)結(jié)果進行判斷[6]。
1.3.3 排名
使用Get方法調(diào)用API,從數(shù)據(jù)庫中獲取排名,后端通過Open ID查找用戶,并傳遞該班學(xué)生完成情況,根據(jù)百分比進行排名,同時顯示進度條。
為了使系統(tǒng)的可讀性與可操作性得到提升,不同終端對URI參數(shù)也有著差異化的加載形式,例如:
前端調(diào)用時采用Key=Value的形式,模板可表示為:
API.Example.com/{Resource}?{Key1=Value1}
前端調(diào)用異步Java Script和XML(Asynchronous Java script And XML And HTML,AJAX)時,參數(shù)采用string對象的形式構(gòu)造,模板可表示為:
“Key1”:“Value1”,
“Key2”:“Value2”,
{“Key2_1”:“Value2_1”},
{“key1_2”:“value1_2”},
后臺調(diào)用API時,參數(shù)通過數(shù)組形式進行傳遞,模板可表示為:
“Key1”=>“Value1”,
“Key2”=>“Value2”,
“Key2_1”=>“Value1_1”,
“Key1_2”=>“Value2_1”
例如在超文本預(yù)處理器(Hypertext Preprocessor,PHP)中使用curl函數(shù)調(diào)用時,可通過設(shè)定參數(shù)進行傳遞:
Curl_Setopt(Curlopt_Postfields);
在Restful風(fēng)格之中,使用資源特定名字作為統(tǒng)一資源標識符(Uniform Resource Identifier,URI),并設(shè)計與資源特征符合的控制器與模型類??刂破鬟x用BMA253,該設(shè)備能夠有效處理API調(diào)用邏輯;模型類主要用于處理數(shù)據(jù)庫操作。根據(jù)高校學(xué)生發(fā)展信息涉及數(shù)據(jù),將標識設(shè)計為表1。
表述是一種資源展示形式,即用戶發(fā)起請求后Web服務(wù)器反饋結(jié)果的數(shù)據(jù)格式,目前較為常用的數(shù)據(jù)格式包括string、undefined、object等。因string數(shù)據(jù)具有易壓縮、多后臺語言支持、傳輸速度快、數(shù)據(jù)量小等特點,因而使用string數(shù)據(jù)作為參數(shù)傳遞、反饋數(shù)據(jù)的格式[7]。在本研究中,資源表述主要包括參數(shù)、狀態(tài)以及反饋結(jié)果,即Web服務(wù)器執(zhí)行調(diào)用后,反饋結(jié)果涵蓋請求參數(shù)、執(zhí)行狀態(tài)等內(nèi)容。
“Params”:{
“Location”:“位置”,
“Page”:1,
“Limit”:10,
“Appid”:“D93a5d”,
}
“Request”:{
“Code”:200,
“Message”:“Ok”,
}
“Return”:{
}
“Name”:“姓名”,
“Location”:{
“Lat”:23.775743,
}
“Street_id”:“638df60a54f2126b3lafe57e”,
}
緩存設(shè)計可實現(xiàn)系統(tǒng)的快速響應(yīng),在軟件設(shè)計時,通過臨時緩存模式,對某時刻高執(zhí)行頻率的API,將其結(jié)果保存于硬盤上。具體策略是對查詢資源緩存,將Md5值設(shè)為文件名,并將結(jié)果保存為string之后進行壓縮,如果出現(xiàn)相同請求時返回string文件。
本系統(tǒng)采用MariaDB數(shù)據(jù)庫,運行環(huán)境由Nginx搭建。MariaDB數(shù)據(jù)庫擁有Maria存儲引擎與FederatedX存儲引擎,其運行速度快,支持對Unicode的排序,操作更加便捷。使用Nginx搭建運行環(huán)境,搭建一次便可長期使用,無需重復(fù)進行數(shù)據(jù)庫連接,能夠顯著提高系統(tǒng)運行效率。
2.5.1 連接
系統(tǒng)通過Nginx將PHP作為服務(wù)器中的特殊功能模塊,使用MariaDB擴展進行連接,成功連接后系統(tǒng)后端能夠直接進行數(shù)據(jù)庫的查詢、修改以及刪除操作。與其他數(shù)據(jù)庫連接相比,MariaDB擴展能夠進行多語句執(zhí)行,其處理機制也基本解決了注入問題。
2.5.2 邏輯層
根據(jù)學(xué)生發(fā)展平臺的功能需求,系統(tǒng)數(shù)據(jù)庫包括管理員表、學(xué)生信息表、預(yù)制用戶表、匯報記錄表等數(shù)據(jù)庫,具體關(guān)聯(lián)如圖3所示。
圖3 數(shù)據(jù)庫邏輯
系統(tǒng)后臺管理功能是便于管理與進行系統(tǒng)維護與后臺管理,主要包括管理員、年級管理、班級管理、學(xué)生個人管理等,其功能實現(xiàn)程序圖4所示。
圖4 后臺管理功能實現(xiàn)
超文本處理器(PHP: Hypertext Preprocessor)是一種動態(tài)網(wǎng)頁技術(shù),能夠提供便捷的構(gòu)建形式[8]。在高校學(xué)生發(fā)展記錄系統(tǒng)中,當用戶在小程序中操作時,小程序會向Web發(fā)Https請求,此時調(diào)用PHP,PHP收到請求并驗證Md5值通過后,PHP與數(shù)據(jù)庫連接執(zhí)行相應(yīng)操作,完成后將結(jié)果返回到客戶端,具體流程如圖5所示。
圖5 通信邏輯
綜上,在需求分析的基礎(chǔ)上,基于微信小程序設(shè)計出高校學(xué)生發(fā)展記錄系統(tǒng)。該系統(tǒng)采用Json、Wxss、JavaScript、MariaDB以及PHP等多項開發(fā)技術(shù),實現(xiàn)了微信小程序前端與Web后端的功能融合。在微信小程序端實現(xiàn)信息錄入、發(fā)展匯總、進度展示等功能。在Web后端實現(xiàn)信息管理與平臺維護。實踐表明,基于微信小程序的高校學(xué)生發(fā)展記錄系統(tǒng)實現(xiàn)了全程監(jiān)控每個學(xué)生的表現(xiàn)情況,學(xué)生通過小程序可隨時記錄個人發(fā)展數(shù)據(jù),并能及時了解自己的排名情況與任務(wù)完成情況。同時也便于高校掌握學(xué)生的整體表現(xiàn),提升對學(xué)生評價的客觀性與科學(xué)性。可度量、持續(xù)化的記錄平臺的創(chuàng)建,可顯著提高系統(tǒng)的耦合性與擴展性,能夠為高校學(xué)生提供良好的個人發(fā)展評價服務(wù),為便捷地進行高校學(xué)生發(fā)展評價提供有力的數(shù)據(jù)支撐。在后續(xù)研究中可根據(jù)需求繼續(xù)擴展其他功能模塊,從而不斷完善本系統(tǒng)。