基于微信小程序的员工培训平台的设计与实现
2018-10-30杨帆
杨帆
【摘 要】随着移动互联网时代的到来,企业培训新员工的传统方式已经越来越不符合企业发展的需要,文章通过采用基于微信平台的微信小程序以及当前大并发数据处理最主流的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.