賀竑睿,周 兵,林 宏
(貴州師范學(xué)院 數(shù)學(xué)與大數(shù)據(jù)學(xué)院,貴州 貴陽(yáng) 550018)
隨著互聯(lián)網(wǎng)、云計(jì)算的高速發(fā)展,記錄筆記并且保存筆記的問(wèn)題已經(jīng)成為人們學(xué)習(xí)與生活的剛需。紙質(zhì)筆記無(wú)法隨身攜帶,導(dǎo)致人們經(jīng)常忘記筆記內(nèi)容。開(kāi)發(fā)一套基于云端、隨時(shí)記錄和讀取的云筆記系統(tǒng),顯得十分重要。云筆記作為一個(gè)新興的互聯(lián)網(wǎng)業(yè)務(wù),盡管當(dāng)前用戶(hù)數(shù)量還比較少,但是其便捷、隨時(shí)的優(yōu)點(diǎn)使得其擁有巨大的市場(chǎng)潛力。隨著人們對(duì)工作效率的要求的不斷提升,云筆記業(yè)務(wù)將成為人們工作學(xué)習(xí)中的重要組成部分[1-6]。
系統(tǒng)的主要功能有:注冊(cè)用戶(hù)、創(chuàng)建筆記、查看筆記、修改筆記、刪除筆記。
云筆記平臺(tái)的使用者有普通用戶(hù)和平臺(tái)管理員。平臺(tái)首先需要注冊(cè)用戶(hù)基礎(chǔ)信息,以便登錄平臺(tái)時(shí)驗(yàn)證。用戶(hù)可以登錄平臺(tái),也可以退出平臺(tái)。若用戶(hù)選擇保存筆記,則表明該筆記可以存儲(chǔ)在服務(wù)器中。平臺(tái)管理員應(yīng)當(dāng)定期審查筆記是否違規(guī)。待平臺(tái)管理員審查完畢之后,違規(guī)的筆記被平臺(tái)管理員刪除。另外,用戶(hù)可以申訴筆記,由管理員二次審查,如果沒(méi)有違規(guī),筆記恢復(fù),用戶(hù)最終決定是否保留。
系統(tǒng)主要有兩類(lèi)角色:平臺(tái)管理員、普通用戶(hù)。平臺(tái)管理員使用的用例有用戶(hù)信息管理、用戶(hù)筆記管理。業(yè)主使用的主要用例有注冊(cè)、登錄、保存筆記、修改筆記、刪除筆記,如圖1所示。
圖1 系統(tǒng)用例
用戶(hù)通過(guò)發(fā)出增刪查改的請(qǐng)求,對(duì)應(yīng)的處理過(guò)程會(huì)通過(guò)與數(shù)據(jù)庫(kù)的存儲(chǔ)文件的交互完成對(duì)應(yīng)的操作。管理員會(huì)對(duì)用戶(hù)的筆記進(jìn)行審查,當(dāng)然用戶(hù)可以申訴自己被判定違規(guī)的筆記。數(shù)據(jù)流如圖2所示。
圖2 數(shù)據(jù)流
本系統(tǒng)的總體功能主要是為了用戶(hù)可以快速地、實(shí)時(shí)地將所需要的筆記保存,并且便于查看。本設(shè)計(jì)確保用戶(hù)擁有個(gè)人私有空間,并且保證用戶(hù)信息的安全。每個(gè)環(huán)節(jié)的操作更加簡(jiǎn)明。用戶(hù)在使用的過(guò)程中有良好的用戶(hù)使用體驗(yàn)[7]。
用戶(hù)登錄系統(tǒng)后進(jìn)入筆記管理子系統(tǒng)。如果用戶(hù)之前上傳過(guò)筆記,該系統(tǒng)會(huì)根據(jù)之前上傳的所有筆記的標(biāo)題排列在標(biāo)題欄中,方便用戶(hù)查看。用戶(hù)可以查看之前存儲(chǔ)的筆記,并且可以對(duì)其進(jìn)行在線編輯[8],并管理筆記。也可以對(duì)之前保存的筆記進(jìn)行刪除操作,刪除用戶(hù)不需要的筆記。用戶(hù)也可以在線新建筆記,筆記待用戶(hù)編輯完成后,點(diǎn)擊保存按鈕即可對(duì)新建的筆記進(jìn)行保存。
系統(tǒng)支持同一個(gè)賬號(hào)多個(gè)操作系統(tǒng)同時(shí)登錄。刷新按鈕可以刷新筆記最后修改過(guò)的內(nèi)容。
管理員可以進(jìn)入此系統(tǒng),對(duì)普通的用戶(hù)上傳的筆記進(jìn)行管理,通過(guò)在線瀏覽用戶(hù)的筆記來(lái)判斷用戶(hù)是否違禁,如果有違禁的筆記可以對(duì)其進(jìn)行刪除[9]。用戶(hù)遺忘密碼時(shí),可以聯(lián)系管理員修改密碼。
Qt是一個(gè)能支持多種操作系統(tǒng)的開(kāi)發(fā)框架,它使用C++語(yǔ)言開(kāi)發(fā),為使用者提供了C++圖形用戶(hù)界面庫(kù)。Qt通過(guò)對(duì)所支持的操作系統(tǒng)平臺(tái)的底層API的功能抽象統(tǒng)一,Qt使用了統(tǒng)一編程接口,忽略了各個(gè)操作系統(tǒng)的差異,但也為不同的操作系統(tǒng)提供特定的編程接口[10]。Qt的應(yīng)用程序編程接口是直接建立在系統(tǒng)底層API之上,確保了程序的運(yùn)行效率,這是其他庫(kù)所不及的。Qt可以做到不修改代碼,即可實(shí)現(xiàn)跨平臺(tái)應(yīng)用的開(kāi)發(fā)。用一套代碼在不同平臺(tái)編譯后,即可生成直接在該平臺(tái)運(yùn)行的軟件。
筆記模塊包含系統(tǒng)的主要功能:創(chuàng)建筆記、筆記重命名、刪除筆記、修改筆記,如圖3所示。
圖3 用戶(hù)操作界面
創(chuàng)建筆記本:用戶(hù)輸入筆記名稱(chēng),在右側(cè)的編輯欄就可以書(shū)寫(xiě)筆記的內(nèi)容,點(diǎn)擊保存按鈕后,筆記將會(huì)以文件的形式保存于服務(wù)器端。
筆記重命名:查看筆記后直接對(duì)原標(biāo)題進(jìn)行修改即可對(duì)標(biāo)題進(jìn)行重命名。服務(wù)端會(huì)搜索到存儲(chǔ)筆記標(biāo)題的booklist.txt文件,將其中需要修改的標(biāo)題修改成修改過(guò)的標(biāo)題,再將book文件夾中原來(lái)的標(biāo)題名文件重命名為新的標(biāo)題名字。
刪除筆記:先判斷用戶(hù)文件夾中的book文件夾中是否有該文章的標(biāo)題,執(zhí)行刪除語(yǔ)句,先將該筆記的內(nèi)容清空,再將該筆記的標(biāo)題從文本中去除,成功刪除筆記本。
本項(xiàng)目采用文件的方式存儲(chǔ)數(shù)據(jù),文件存儲(chǔ)的優(yōu)勢(shì)是移植數(shù)據(jù)方便,如圖4所示。
圖4 存儲(chǔ)實(shí)現(xiàn)
文件夾是存放整個(gè)系統(tǒng)數(shù)據(jù)的文件夾,用戶(hù)文件夾是用戶(hù)名命名的文件夾,booklist.txt文件是存入該用戶(hù)的筆記標(biāo)題。book文件夾存放用戶(hù)筆記。noteserver user.txt文件存放所有用戶(hù)信息。
本文根據(jù)測(cè)試目的截取了PTGM模型測(cè)試環(huán)節(jié)的部分內(nèi)容,通過(guò)測(cè)試力求客戶(hù)端軟件能夠?qū)崿F(xiàn)多用戶(hù)同時(shí)登錄的基本功能。
在服務(wù)器端使用預(yù)先準(zhǔn)備的測(cè)試程序,用3臺(tái)不同操作系統(tǒng)的PC機(jī)同時(shí)登錄,3臺(tái)PC機(jī)的系統(tǒng)分別為Windows10,MacOS Monterey12.2,Ubuntu 20.04,對(duì)登錄用戶(hù)、編寫(xiě)筆記并保存等功能進(jìn)行測(cè)試。每當(dāng)用戶(hù)進(jìn)行登錄、查看筆記、保存操作時(shí),服務(wù)端的測(cè)試程序會(huì)按照操作順序在測(cè)試程序Debug輸出欄處打印出客戶(hù)端操作,以便確定每個(gè)用戶(hù)的操作是否被服務(wù)器正確接收并且執(zhí)行相應(yīng)的操作。
從上面對(duì)系統(tǒng)的功能測(cè)試結(jié)果表明,經(jīng)過(guò)測(cè)試,每個(gè)功能都能被服務(wù)器正常讀取,操作都被處理,筆記的保存正常,并且運(yùn)行速度也達(dá)到了預(yù)期。
該系統(tǒng)在Qt框架下基于C++語(yǔ)言,可部署在私有云平臺(tái)上,私密性更佳。云筆記項(xiàng)目可以在Windows,Linux,MacOS等主流平臺(tái)直接編譯和運(yùn)行,達(dá)到了“一處編寫(xiě),多處編譯和運(yùn)行”的目標(biāo),為進(jìn)一步開(kāi)發(fā)跨平臺(tái)的應(yīng)用打下了堅(jiān)實(shí)基礎(chǔ)。