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