劉振超,孫 娜
(河北農業大學理工學院,黃驊 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模式來提高系統的可擴展性,從而使用戶操作更加便捷。