智慧校园微信小程序云服务开发与构建
2018-02-27柏超宇顾怡杨丽雯张建波
柏超宇 顾怡 杨丽雯 张建波
摘要
随着微信小程序的普及,移动应用开发也迎来了一次新的革命。本项目将基本的课表查询,饭卡充值等功能进行开发整合,学生可以更加便捷的使用各种学校系统。本文以南京邮电大学小程序为例,分析软件的开发背景,介绍软件的系统功能,同时对系统开发细节进行分析。希望通过该研究,为学校的信息化建设作出贡献。
【关键词】智慧校园 微信小程序 高等学校
1 软件开发背景
智慧校园建设近年来发展迅猛,高校也积极上线各类信息化系统代替原本的人工操作,南京邮电大学的智慧校园系统现己大大方便了老师学生的校园生活,但通过调查发现这也存在着一些问题。学校的大多数系统由不同人员开发而成,很多的系统或网站入口较深,域名不方便记忆,各个系统的用户名和密码大多不同,而最关键的是,基本上对于手机端没有进行适配,导致我们在外用手机进行操作时存在一定困难。
因此,为了方便广大学生的学习生活,本项目与校信息化建设与管理办公室合作,通过构建爬虫和使用校信息办提供接口,把学校的多个信息系统整合到一起。前端采用Vue.js,后端采用Spring,开发了基于微信平台的南京邮电大学小程序。
2 软件主要功能及技术开发方案
南京邮电大学小程序将学校的数个系统整合到了一起,优化用户体验,重新设计UI交互,重新分析用户需求,让同学们在实际使用过程中更加流畅。软件所实现的主要功能如图1,基本覆盖了高校学生日常所需要的功能。
2.1 软件主要功能
南京邮电大学小程序整合了十余个学生常用的系统,如教务处系统,一卡通系统,图书馆系统,跑操查询系统,自主化学分系统等。软件主要界面如图2所示。
当点击课表按钮时,前端会向后端发送相应请求,后端通过模拟登陆教务处并获取到你的课表,再将信息包装后送向前端,最后由前端对课表进行展示。当用户点击成绩查询、跑操查询、余额查询、饭卡充值等按钮时,也进行了类似的操作。
2.2 软件技术开发方案
该软件上线一年以来,经历了两次大版本更新,前端一直采用基于JavaScript的Vue.js框架,后端原先采用原生PHP后改用基于Java的Spring框架,通过合理使用框架,软件的安全性和性能有了一定的保障。
2.2.1 前端开发要点
(1)充分利用微信小程序提供的API,微信小程序本身目录结构非常的清晰,分为四种主要的文件类型wxml/.wxss/.js/json。第一类文件主要是类似于html的页面结构,第二类文件是类似于CSS的样式文件,第三类文件是传统的js文件,但是在这个js文件中会实例化一个Page对象作为入口函数,第四类文件是配置文件。其次,微信小程序提供很多已经包装好的函数,例如Loading,request请求等等。
(2)Promise无阻塞请求,因为一个页面中存在类似于跑操信息,课表信息,一卡通信息等等数据需要请求,如果同时使用串行函数请求,会有阻塞发生,为了避免这种情况,我们引入了es6中的Promise函数,将每一个请求包装成一个Promise对象,然后并行无阻塞请求,这样就不会发生,一个请求等另一个请求这种影响性能的情况。
(3)針对通用函数采用了工具包的形式,工具包使用的是模块化接口设计对外提供工具函数工具包使用的是模块化接口设计对外提供工具函数,其主要原理是Javascript中的闭包,只获取一个函数中我们需要利用的信息。
(4)前后端完全分离,后端只需要向前端提供接口。
2.2.2 后端开发要点
(1)采用了Springboot框架为基础来构建后端服务,主要使用mysql,mybatis,redis来对数据库进行支持,又因为涉及爬虫还使用了httpclient,jsoup等工具。
(2)对于爬虫的处理:考虑不能对学校弱服务造成过大压力,所以利用统一爬虫对出口做了限制,每个站并发数限制在50。对于学校一些经常崩的弱服务,又采取了独立爬虫的方式,避免因为崩掉的弱服务影响其他正常服务。
(3)对于产品逻辑的支持,竭尽所能去便利用户,因为很多人都不会更改学校某些服务的密码,所以每一个模块都采用了帮助用户填充默认账号密码的方式。
(4)后端代码上的优化:因为有很多个模块(正方,一卡通,图书馆等等),但主要用户信息(学号,姓名,班级,UserId等等)都是相同的,所以利用interceptor将用户信息注入做了一个UserInfo,倘若需要使用用户信息,直接在controller层使用就可以了。
3 总结
本项目以方便高校学生为出发点,通过多种方式收集和调查学生们的需求,瞄准了同学们在学习生活中的痛点,前后端实现注重细节,为流畅使用提供保障,重新设计UI和交互模式,更加注重用户体验。
参考文献
[1]吴旻瑜,刘欢,任友群.“互联网+”校园:高校智慧校园建设的新阶段[J].远程教育杂志,2015,33(04):8-13.
[2]曾超宇,李金香.Redis在高速缓存系统中的应用[J].微型机与应用,2013,32(12):11-13.
[3]张亮.基于HTMLParser和HttpClient的网络爬虫原理与实现[J].电脑编程技巧与维护,2011(20):94+103.
[4]薛峰,梁锋,徐书勋,王彪任.基于Spring MVC框架的Web研究与应用[J].合肥工业大学学报(自然科学版),2012,35(03):337-340.
[5]吕方,崔慧敏,霍玮,冯晓兵.面向并发性能下降的调度策略的综述[J].计算机研究与发展,2014,51(01):17-30.