李 欣, 劉 春, 賈美娟, 邵國強(qiáng)
(大慶師范學(xué)院 計算機(jī)科學(xué)與信息技術(shù)學(xué)院, 黑龍江 大慶 163712)
近年來,課程思政領(lǐng)域的教學(xué)研究已成為關(guān)注熱點,高校教師也積極的將各種思政元素融入到計算機(jī)公共課,充分發(fā)揮課程育人功能。各高校在思政領(lǐng)域的研究和實踐均取得了一定成就,但對課程思政資源庫的建設(shè)相對較少。一些高校建設(shè)了自己的思政資源庫,賀江[1]以食品微生物學(xué)課程為例,對課程思政素材庫的具體內(nèi)容進(jìn)行了介紹,并闡述了其應(yīng)用方法。劉艷艷等人[2]構(gòu)建課程思政教學(xué)案例庫,將其作為“醫(yī)學(xué)專業(yè)課程思政教學(xué)資源庫”中的重要模塊。其中主要包含主題案例庫、專業(yè)案例庫及課程案例庫等子庫。呂東峰等人[3]通過文獻(xiàn)資料分析和實地考察唐山地區(qū)優(yōu)秀紅色文化,研究建立地方紅色文化課程思政素材庫。辛朝軍等人[4]從“愛軍精武、矢志航天、科學(xué)思辨”3個思政維度,探索課程思政案例庫建設(shè),實現(xiàn)了思政在課堂教學(xué)中的有效嵌入與關(guān)聯(lián)固化。
目前,雖然思政資源平臺研究已取得了一定的成果但仍存在如下問題:
(1)部分資源平臺屬于商業(yè)性質(zhì)網(wǎng)站,不利于高校對思政課程建設(shè)與管理。
(2)有些平臺功能有限,僅適合展示典型案例。
(3)思政資源庫基于一般的文檔文件或電子表格管理,信息化程度較低。
因此,設(shè)計并實現(xiàn)一個面向計算機(jī)公共課的思政資源平臺具有一定的現(xiàn)實意義和應(yīng)用價值。
隨著研發(fā)人員的不斷探索,新的Web開發(fā)技術(shù)不斷被發(fā)現(xiàn)并被應(yīng)用。新框架、新理念和新模式使得Web設(shè)計更加容易,開發(fā)效率得到不斷提高。在以往的 Web項目中,大多數(shù)開發(fā)人員既負(fù)責(zé)前端,又負(fù)責(zé)后端。如今,項目開發(fā)人員逐漸將前后端的界限劃分的越來越明確,前后端分離模式已成為互聯(lián)網(wǎng)項目開發(fā)的業(yè)界標(biāo)準(zhǔn)和使用方式。
Arcos-Medina G等人[5]對軟件架構(gòu)設(shè)計模式(MVC)與“模型-視圖-視圖模型”模式(Model-View-ViewModel,MVVM)進(jìn)行了對比實驗。結(jié)果表明: MVVM 模式比MVC 模式在性能和生產(chǎn)力方面表現(xiàn)更為優(yōu)秀。在思政資源平臺開發(fā)過程中,項目的主要參與者為高校教師和在校計算機(jī)專業(yè)學(xué)生。考慮到二者能投入到項目的時間精力和所具備專業(yè)技術(shù)能力,項目采用MVVM架構(gòu)模式進(jìn)行設(shè)計。該設(shè)計模式非常適合分離GUI前端開發(fā)和后端業(yè)務(wù)邏輯,可極大的提高開發(fā)效率,方便項目組根據(jù)各年級學(xué)生專業(yè)知識技術(shù)儲備情況分配業(yè)務(wù)。平臺基于前后端分離模式的開發(fā)技術(shù)與架構(gòu)如圖1所示。
目前,前端開發(fā)技術(shù)較多,在給開發(fā)者帶來豐富的選擇同時,也提高了開發(fā)的復(fù)雜性。為了減輕開發(fā)者的負(fù)擔(dān),一系列的庫組件和框架技術(shù)被設(shè)計使用。如:Vue 框架[6]、Bootstrap框架[7]及Layui框架等。在計算機(jī)公共課思政資源平臺的前端開發(fā)中,項目組采用了“Vue + Boostrap”組合方式。其中Vue作為當(dāng)前十分流行的前端框架技術(shù),除了性能表現(xiàn)優(yōu)異之外,還可以綁定MVVM 模式中的Model模型與View視圖,將數(shù)據(jù)變換的操作變得更加簡易,同時也減少了邏輯代碼量。開發(fā)中也使用了“餓了嗎”開發(fā)的桌面端UI組件庫Element-UI。該組件庫的API方法、屬性等封裝的均較為完善,完全支持Vue.js 2.0,非常適合Vue項目開發(fā)。Bootstrap框架是當(dāng)前流行前端開發(fā)框架,主要用于開發(fā)響應(yīng)式布局、移動設(shè)備優(yōu)先的 Web 項目。該框架容易掌握,使用便捷,通常單獨使用。通過研究發(fā)現(xiàn):將Bootstrap框架與Vue框架組合運用,前者優(yōu)雅的樣式和豐富的組件使得頁面開發(fā)變得更美觀和容易,從而提升開發(fā)效率與效果,極大地減輕了前端開發(fā)人員的編程負(fù)擔(dān),同時可以達(dá)到理想的前端界面效果。

