王瑀 張琦 關(guān)雅文 孟澤昕 周鑫
引言
本論文主要描述該醫(yī)考綜合模擬平臺(tái)的設(shè)計(jì)、開(kāi)發(fā)過(guò)程,詳細(xì)講述了需求確認(rèn)、架構(gòu)選擇、基本功能、數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)和所使用的關(guān)鍵技術(shù),對(duì)該軟件程序的制作過(guò)程進(jìn)行總結(jié),客觀分析了其設(shè)計(jì)的成長(zhǎng)空間。軟件主要能夠?qū)崿F(xiàn)醫(yī)學(xué)生日常考試的選擇題部分模擬,統(tǒng)計(jì)錯(cuò)題生成報(bào)表,乃至錯(cuò)題重練功能。本文亦對(duì)系統(tǒng)中所使用的各類(lèi)技術(shù)進(jìn)行了一定研究。軟件使用Microsoft Visual Studio Code開(kāi)源代碼編輯器進(jìn)行開(kāi)發(fā)與編譯,使用Microsoft Office Excel軟件導(dǎo)出的*.xlsx文件進(jìn)行數(shù)據(jù)保存,便于同學(xué)修改題庫(kù),Golang編程語(yǔ)言用于圖形用戶(hù)界面與后端算法的開(kāi)發(fā),軟件對(duì)醫(yī)學(xué)生具有一定用途。
平臺(tái)概述
目標(biāo)描述
以現(xiàn)代化、信息化的方法對(duì)醫(yī)學(xué)生進(jìn)行綜合測(cè)試,解決易錯(cuò)題的收集和再次練習(xí)的難題,達(dá)到實(shí)時(shí)、動(dòng)態(tài)、全面梳理已有知識(shí)的目的。為學(xué)生的進(jìn)一步學(xué)習(xí)提供輔助決策支持。使學(xué)生對(duì)知識(shí)的掌握規(guī)范有序,提高了學(xué)習(xí)效率以及學(xué)習(xí)興趣,極大地增強(qiáng)了學(xué)生的就業(yè)、考研競(jìng)爭(zhēng)力。
系統(tǒng)的常規(guī)開(kāi)發(fā)過(guò)程
常規(guī)軟件的開(kāi)發(fā)過(guò)程應(yīng)包含開(kāi)發(fā)準(zhǔn)備、調(diào)查、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)維護(hù)等步驟。根據(jù)開(kāi)發(fā)系統(tǒng)的大小、時(shí)間空間復(fù)雜度、各階段投入、程序編寫(xiě)的方式方法等因素的不同,各步驟的要求和內(nèi)容也不同,故需要根據(jù)實(shí)際情況另行規(guī)劃。
開(kāi)發(fā)準(zhǔn)備:主要應(yīng)包括有具體需求的獲取、選擇共同成立開(kāi)發(fā)團(tuán)隊(duì)的人員、制作開(kāi)發(fā)甘特圖等工作。
調(diào)查:系統(tǒng)分析應(yīng)建立在現(xiàn)行調(diào)查的基礎(chǔ)上,即應(yīng)調(diào)查學(xué)生現(xiàn)行的選擇題練題方法。
(1)系統(tǒng)分析:即平臺(tái)正常運(yùn)行所需的邏輯設(shè)計(jì),是軟件開(kāi)發(fā)與程序編寫(xiě)時(shí)最為重要的環(huán)節(jié),要求在開(kāi)發(fā)前調(diào)查結(jié)果的基礎(chǔ)上,對(duì)該軟件開(kāi)發(fā)需要編寫(xiě)的功能進(jìn)行細(xì)致的分析與規(guī)劃,并建立一個(gè)新的軟件模型。
(2)系統(tǒng)設(shè)計(jì):是利用系統(tǒng)分析環(huán)節(jié)生成的報(bào)告,從中提取關(guān)鍵信息來(lái)建立邏輯模型,使用一切現(xiàn)有的技術(shù)成果和手段進(jìn)行模型的細(xì)節(jié)設(shè)計(jì),確定軟件的實(shí)施計(jì)劃。
(3)系統(tǒng)維護(hù):應(yīng)用軟件是一個(gè)復(fù)雜的實(shí)時(shí)系統(tǒng),瞬息萬(wàn)變的系統(tǒng)內(nèi)部環(huán)境與外部交互從始至終地影響著系統(tǒng)的運(yùn)行,這就需要設(shè)計(jì)者對(duì)該系統(tǒng)的不斷完善以提高運(yùn)行效率與服務(wù)水平,從始至終地進(jìn)行系統(tǒng)的維護(hù)開(kāi)發(fā)工作。
開(kāi)發(fā)技術(shù)與平臺(tái)介紹
開(kāi)發(fā)技術(shù)
1.Go編程語(yǔ)言
Go 是一種開(kāi)源編程語(yǔ)言,它具有表現(xiàn)力、簡(jiǎn)潔、干凈和高效。 它的并發(fā)機(jī)制可以輕松編寫(xiě)程序,充分利用多核和聯(lián)網(wǎng)主機(jī),而其新穎的類(lèi)型系統(tǒng)可以實(shí)現(xiàn)靈活和模塊化的程序構(gòu)建。 Go 可以快速編譯為機(jī)器代碼,但具有垃圾收集的便利性和運(yùn)行時(shí)反射的能力。 它是一種快速的、靜態(tài)類(lèi)型的、編譯的語(yǔ)言,但感覺(jué)就像一種動(dòng)態(tài)類(lèi)型的解釋型語(yǔ)言。
2.Fyne GUI庫(kù)
Fyne 工具包是一個(gè)易于學(xué)習(xí)、免費(fèi)和開(kāi)源的平臺(tái),用于為桌面、移動(dòng)設(shè)備及其他平臺(tái)構(gòu)建圖形應(yīng)用程序。 將 Go 編程語(yǔ)言的強(qiáng)大功能和簡(jiǎn)單性與精心制作的小部件庫(kù)相結(jié)合,現(xiàn)在比以往任何時(shí)候都更容易構(gòu)建應(yīng)用程序并將其部署到所有平臺(tái)和商店。
3.*.xlsx文件格式
xlsx是Microsoft Office EXCEL 2007/2010/2013/2016/2019文檔的擴(kuò)展名。其基于Office Open XML標(biāo)準(zhǔn)的壓縮文件格式取代了其以前專(zhuān)有的默認(rèn)文件格式。
平臺(tái)介紹
1.平臺(tái)外觀
軟件采用簡(jiǎn)潔的白底黑字、藍(lán)色標(biāo)簽的配色,可讀性更高的同時(shí)不失優(yōu)雅的外觀。
2.平臺(tái)功能
作為一款選擇題練習(xí)軟件,基礎(chǔ)的練習(xí)功能必不可少。軟件的練習(xí)頁(yè)面提供了“上一題”“下一題”與“提交”三個(gè)按鈕,最大程度減少練習(xí)過(guò)程中不必要干擾的同時(shí),也可以方便地查看已作答的題目。而第二個(gè)標(biāo)簽頁(yè)“關(guān)于軟件與說(shuō)明”則提供了軟件詳細(xì)的使用說(shuō)明與版權(quán)聲明,幫助同學(xué)們高效地使用同時(shí)辨別盜版軟件。該軟件使用微軟Excel辦公軟件導(dǎo)出的 *.docx格式的表格文件作為題庫(kù),以使毫無(wú)開(kāi)發(fā)基礎(chǔ)的同學(xué)也能方便地對(duì)題庫(kù)進(jìn)行增、刪、改、查等操作。每一次作答完畢后,軟件自動(dòng)生成同為(*.docx)格式的錯(cuò)題本,使同學(xué)們無(wú)論是使用錯(cuò)題再次測(cè)試還是保存文件隨時(shí)查看都只需要輕點(diǎn)鼠標(biāo)。軟件秉承“高內(nèi)聚,低耦合”的設(shè)計(jì)原則,運(yùn)行穩(wěn)定占用內(nèi)存低,保證低端設(shè)備的兼容性,并可以自動(dòng)完成一切基本操作。
測(cè)試及錯(cuò)誤處理
單元測(cè)試
在計(jì)算機(jī)編程中,單元測(cè)試(英語(yǔ): Unit Testing )又稱(chēng)為模塊測(cè)試,是針對(duì)程序模塊(軟件設(shè)計(jì)的最小單位)來(lái)進(jìn)行正確性檢驗(yàn)的測(cè)試工作。
本項(xiàng)目使用Golang內(nèi)置Testing功能進(jìn)行單元測(cè)試的設(shè)計(jì),以達(dá)到測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的需求。
Golang的單元測(cè)試有以下幾點(diǎn)規(guī)約要求:
·單元測(cè)試文件名必須以 xxx_test.go 命名;
·方法必須是 TestXxx 開(kāi)頭,建議風(fēng)格保持一致(駝峰或者下劃線);
·方法參數(shù)必須為 t *testing.T;
·測(cè)試文件和被測(cè)試文件必須在一個(gè)包中。
錯(cuò)誤處理
錯(cuò)誤在Golang中是一個(gè)error接口類(lèi)型,如果函數(shù)包含錯(cuò)誤,我們就可以在返回值列表的最后一個(gè)值中獲取該錯(cuò)誤信息并逐層向上傳遞返回,直到錯(cuò)誤被處理。
總結(jié)
龐大的醫(yī)學(xué)生基數(shù)給教育培訓(xùn)類(lèi)應(yīng)用程序帶來(lái)了巨大的商機(jī)。隨著時(shí)間的推移,傳統(tǒng)教育模式不斷變化的趨勢(shì)愈演愈烈。而如今通過(guò)通用計(jì)算機(jī)和手機(jī)應(yīng)用程序,線下培訓(xùn)和移動(dòng)學(xué)習(xí)更加完全有機(jī)地結(jié)合了起來(lái)。
在這次開(kāi)發(fā)中,本著對(duì)現(xiàn)代化、信息化醫(yī)學(xué)教育的學(xué)習(xí)和研究,我進(jìn)行了這個(gè)選題,而此次研究帶來(lái)的好處也是顯著的。在項(xiàng)目推進(jìn)過(guò)程中,我對(duì)使用的框架、語(yǔ)言都有了更深層次的了解,同時(shí)對(duì)醫(yī)學(xué)的專(zhuān)業(yè)課知識(shí)形成了一個(gè)整體框架,頭腦中已有的概念也更加清晰。對(duì)作品的每一次改善都是學(xué)習(xí)中的收獲,我也會(huì)不忘初心,繼續(xù)在我熱愛(ài)的方向上走下去。
參考文獻(xiàn):
[1]The Go Programming Language. Documentation[T/OL].https://golang.google.cn/doc/,2021-7-29.
[2]Fyne.HELPING THE WORLD BUILD BETTER SOFTWARE[T/OL].https://fyne.io/,2021-7-29.
[3]百度. xlsx_百度百科[EB/OL]. https://baike.baidu.com/item/xlsx/3044321,2021-7-29.
[4]知乎.Golang 單元測(cè)試指引[EB/OL].? https://zhuanlan.zhihu.com/p/267341653,2021-7-29.
通信作者:李璐