呂太之 蔣玉婷 游學(xué)軍
摘要:就業(yè)是高職教育的生命,是衡量高職院校辦學(xué)成功與否的試金石。高職學(xué)生普遍缺乏面試過程中專業(yè)知識測評的指導(dǎo)和訓(xùn)練,影響了學(xué)生的就業(yè),基于此設(shè)計(jì)并實(shí)現(xiàn)了面試題庫系統(tǒng)。系統(tǒng)根據(jù)MVVM設(shè)計(jì)思路,構(gòu)建了前后端分離的架構(gòu)。后臺基于SpringCloud的微服務(wù)架構(gòu)實(shí)現(xiàn),前臺采用Vue框架實(shí)現(xiàn)展示,使用Docker完成分布式微服務(wù)部署。系統(tǒng)滿足了學(xué)生專業(yè)知識測評的訓(xùn)練,有效促進(jìn)智慧化校園的建設(shè)。
關(guān)鍵詞:面試題庫系統(tǒng);微服務(wù);SpringCloud;智慧校園;MyBatis
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)33-0030-03
1概述
高職院校是為社會培養(yǎng)具有創(chuàng)新能力的復(fù)合型技術(shù)人才,就業(yè)導(dǎo)向是高職教育的辦學(xué)宗旨。衡量高職院校辦學(xué)成功與否的試金石就是其畢業(yè)生能否充分就業(yè)。畢業(yè)生要想走上工作崗位,面試是必不可少的步驟。面試測評的主要內(nèi)容包括求職者的專業(yè)知識水平、綜合分析能力、語言表達(dá)能力、應(yīng)變能力、儀態(tài)、氣質(zhì)、口才和某些特殊技能等。
為了掌握求職者的專業(yè)水平,用人單位會通過筆試或者面試的方式進(jìn)行專業(yè)知識測試來驗(yàn)證求職者是否具有擔(dān)任某一工作所要的專業(yè)知識水平和相關(guān)的實(shí)際能力。用人單位在對求職者進(jìn)行專業(yè)知識測評時(shí)會結(jié)合本單位的業(yè)務(wù)特點(diǎn)及招聘崗位需求,不同單位、不同崗位間所側(cè)重的知識點(diǎn)差別比較大。學(xué)生畢業(yè)之際,有些專業(yè)課由于學(xué)完已經(jīng)很長時(shí)間了,不可避免會帶來遺忘。如此種種原因,學(xué)生如果面試前沒有提前做好準(zhǔn)備,順利通過專業(yè)知識測試會比較困難。另外,用人單位也很注重通過面試對學(xué)生其他素質(zhì)進(jìn)行綜合測評,沒出校門的學(xué)生,普遍缺乏社會經(jīng)驗(yàn),需要有針對性地對他們進(jìn)行面試技巧的輔導(dǎo)。
高職院校教師為了幫助學(xué)生更好地就業(yè),平時(shí)會通過各種渠道(如通過網(wǎng)絡(luò)及往年參加面試學(xué)生的反饋信息)收集一些專業(yè)知識面試題,包括一些面試技巧等等。但是,這些資源的收集是通過教師自發(fā)手工完成的,沒有得到一個(gè)很好的管理,也不能充分地提供給師生共享使用。
為了科學(xué)、有效地管理不同專業(yè)不同課程的大量面試題資源,并且充分利用校園網(wǎng)的優(yōu)勢,方便地提供給師生共享使用,很有必要開發(fā)一套基于Web環(huán)境的專業(yè)面試訓(xùn)練系統(tǒng)。該系統(tǒng)以江蘇海事學(xué)院智慧化校園建設(shè)和學(xué)生的實(shí)際需求為背景,通過微服務(wù)、Web應(yīng)用、MySQL數(shù)據(jù)庫等技術(shù),將收集到的專業(yè)面試題和面試技巧信息化、自動(dòng)化。以計(jì)算機(jī)代替手工操作方式,已具備技術(shù)上的可行性和應(yīng)用需求上的迫切性。
2系統(tǒng)的需求分析與設(shè)計(jì)
2.1需求分析
系統(tǒng)致力于如何提高高職信息類專業(yè)畢業(yè)生專業(yè)知識面試水平。面試技巧、面試流程、面試注意事項(xiàng)等主觀內(nèi)容,無妨提供系統(tǒng)進(jìn)行訓(xùn)練,在平臺中通過文檔、視頻等方式提供。平臺主要目的是設(shè)計(jì)并完成一套基于Spring Cloud的高職學(xué)生專業(yè)面試訓(xùn)練系統(tǒng),并完成軟件技術(shù)、軟件工程、移動(dòng)互聯(lián)網(wǎng)應(yīng)用技術(shù)等專業(yè)面試題庫的建設(shè)。諸如面試技巧、面試流程和注意事項(xiàng)等內(nèi)容因人為因素較大,較難通過系統(tǒng)方式進(jìn)行訓(xùn)練,平臺通過文檔、視頻方式提供學(xué)生學(xué)習(xí)。該系統(tǒng)分為前臺用戶訓(xùn)練和后臺資源管理維護(hù)二部分。前臺用戶可以是有需求的學(xué)生或者教師,用戶登錄之后可以在線進(jìn)行專業(yè)的訓(xùn)練、觀看面試技巧相關(guān)的視頻和文檔。用戶可以通過選擇崗位、公司,自動(dòng)抽取面試題庫中的相關(guān)試題進(jìn)行練習(xí)??陀^題可以由系統(tǒng)自動(dòng)評分并給出提示,主觀題待用戶練習(xí)之后可以查閱參考答案。后臺用戶是管理員,管理員可以維護(hù)崗位、課程、面試技巧信息及公司面試試題的維護(hù)。圖1顯示了系統(tǒng)的用例圖。
為了提供用戶良好的用戶體驗(yàn),對系統(tǒng)的執(zhí)行時(shí)間做出的以下的要求:用戶正常的操作和在線查詢、瀏覽等操作響應(yīng)速度控制在3秒以內(nèi),在線面試試卷的生成相應(yīng)時(shí)間控制在15秒以內(nèi),在線面試提交批改的相應(yīng)時(shí)間控制在5秒以內(nèi)。
2.2系統(tǒng)設(shè)計(jì)
微服務(wù)架構(gòu)是將單一應(yīng)用程序開發(fā)為一組小型服務(wù),每個(gè)服務(wù)運(yùn)行在單獨(dú)的進(jìn)程中,服務(wù)間通信采用輕量級通信機(jī)制。Spring cloud是微服務(wù)架構(gòu)的集大成者,將優(yōu)秀的微服務(wù)組件進(jìn)行了整合。系統(tǒng)基于SpringCloud框架,構(gòu)建微服務(wù)平臺,將應(yīng)用拆分為系統(tǒng)管理、基礎(chǔ)數(shù)據(jù)管理、用戶管理/登陸、面試題管理、面試資料管理多個(gè)微服務(wù),每個(gè)微服務(wù)完成單一功能,服務(wù)之間采用輕量級的Rest接口實(shí)現(xiàn)通信。系統(tǒng)總體架構(gòu)設(shè)計(jì)如圖2所示。
系統(tǒng)采用SpringCloud框架實(shí)現(xiàn)了前后端分離,微服務(wù)實(shí)現(xiàn)后臺業(yè)務(wù)處理,Vue框架實(shí)現(xiàn)前臺數(shù)據(jù)展現(xiàn)。通過SpringCloud框架實(shí)現(xiàn)了微服務(wù)的發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等。
3系統(tǒng)實(shí)現(xiàn)
3.1微服務(wù)實(shí)現(xiàn)
系統(tǒng)中的每個(gè)微服務(wù)項(xiàng)目是相互獨(dú)立的。每個(gè)微服務(wù)的開發(fā)通過Maven進(jìn)行管理,Jar包的引入通過pop文件添加依賴實(shí)現(xiàn),每個(gè)微服務(wù)的依賴并不完全一致,需要單獨(dú)配置。每個(gè)微服務(wù)都需要的依賴是MyBatis和MySQL。系統(tǒng)將微服務(wù)的實(shí)現(xiàn)分為服務(wù)層、業(yè)務(wù)層、數(shù)據(jù)持久層和域?qū)ο髮?。微服?wù)架構(gòu)如圖3所示。
服務(wù)層通過Spring Boot提供Rest接口,根據(jù)客戶端請求,調(diào)用業(yè)務(wù)層提供相應(yīng)的業(yè)務(wù)處理。業(yè)務(wù)層通過SDring框架進(jìn)行業(yè)務(wù)組件的組裝關(guān)聯(lián)。數(shù)據(jù)持久層通過MyBatis框架實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)庫訪問性能優(yōu)化和與數(shù)據(jù)庫交互的常用操作CRUD(Create Retrive Update Delete)。通過MyBatis框架實(shí)現(xiàn)了對象關(guān)系的映射,簡化了Java語言對數(shù)據(jù)庫的操作。域?qū)ο髮邮菙?shù)據(jù)庫表的映射,是ORM(Object Relation MappinE)產(chǎn)物。數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中,Redis存儲緩存數(shù)據(jù)。系統(tǒng)通過applicaton.yml配置Eureka Server服務(wù)器地址、微服務(wù)在Eureka Server中的名稱以及微服務(wù)的端口號等信息。
3.2前端實(shí)現(xiàn)
Vue是一個(gè)快速開發(fā)Web前端的工具包,可以簡化前端開發(fā),提高開發(fā)效率”。系統(tǒng)采用MVVM(Model-View-ViewModel)模式開發(fā)前端應(yīng)用,開發(fā)框架如圖4所示。
模型層(Model)封裝了業(yè)務(wù)邏輯和數(shù)據(jù),通過微服務(wù)來實(shí)現(xiàn)。數(shù)據(jù)模型層(viewModel)封裝了業(yè)務(wù)邏輯和狀態(tài),通過Vue框架和JavaScript腳本實(shí)現(xiàn)。數(shù)據(jù)模型層和微服務(wù)之間的通信采用異步方式,數(shù)據(jù)模型層采用Axios請求微服務(wù)的數(shù)據(jù),微服務(wù)返回JSON格式的數(shù)據(jù)。視圖層(VicW)封裝UI和UI邏輯,用戶在屏幕上看的結(jié)構(gòu)和外觀都是由視圖層實(shí)現(xiàn)的。
3.3系統(tǒng)測試
采用JMeter對系統(tǒng)進(jìn)行了性能測試。JMeter是Apache組織開發(fā)的基于Java的壓力測試工具,可用于Web應(yīng)用測試m。通過模擬不同數(shù)量的虛擬用戶并發(fā)訪問系統(tǒng),具體操作是設(shè)置模擬用戶數(shù)(線程數(shù))為200/300/500,每個(gè)用戶發(fā)出5個(gè)請求(循環(huán)次數(shù)),以此為基礎(chǔ)為每個(gè)模擬用戶場景連續(xù)進(jìn)行了五次測試。測試結(jié)果顯示基于Spring Cloud的前后端分離架構(gòu)能夠滿足用戶需求。
4系統(tǒng)部署
Docker是一款開源容器,采用擬化技術(shù),在一臺主機(jī)可以搭建數(shù)百臺甚至上千臺的。為了提高系統(tǒng)的可維護(hù)性和快速部署,系統(tǒng)將微服務(wù)部署在Docker集群上,部署架構(gòu)如圖所示。
系統(tǒng)采用“一個(gè)容器一個(gè)服務(wù)”的方式,將每個(gè)微服務(wù)部署在單一的容器上。將微服務(wù)部署到容器上需要將其打包為鏡像文件。系統(tǒng)通過Jenkins實(shí)現(xiàn)微服務(wù)的打包、鏡像推送操作。Jenkins是一種開源的、基于web界面的持續(xù)集成工具。
5結(jié)束語
針對畢業(yè)生需要面試習(xí)題練習(xí)、面試指導(dǎo)等需求,設(shè)計(jì)并實(shí)現(xiàn)了面試題庫系統(tǒng)。系統(tǒng)可進(jìn)行靈活的應(yīng)用,促進(jìn)畢業(yè)生就業(yè),提升專業(yè)建設(shè)水平。系統(tǒng)提供面試資源的管理與共享平臺。用戶登錄之后可以查閱系統(tǒng)中保存的所有面試試題、面試技巧信息,還可以觀看大量的面試就業(yè)相關(guān)視頻。同時(shí),可以通過選擇崗位、試題類型,自動(dòng)抽取面試題庫中的相關(guān)試題進(jìn)行練習(xí),用戶練習(xí)之后還可以查閱系統(tǒng)中保存的參考答案。后臺管理員可以維護(hù)崗位、面試題目、面試技巧信息及面試資料的維護(hù)。
系統(tǒng)采用前后端分離的微服務(wù)架構(gòu),提升了開發(fā)效率,增加了代碼的可維護(hù)性。系統(tǒng)采用Spring Cloud框架實(shí)現(xiàn)了后臺的微服務(wù),簡化了服務(wù)配置、服務(wù)容錯(cuò)、負(fù)載均衡。采用Vue實(shí)現(xiàn)了前端的可視化展現(xiàn),使得前端更易于擴(kuò)展。