圖1 基于前后端分離模式的開發(fā)架構(gòu)圖
為了符合MVVC 開發(fā)模式,項目后端開發(fā)選擇了SpringBoot框架。SpringBoot框架作為 Spring家族成員之一,可自動配置Spring應(yīng)用,非常適合個體的微服務(wù)系統(tǒng)性開發(fā)。該框架的Spring生態(tài)系統(tǒng)不僅容易集成,同時又解決了Spring框架的弊端,從整體上簡化了編碼、配置、部署與監(jiān)控,因此在后端開發(fā)中頗具優(yōu)勢[8]。在后端開發(fā)中,將后端劃分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和控制層3個層次,主要負(fù)責(zé)接收并處理前端的請求、數(shù)據(jù)庫交互以及返回前端所需的數(shù)據(jù)。
思政資源平臺的訪問涉及到不同身份的用戶,因此需要實現(xiàn)用戶對系統(tǒng)、角色、功能的管理與配置。在平臺開發(fā)中,利用Apache Shiro安全框架技術(shù)執(zhí)行身份驗證、授權(quán)、密碼和會話管理。在前端的權(quán)限控制方面,前端某個按鈕的隱藏或顯示可以通過Shiro的頁面標(biāo)簽來控制。當(dāng)用戶擁有該權(quán)限時,就顯示該按鈕,否則隱藏。在后端的權(quán)限控制方面:后端的接口可以通過Shiro的注解來控制是否允許訪問。當(dāng)用戶擁有該權(quán)限時,就允許訪問,否則不允許訪問。為了實現(xiàn)平臺的用戶權(quán)限管理,通過核心依賴、Shiro核心配置、域?qū)ο笈渲?、核心工具類、自定義權(quán)限異常提示等,將Shiro安全框架技術(shù)整合到SpringBoot框架中。授權(quán)策略使用易文康等人[9]提出的基于 Shiro 標(biāo)簽式授權(quán)和注解式授權(quán)的權(quán)限訪問控制算法。
通過文獻(xiàn)查閱,項目組總結(jié)分析了一些與課程思政平臺功能需求相關(guān)的信息。在實際調(diào)研基礎(chǔ)上,將思政資源平臺的角色需求分為3種:系統(tǒng)管理員、教務(wù)管理員和普通教師用戶。系統(tǒng)管理員在平臺中權(quán)限級別最高,主要管理其他角色的人事信息及教務(wù)新聞和公告,可以對其他人員信息進(jìn)行增、刪、改、查等操作。教務(wù)管理人員主要完成對思政素材審核、資源分類和課程管理。教師用戶在登錄平臺后,可以錄入和選擇思政素材,設(shè)計和管理思政案例,建立、修改或刪除自己的課程。平臺的主要功能需求見表1。

表1 平臺主要功能需求
在完成功能需求之后,需要對微服務(wù)進(jìn)行建模。該過程將功能需求分解為與目標(biāo)匹配的微服務(wù)。平臺中的主要微服務(wù)見表2。

表2 微服務(wù)需求
根據(jù)需求分析,平臺模塊設(shè)計如圖2所示。教師思政部分為主要功能模塊,教師用戶依據(jù)模塊功能設(shè)定,從素材庫里選擇各種類型的思政素材,或者自行創(chuàng)建素材提交審核,然后根據(jù)確定的思政素材設(shè)計思政案例。教師用戶具備創(chuàng)建課程功能,并在課程設(shè)計中將選擇自己或他人的思政案例。當(dāng)然,教師用戶也可以選擇是否分享自己的思政資源,同時也要將思政素材、案例及課程提交教務(wù)管理員審批。教務(wù)管理模塊主要負(fù)責(zé)審核思政素材及課程,避免不合時宜的資源發(fā)布網(wǎng)上,造成不良影響。

