任务之间的组合也是 Grunt 非常好用的一个特性,例如通过 watch 任务和 rsync任务的结合,可以方便的实现当源码发生改变时,自动同步代码到服务器上。
Grunt作为当前非常流行的前端构建工具,可以帮助开发人员避免不必要的重复劳动以及一些对系统性能上的优化措施[10]。本系统采用Grunt完成了以下几个部分的任务:
(1)lint:用 JSHint对js代码进行检错;
(2)concat:合并js和css文件;
(3)min:用 UglifyJS 压缩代码;
(4)watch:当源代码文件发生变化时自动执行任务
2。3。3 Bower
Bower是twitter的又一个开源项目,使用Nodejs开发,用于web包管理。如果越来越多得开源项目都托管在Github上,Bower只需要将Github上项目加上一个配置文件既可以使用Bower方式使用安装包。作为包管理,Bower能提供添加新web包,更新web包,删除web包,发布web包功能,管理包依赖。
本系统不仅仅采用了Nodejs自身所提供的npm包管理工具,还使用了基于Nodejs平台的Bower作为又一个安装插件的工具。系统文件结构中的bower_component包下的插件文件都是通过该工具实现下载和安装。
2。3。4 Git
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。可以说,Git是目前最先进的CVS系统。
本系统代码托管在私有化仓库免费的Gitlab网站上,开发系统(ubuntu14。04)支持Git工具操作。该工具对实际开发、维护、前后端对接过程中所起到的作用无疑是巨大且不可替代的。
2。4 七牛云存储平台
七牛云存储主要托管企业的静态资源,为企业提供一站式在线数据托管、上传下载全网加速、以及数据云端处理服务。主要做静态文件,包括富媒体一体化解决方案,解决富媒体存储、上传下载加速、数据处理,包括图片处理、音视频处理,比如说做缩略图,打水印。[4]
此外,七牛还提供了镜像存储、客户端直传以及断点续上传等功能,方便开发者的使用。
七牛作为国内具有代表性的发展云平台的企业,在性能和口碑这块赢得了市场,相比于百度云和阿里云,系统采用七牛云的主要原因是基于成本上的考虑,七牛云提供免费的流量和空间。
2。5 阿里云ECS
云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,帮助用户快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本,使用户更专注于核心业务创新。
它本质上就是一个服务器。运行在云上的一个服务器。可以帮助用户实现线上的项目部署。基于开发成本上的考虑,本系统在部署环节采用阿里云ECS作为部署服务器,实现线上部署,让系统具有真正意义上的可操作性。
2。6 本章小结
本章详细介绍了系统开发中所用的关键技术和开发工具,简要说明了云存储平台和部署平台选择的考量依据。系统的具体开发正是因为这些框架和工具的有力支持才得以实现。
第三章 系统总体设计
本章介绍基于云平台的移动学习系统的总体设计,分为系统构架、web客户端系统结构、角色权限设计这几个小节来进行介绍,分别说明它们对应的功能和功能模块图,并着重讲解web前端设计中的前后端分离设计。论文网
3。1 系统总体架构
如图3-1,移动学习系统共分为3个模块,分别是云存储平台,服务器端模块以及客户端模块,而客户端又可分为3个子模块,分别是管理员模块、教师模块以及学生模块。