劉振超,孫 娜
(河北農(nóng)業(yè)大學理工學院,黃驊 061100)
為順應大數(shù)據(jù)時代潮流,教育也在朝著信息化、網(wǎng)絡化方向發(fā)展,所以計算機考試系統(tǒng)被更多人所認同和接受,很多大學也在不斷對計算機考試系統(tǒng)的設計進行探究。本文主要介紹了基于對Web的計算機考試系統(tǒng)的設計,主要從前端網(wǎng)頁和后臺服務器兩部分對其設計進行了探究。[1]其中,前端指的就是用戶所能看到,所能進行操作的網(wǎng)頁,本系統(tǒng)使用“HTML+CSS+JS”技術和流行的 “veu.js”架構(gòu)來進行設計。后臺服務器以Python作為開發(fā)語言,采用了Django架構(gòu),使用Redis設計緩存,還添加了CDN來緩解網(wǎng)絡擁堵現(xiàn)象,提高了訪問網(wǎng)站的速度。
網(wǎng)頁的第一印象來自視覺沖擊,不同的顏色組合可以產(chǎn)生不同的效果。[2]本系統(tǒng)網(wǎng)頁的配色主要以灰色和白色為主,灰色的背景很好的襯托出了其他配色,并突出顯示了文字。此外,為防止單調(diào),還加入了特效,為頁面加入了一些鮮明的元素特征,從而使我們的頁面看上去簡潔大方。
網(wǎng)頁欄目是指網(wǎng)站建設的主要板塊內(nèi)容,主要是為了方便用戶快速找到自己想了解的東西,增強用戶體驗。對于網(wǎng)頁欄目的編排,遵循兩個原則:KISS(Keep It Simple And Stupid)原則,該原則要求網(wǎng)頁的下載不要超過10秒鐘,減少了圖片和動畫的使用,改為使用文本鏈接;從用戶的觀念考慮原則,心理學家George A.Miller的研究表明,人一次所接受的信息量為7±2 比特,如果提供給用戶選擇的內(nèi)容鏈接超過這個范圍,用戶就會感到煩躁和壓抑。[3]綜合兩點原則,本系統(tǒng)在主頁上設置了五個欄目,使得頁面不顯繁雜,不會給用戶帶來壓抑感。
“問題”欄目:其中包含了大量的編程練習題,系統(tǒng)對練習題的難度進行了劃分,分為“Low”、“Mid”、“High”三個等級的難度,用戶可以根據(jù)提示選擇不同難度的題目進行練習。
“練習&比賽”欄目:這一欄目可以用來做比賽前的練習,也可用于考試。
“狀態(tài)”欄目:在這一欄目,用戶可以自行查看提交代碼的正確性,系統(tǒng)會對用戶所提交的代碼進行在線測評,然后將不同的狀態(tài)反饋在此界面。
“排名”欄目:用戶可以在此查看排名情況。
“關于”欄目:這一欄目就是關于系統(tǒng)的一些介紹與幫助,其中有對判題機制的簡要介紹和一些常見問題的解決辦法。
python是當今最為實用和便捷的編程語言,本系統(tǒng)正是使用它來對后臺服務器進行開發(fā),此外,為了完善系統(tǒng)功能,便于用戶操作,本系統(tǒng)還采用Django Web架構(gòu)和Redis緩存。
Redis是一種非關系型內(nèi)存數(shù)據(jù)庫,它在內(nèi)部是一個鍵值存儲系統(tǒng)。[4]它支持存儲的 value類型相對更多,包括 string(字符串)、list(鏈表)、set(集合)、zset(sorted set-有序集合)和hash(哈希類型,類似于Java中的map)。Redis之所以優(yōu)于其他鍵值數(shù)據(jù)存儲系統(tǒng),是因為它可以將其數(shù)據(jù)庫全部保存在內(nèi)存里,并執(zhí)行原子操作,當有多個客戶端同時進行訪問時,它可以用最快的速度接收最新的數(shù)據(jù)。它每秒大約可以執(zhí)行110000次SET操作和81000次GET操作。
此外,在后臺開發(fā)過程中,增加了CDN?;舅悸肥翘^因特網(wǎng)上影響數(shù)據(jù)傳輸速度和穩(wěn)定性的鏈接,使內(nèi)容傳輸更快更穩(wěn)定。根據(jù)用戶流量、負載量、用戶的距離和系統(tǒng)響應時間來獲取信息,通過網(wǎng)絡中的智能虛擬網(wǎng)絡層來設置節(jié)點服務器,從而可以將用戶的請求重定位至最靠近用戶的服務節(jié)點,以便用戶可以瀏覽所需內(nèi)容,[5]提高了訪問網(wǎng)站的速度??傊尤肓薈DN之后,可以有效緩解網(wǎng)絡擁堵現(xiàn)象,加快用戶訪問頁面的響應速度,給用戶以良好的使用體驗。
在今后對Web的設計和改進中,將嘗試使用 PHP/MySQL架構(gòu),使用多種編譯器進行測試來保證源代碼的可移植性,從而可以為多種編程語言提供 API。此外,傳統(tǒng)的C/S模式很容易受到時間和空間的限制,所以可以嘗試使用B/S模式來提高系統(tǒng)的可擴展性,從而使用戶操作更加便捷。