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