楊帆
【摘 要】隨著移動互聯(lián)網(wǎng)時代的到來,企業(yè)培訓(xùn)新員工的傳統(tǒng)方式已經(jīng)越來越不符合企業(yè)發(fā)展的需要,文章通過采用基于微信平臺的微信小程序以及當(dāng)前大并發(fā)數(shù)據(jù)處理最主流的Node.js+MongoDB技術(shù)設(shè)計實現(xiàn)了一套C/S架構(gòu)的員工培訓(xùn)平臺,在滿足企業(yè)培訓(xùn)新員工業(yè)務(wù)需求的同時提高了新員工培訓(xùn)的效果,并且減輕了企業(yè)負擔(dān)。
【關(guān)鍵詞】微信小程序;Node.js;MongoDB;員工培訓(xùn)平臺
中圖分類號: TP311.56 文獻標識碼: A 文章編號: 2095-2457(2018)15-0001-003
DOI:10.19694/j.cnki.issn2095-2457.2018.15.001
Design and implementation of staff training platform based on WeChat small program
YANG Fan
(institute 20, China electronic technology corporation,Xi 'an Shaanxi 710068)
【Abstract】with the advent of the era of mobile Internet, the traditional way of enterprise training new staff already more and more do not accord with the needs of the development of enterprises, the paper USES the platform based on WeChat WeChat small programs as well as the current big concurrent data processing is the most mainstream Node. Js + mongo implements a set of C/S architecture technology design platform for the staff training, to meet the needs of the business enterprise training new staff at the same time improve the effectiveness of the new staff training, and reduce the burden of enterprises.
【Key words】WeChat small program; Node. Js; Mongo. Staff training platform
0 引言
近年來,我國移動互聯(lián)網(wǎng)發(fā)展規(guī)模正在不斷擴大,截止2017年12月,我國手機網(wǎng)民規(guī)模達7.53億,網(wǎng)民中使用手機上網(wǎng)人群的占比達97.5%[1],移動互聯(lián)網(wǎng)以其便捷化、智能化和精準化的優(yōu)勢正快速成為個人、企業(yè)和機構(gòu)業(yè)務(wù)處理的新平臺。目前在國內(nèi)眾多的移動互聯(lián)網(wǎng)應(yīng)用中,微信是移動端下載安裝最多,使用最頻繁的應(yīng)用之一,截止2018年第一季度,微信與WeChat的合并月活躍帳戶數(shù)已達到10.4億[2],微信已經(jīng)成為了中國移動互聯(lián)網(wǎng)的國民級應(yīng)用,而2017年騰訊正式推出的基于微信平臺的輕型應(yīng)用微信小程序,正越來越成為移動互聯(lián)網(wǎng)熱門的平臺解決方案。
微信小程序是一種不需要下載安裝即可使用的應(yīng)用,用戶掃一掃或者搜一下即可打開應(yīng)用,也實現(xiàn)了用完即走的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題,應(yīng)用隨時可用,但又無須安裝卸載[3]。與傳統(tǒng)的手機APP相比,微信小程序的優(yōu)勢在于開發(fā)難度和軟件維護成本較低,同時具有出色的用戶體驗,再加上很容易憑借微信巨大的用戶量進行推廣,這些優(yōu)勢都非常適合針對功能簡單、使用頻次較低的非剛需場景提供服務(wù)。
對于企業(yè)培訓(xùn)新員工而言,傳統(tǒng)的方式是向新員工提供學(xué)習(xí)資料、開辦學(xué)習(xí)講座以及對新員工進行考試測驗等,這個過程不但培訓(xùn)周期較長,而且占用了企業(yè)大量的人力和物力資源,增加了企業(yè)負擔(dān)。因為企業(yè)培訓(xùn)新員工屬于低頻次和非剛需的場景,符合微信小程序“用之即來,用完即走”的應(yīng)用服務(wù)特點,所以可以設(shè)計一個基于微信小程序的員工培訓(xùn)平臺,將學(xué)習(xí)資料、講座視頻以及模擬測驗考題等放到員工培訓(xùn)平臺上,這樣新員工通過微信APP就能很方便地找到員工培訓(xùn)平臺并進行自主學(xué)習(xí)和測驗。
1 系統(tǒng)架構(gòu)及關(guān)鍵技術(shù)
1.1 系統(tǒng)組成
員工培訓(xùn)平臺采用的是C/S架構(gòu),員工培訓(xùn)平臺在開發(fā)完畢后會上傳至微信服務(wù)器中,客戶端運行在以智能手機和平板電腦為主要載體的移動終端上,而服務(wù)器端則搭建在基于云平臺的云服務(wù)器上,系統(tǒng)組成如圖1所示。
用戶通過客戶端的微信APP掃一掃或者搜索微信小程序,就可以從微信服務(wù)器下載員工培訓(xùn)平臺到微信APP上,接著用戶使用員工培訓(xùn)平臺發(fā)起消息請求,消息請求經(jīng)過微信APP驗證通過后進行轉(zhuǎn)發(fā),通過移動網(wǎng)絡(luò)到達微信服務(wù)器,微信服務(wù)器接收到消息請求后會轉(zhuǎn)發(fā)給云服務(wù)器,云服務(wù)器對消息請求進行解析提取和業(yè)務(wù)邏輯處理,再將處理結(jié)果返回給微信服務(wù)器,最后微信服務(wù)器接收到處理結(jié)果后轉(zhuǎn)發(fā)給客戶端的微信APP,微信APP再轉(zhuǎn)發(fā)給員工培訓(xùn)平臺,實現(xiàn)客戶端和服務(wù)器端的雙向數(shù)據(jù)交互。
1.2 關(guān)鍵技術(shù)
1.2.1 Node.js
Node.js是一個基于Google Chrome V8引擎的服務(wù)器端JavaScript運行環(huán)境,用來方便地搭建響應(yīng)速度快、易于擴展的網(wǎng)絡(luò)應(yīng)用。Node.js采用了單線程、事件驅(qū)動和異步非阻塞I/O的設(shè)計特性,通過單線程的事件輪詢機制實現(xiàn)高并發(fā)請求處理,這點非常適合于構(gòu)建大型面向用戶端的高并發(fā)Web應(yīng)用[4]。而相比較Apache、IIS這類Web服務(wù)器,Node.js能輕量和高效地處理服務(wù)器端的業(yè)務(wù)邏輯、渲染頁面和進行路由控制等,并且Node.js還提供模塊系統(tǒng),用戶可以使用模塊系統(tǒng)載入內(nèi)置模塊或通過NPM安裝的第三方模塊來便捷高效地與客戶端、數(shù)據(jù)庫等系統(tǒng)組件進行交互,所以使用Node.js來部署Web服務(wù),具有很好的靈活性、伸縮性和可擴展性。
1.2.2 Express
Express是一個簡潔而靈活的Node.js Web應(yīng)用框架,提供了一系列強大的特性來幫助開發(fā)者創(chuàng)建各種Web應(yīng)用[5],其強大的特性表現(xiàn)為:快速進行開發(fā),擁有靈活的擴展機制,使用簡單方便,路由、多模塊支持等[6]。Express框架建立在Node.js內(nèi)置的http模塊上,其核心并不是對Node.js已有的特性進行二次抽象,只是在其之上擴展了Web應(yīng)用所需的基本功能。因為Express框架對Node.js的Web應(yīng)用進行了適度的封裝和擴展,所以Express框架具有高性能和擴展性強的優(yōu)點。
1.2.3 MongoDB
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫[7],可以為Web應(yīng)用提供可擴展的高性能的數(shù)據(jù)存儲解決方案,具有高性能、易部署、易使用、易于進行數(shù)據(jù)存儲及管理等優(yōu)點。MongoDB是面向文件存儲的NoSQL數(shù)據(jù)庫,它支持的數(shù)據(jù)結(jié)構(gòu)類似json的bson格式,可以存儲比較復(fù)雜的數(shù)據(jù)類型,另外,MongoDB的GridFS機制可以用于存儲和檢索大文件,如圖片、視頻和音頻文件等,非常適合現(xiàn)今移動互聯(lián)網(wǎng)的Web應(yīng)用。
1.3 體系架構(gòu)
員工培訓(xùn)平臺的體系架構(gòu)分為三層:前端展示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。前端展示層用于在客戶端提供面向用戶的交互界面,并對員工培訓(xùn)平臺功能應(yīng)用進行業(yè)務(wù)處理。業(yè)務(wù)邏輯層用于在服務(wù)器端提供Web通信和業(yè)務(wù)邏輯處理功能。數(shù)據(jù)持久層用于存儲業(yè)務(wù)數(shù)據(jù)。體系架構(gòu)如圖2所示。
客戶端由前端展示層構(gòu)成。前端展示層基于微信小程序的MINA框架,包含視圖層和邏輯層兩部分:視圖層由WXML和WXSS構(gòu)成,WXML文件用于描述頁面的結(jié)構(gòu),WXSS文件用于描述頁面的樣式,視圖層將用戶使用UI控件觸發(fā)的事件發(fā)送給邏輯層進行處理,同時將邏輯層發(fā)來的JSON格式數(shù)據(jù)反應(yīng)成視圖;邏輯層由JavaScript編寫,用于將JSON格式的數(shù)據(jù)進行處理后發(fā)送給視圖層,同時接受視圖層的事件反饋[8],并且由于微信小程序支持WebSocket接口,所以邏輯層可以采用HTTPS和WebSocket協(xié)議實現(xiàn)與服務(wù)器端的Web通信功能。
服務(wù)器端由業(yè)務(wù)邏輯層和數(shù)據(jù)持久層構(gòu)成。業(yè)務(wù)邏輯層使用Node.js構(gòu)建服務(wù)器端的運行環(huán)境,通過載入Express模塊搭建Web應(yīng)用框架,在Express框架搭建完畢后,服務(wù)器端主要實現(xiàn)三部分功能:首先是服務(wù)器端與客戶端的Web通信功能。Socket.io是一個開源、跨平臺且支持客戶端和服務(wù)器端進行實時雙向通信的WebSocket庫[9-10],通過在Express框架基礎(chǔ)上載入Socket.io模塊,就能夠在Express框架中構(gòu)建Web服務(wù)器,實現(xiàn)基于HTTPS和WebSocket協(xié)議的雙向Web通信;其次是業(yè)務(wù)邏輯層與數(shù)據(jù)持久層中MongoDB數(shù)據(jù)庫的交互功能。Mongoose是在Node.js異步環(huán)境下對MongoDB數(shù)據(jù)庫進行便捷操作的對象模型工具,通過在Express框架基礎(chǔ)上載入Mongoose模塊,就能夠在Express框架中調(diào)用Mongoose API實現(xiàn)對MongoDB數(shù)據(jù)庫的交互操作;最后是在Express框架基礎(chǔ)上的業(yè)務(wù)邏輯處理功能。主要的實現(xiàn)邏輯為通過基于Express框架設(shè)置中間件響應(yīng)HTTP請求,并根據(jù)不同的HTTP請求設(shè)計路由,再將不同的HTTP請求轉(zhuǎn)發(fā)給對應(yīng)的消息處理程序去處理,最后將不同的處理結(jié)果返回給客戶端。整個系統(tǒng)的業(yè)務(wù)數(shù)據(jù)交互流程如圖3所示。
2 功能實現(xiàn)
員工培訓(xùn)平臺的功能模塊包括三個部分:試題管理、知識學(xué)習(xí)和附屬功能。功能模塊如圖4所示。
知識學(xué)習(xí)模塊包括兩個子功能:資料瀏覽和在線提問。資料瀏覽功能是將全部員工培訓(xùn)資料按照類別存放在員工培訓(xùn)平臺上,新員工可以隨時瀏覽和學(xué)習(xí)全部培訓(xùn)資料。在線提問功能是在員工培訓(xùn)平臺上建立一個留言板,新員工可以將學(xué)習(xí)中遇到的問題發(fā)到留言板上,培訓(xùn)老師可以在留言板上解答新員工提出的問題。
試題管理模塊包括兩個子功能:知識測試和考試管理。知識測試功能是通過模擬測試題生成測試卷并讓新員工進行自主測試,模擬測試題分為單選題、多選題、判斷題、填空題和簡答題等。知識測試分成三種測試方式:順序測試、隨機測試和專項測試。順序測試是按照所有類別模擬測試題的默認順序生成測試卷;隨機測試是打亂所有類別模擬測試題的默認順序,然后隨機組合成測試卷;專項測試是將每一種模擬測試題單獨拿出來組合成測試卷??荚嚬芾砉δ芊譃閮刹糠止δ埽嚎荚囋u測和考試統(tǒng)計??荚囋u測是在模擬測試題庫中按照固定數(shù)量生成一份包含所有類別模擬測試題的考試卷,新員工考試完畢后提交試卷并進行打分??荚嚱y(tǒng)計是對新員工每次考試后,將總分、平均分、錯題數(shù)及錯題率等進行統(tǒng)計。
附屬功能模塊包括三個子功能:錯題集、題目搜索和題目收藏。錯題集功能是統(tǒng)計新員工累次考試中做錯的題目,方便新員工在復(fù)習(xí)過程中能夠更有針對性地查找知識漏洞。題目搜索功能是幫助新員工按照關(guān)鍵字快速查找指定的模擬考試題。題目收藏功能是將需要重點關(guān)注的模擬考試題標記出來,幫助新員工進行重點學(xué)習(xí)。
3 結(jié)語
本文通過分析微信小程序的服務(wù)特性,采用基于微信小程序以及服務(wù)器端主流的Node.js+MongoDB技術(shù)設(shè)計實現(xiàn)了一套C/S架構(gòu)的員工培訓(xùn)平臺解決方案,相比起傳統(tǒng)APP而言開發(fā)難度和維護成本更低,且易于推廣,是符合下一代移動互聯(lián)網(wǎng)“微、小、輕”的產(chǎn)業(yè)發(fā)展趨勢。企業(yè)采用員工培訓(xùn)平臺培訓(xùn)新員工,不但滿足了業(yè)務(wù)需求,提高了新員工培訓(xùn)的效果,而且減輕了企業(yè)負擔(dān),提高了企業(yè)信息化程度,符合當(dāng)前移動互聯(lián)網(wǎng)時代的發(fā)展潮流。
【參考文獻】
[1]CNNIC.第41次中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告[EB/OL].[2018-01-31].http://cnnic.cn/gywm/xwzx/rdxw/201801/t20180131_70188.htm.
[2]中關(guān)村在線.騰訊發(fā)布2018年第一季度財報 總營收735.28億元[EB/OL].[2018-05-16].http://m.zol.com.cn/article/6889813.html tuiguangid=ifeng.
[3]張小龍.微信小程序入口在哪?有什么用?[J].計算機與網(wǎng)絡(luò),2017,548(4):50.
[4]黃揚子.基于NodeJS平臺搭建REST風(fēng)格Web服務(wù)[J].無線互聯(lián)科技,2015(16):57-59.
[5]程桂花,沈煒,何松林等.Node.JS中Express框架路由機制的研究[J].工業(yè)控制計算機,2016,29(8):101-102.
[6]朱建兵.基于Node.JS高并發(fā)網(wǎng)絡(luò)應(yīng)用架構(gòu)的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2013.
[7]霍多羅夫,迪洛爾夫.MongoDB權(quán)威指南[M].程顯鋒譯.北京:人民郵電出版社,2011.
[8]微信小程序開發(fā)文檔[EB/OL].[2017-01-09].http://developers.weixin.qq.com/miniprogram/dev/framework/app-service/.
[9]李廣文.基于Socket.io的互動教學(xué)即時反饋系統(tǒng)的設(shè)計與實現(xiàn)[J].中國現(xiàn)代教育裝備,2012(18):10-12.
[10]黃經(jīng)贏.基于Socket.io+Node.js+Redis構(gòu)建高效即時通訊系統(tǒng)[J].現(xiàn)代計算機(專業(yè)版),2014(19):62-64,69.