圖2 思政資源平臺模塊設(shè)計
根據(jù)圖2中功能模塊的業(yè)務(wù)需求,整理了各功能涉及的數(shù)據(jù)子集和數(shù)據(jù)交集。以第三范式(3NF)為數(shù)據(jù)庫設(shè)計原則,建立了管理員表、教務(wù)管理人員表、教師用戶表、新聞報表、公告表、思政素材表、思政案例表、思政課程表、角色表、權(quán)限表和權(quán)限角色關(guān)系表等。如圖3所示,對于每個表中的主鍵,均采用Integer類型,其余字段一般采用Character類型。新聞發(fā)布、新聞內(nèi)容、發(fā)布時間等個別字段根據(jù)實際需求選擇數(shù)據(jù)類型。為了更直觀的展示,圖4展示了整體的E-R圖設(shè)計效果。

圖4 思政資源平臺E-R圖設(shè)計
項目部署由天然支持Spring Boot框架的Spring Cloud 微服務(wù)架構(gòu)[10]和高性能的反向代理服務(wù)器Nginx[11]實現(xiàn)。Spring Cloud作為一套微服務(wù)治理的框架,其質(zhì)量、穩(wěn)定性、持續(xù)性都可以得到保證。Nginx作為反向代理服務(wù)器,代理內(nèi)部網(wǎng)關(guān)服務(wù),通過Nginx自帶的負(fù)載均衡算法實現(xiàn)客戶端請求的代理轉(zhuǎn)發(fā)、負(fù)載均衡等功能。該項目在Linux系統(tǒng)中安裝Nginx服務(wù)器。安裝好以后,在Nginx下創(chuàng)建一個文件夾,將Vue下dist文件夾中所有文件復(fù)制到新創(chuàng)建的文件夾里;通過nginx.conf文件完成Nginx配置,然后到Nginx目錄下的sbin文件中啟動Nginx服務(wù)器。最后,使用 SwitchHosts 工具處理跨域問題。主頁運行效果如圖5所示。在后臺管理界面對各種微服務(wù)進(jìn)行實現(xiàn),例如思政課程管理功能如圖6所示。

圖5 主頁運行效果圖

圖6 后臺管理界面——思政課程管理功能
平臺開發(fā)完成后,進(jìn)行了單元測試和集成測試。由于該項目應(yīng)用程序沒有使用任何復(fù)雜的算法,且粒度細(xì)節(jié)較低,因此兩種測試均采用黑盒測試方法。黑盒測試用于檢查功能性程序是否正確運行,而并不需要知道程序的內(nèi)部情況[12],測試通過從功能性應(yīng)用程序中創(chuàng)建一個測試輸入和輸出的形式來完成。測試可以在不使用算法或低粒度級別的應(yīng)用程序上進(jìn)行,因此不需要花費太多時間。
為了驗證計算機(jī)公共課的思政資源平臺基于微服務(wù)設(shè)計架構(gòu)的優(yōu)勢,分別從調(diào)用延時和提交延時兩方面比較微服務(wù)平均延時和單體式平均延時,見表3、表4。實驗表明,基于微服務(wù)設(shè)計的系統(tǒng)在一小時內(nèi)調(diào)用接口的平均延時和提交時延遠(yuǎn)低于單體式架構(gòu),從而在響應(yīng)速度上得到了明顯的提升。

表3 調(diào)用延遲對比(毫秒)

表4 提交延遲對比(毫秒)
自課程思政開始融入教學(xué)設(shè)計以來,一直受到高等教育關(guān)注。為了方便課程的設(shè)計與管理,本文設(shè)計并實現(xiàn)了一個基于MVVM模式的思政資源平臺。開發(fā)中使用的“Vue + SpringBoot”組合實現(xiàn)了前后端分離的項目開發(fā)流程和部署。作為一款輕量級框架,Vue非常方便對數(shù)據(jù)進(jìn)行雙向綁定,SpringBoot則簡化了項目搭建,因此項目整體開發(fā)效率很高。該平臺面向計算機(jī)公共課程設(shè)計,可以很好的滿足教師思政教學(xué)需求。但該平臺目前僅滿足計算機(jī)基礎(chǔ)、辦公自動化、C++程序設(shè)計語言等幾門計算機(jī)公共課程教學(xué)設(shè)計,后續(xù)研究將進(jìn)一步豐富平臺的功能與擴(kuò)充其支持的科目。