刘振超,孙 娜
(河北农业大学理工学院,黄骅 061100)
为顺应大数据时代潮流,教育也在朝着信息化、网络化方向发展,所以计算机考试系统被更多人所认同和接受,很多大学也在不断对计算机考试系统的设计进行探究。本文主要介绍了基于对Web的计算机考试系统的设计,主要从前端网页和后台服务器两部分对其设计进行了探究。[1]其中,前端指的就是用户所能看到,所能进行操作的网页,本系统使用“HTML+CSS+JS”技术和流行的 “veu.js”架构来进行设计。后台服务器以Python作为开发语言,采用了Django架构,使用Redis设计缓存,还添加了CDN来缓解网络拥堵现象,提高了访问网站的速度。
网页的第一印象来自视觉冲击,不同的颜色组合可以产生不同的效果。[2]本系统网页的配色主要以灰色和白色为主,灰色的背景很好的衬托出了其他配色,并突出显示了文字。此外,为防止单调,还加入了特效,为页面加入了一些鲜明的元素特征,从而使我们的页面看上去简洁大方。
网页栏目是指网站建设的主要板块内容,主要是为了方便用户快速找到自己想了解的东西,增强用户体验。对于网页栏目的编排,遵循两个原则:KISS(Keep It Simple And Stupid)原则,该原则要求网页的下载不要超过10秒钟,减少了图片和动画的使用,改为使用文本链接;从用户的观念考虑原则,心理学家George A.Miller的研究表明,人一次所接受的信息量为7±2 比特,如果提供给用户选择的内容链接超过这个范围,用户就会感到烦躁和压抑。[3]综合两点原则,本系统在主页上设置了五个栏目,使得页面不显繁杂,不会给用户带来压抑感。
“问题”栏目:其中包含了大量的编程练习题,系统对练习题的难度进行了划分,分为“Low”、“Mid”、“High”三个等级的难度,用户可以根据提示选择不同难度的题目进行练习。
“练习&比赛”栏目:这一栏目可以用来做比赛前的练习,也可用于考试。
“状态”栏目:在这一栏目,用户可以自行查看提交代码的正确性,系统会对用户所提交的代码进行在线测评,然后将不同的状态反馈在此界面。
“排名”栏目:用户可以在此查看排名情况。
“关于”栏目:这一栏目就是关于系统的一些介绍与帮助,其中有对判题机制的简要介绍和一些常见问题的解决办法。
python是当今最为实用和便捷的编程语言,本系统正是使用它来对后台服务器进行开发,此外,为了完善系统功能,便于用户操作,本系统还采用Django Web架构和Redis缓存。
Redis是一种非关系型内存数据库,它在内部是一个键值存储系统。[4]它支持存储的 value类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set-有序集合)和hash(哈希类型,类似于Java中的map)。Redis之所以优于其他键值数据存储系统,是因为它可以将其数据库全部保存在内存里,并执行原子操作,当有多个客户端同时进行访问时,它可以用最快的速度接收最新的数据。它每秒大约可以执行110000次SET操作和81000次GET操作。
此外,在后台开发过程中,增加了CDN。基本思路是跳过因特网上影响数据传输速度和稳定性的链接,使内容传输更快更稳定。根据用户流量、负载量、用户的距离和系统响应时间来获取信息,通过网络中的智能虚拟网络层来设置节点服务器,从而可以将用户的请求重定位至最靠近用户的服务节点,以便用户可以浏览所需内容,[5]提高了访问网站的速度。总之,加入了CDN之后,可以有效缓解网络拥堵现象,加快用户访问页面的响应速度,给用户以良好的使用体验。
在今后对Web的设计和改进中,将尝试使用 PHP/MySQL架构,使用多种编译器进行测试来保证源代码的可移植性,从而可以为多种编程语言提供 API。此外,传统的C/S模式很容易受到时间和空间的限制,所以可以尝试使用B/S模式来提高系统的可扩展性,从而使用户操作更加便捷。