李毓麗 黃澤楷
摘要:目前,某高校某系對教師更新檔案資料主要采取的是線下收集及更新的傳統(tǒng)模式,該方式不僅僅無法及時(shí)更新教師資料,效率低下,也消耗了一定的人力資源和時(shí)間成本。針對該現(xiàn)象,主張研發(fā)教師檔案管理系統(tǒng)對檔案信息進(jìn)行一個(gè)規(guī)范化的管理,減少非必要的成本消耗,提高整體使用效率,該系統(tǒng)采用Vue+Koa+MongoDB+TypeScript的技術(shù)組合方式進(jìn)行開發(fā),并提供以權(quán)限、文件、信息、審核、通知為主要模塊,該文主要分析了該系統(tǒng)的主要功能以及核心方法:Fields-Map-ping
關(guān)鍵詞:Fields-Mapping;檔案管理系統(tǒng);Axios
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)15-0102-02
1教師檔案管理系統(tǒng)設(shè)計(jì)
教師檔案管理系統(tǒng)主要針對某高校某系的需求進(jìn)行開發(fā),系統(tǒng)設(shè)計(jì)的內(nèi)部模塊有信息模塊、文件模塊、通知模塊、權(quán)限模塊,審核模塊。各模塊的主要作用如下所述:信息模塊的作用是管理教師檔案資料,方便管理員對信息進(jìn)行查看及整理,文件模塊包含了系統(tǒng)內(nèi)部所有的共享及非共享文件,針對每一個(gè)上傳的文件可由管理員確定下載文件名,通知模塊的作用主要是提供給管理員進(jìn)行任務(wù)的通知,主要采用了Websocket機(jī)制實(shí)現(xiàn)服務(wù)器端推送消息的過程,使前臺頁面可以實(shí)現(xiàn)實(shí)時(shí)響應(yīng),系統(tǒng)內(nèi)部并沒有強(qiáng)制性的設(shè)置管理員,開發(fā)之初只有一名超級管理員,以權(quán)限模塊的方式提倡用戶都可以成為管理員,并且只有超級管理員才能通過權(quán)限模塊給系統(tǒng)內(nèi)部存在的教師賦予相關(guān)操作權(quán)限,為了確保當(dāng)前教師檔案信息的正確性及嚴(yán)謹(jǐn)性,提供審核模塊進(jìn)行各種任務(wù)的審核,同時(shí)管理員可以根據(jù)不同的任務(wù)類型自定義不同的審核流程。
2Fields-Mapping技術(shù)在系統(tǒng)中的應(yīng)用
在整個(gè)系統(tǒng)內(nèi)部主要采用的核心技術(shù)點(diǎn)就是Fields-Map-ping,借助于Fields-Mapping可以有效地隱藏?cái)?shù)據(jù)庫實(shí)際字段,提高整個(gè)系統(tǒng)的安全性能,另一方面,只需要給Fields-Mapping提供一份字段映射配置就可以在前后臺系統(tǒng)中自由的切換不同的數(shù)據(jù),降低由于因?yàn)橛捎谇昂笈_其中一方修改字段而需要深人代碼進(jìn)行修改,降低維護(hù)成本。
Fields-Mapping顧名思義就是字段映射,在系統(tǒng)內(nèi)部制定了懶映射和深度映射兩種機(jī)制,使用者可根據(jù)不同的場景選擇使用不同的映射方式。在該系統(tǒng)中實(shí)現(xiàn)Fields-Mapping的方式主要采用兩種實(shí)現(xiàn)方式,一種是借助TvpeScript的裝飾器,裝飾器(Decorators)是在類的聲明及成員上通過元編程語法添加標(biāo)注提供了一種方式,而利用元數(shù)據(jù)則可以對傳人函數(shù)的參數(shù)進(jìn)行處理,在該系統(tǒng)的整體開發(fā)過程中主要借助reflect-metadata庫進(jìn)行實(shí)現(xiàn),而另外一種實(shí)現(xiàn)方式主要采用Axios的攔截器對數(shù)據(jù)進(jìn)行映射。但是兩種實(shí)現(xiàn)方式的區(qū)別在于rrvpeScript的裝飾器適用于絕大部分開發(fā)場景,不僅僅是針對http請求響應(yīng)數(shù)據(jù)的映射,而且針對不同函數(shù)之間的字段也可以使用裝飾器進(jìn)行映射,但是采用Axios的方式僅僅局限于在發(fā)出HTFP時(shí)才能針對請求體的數(shù)據(jù)進(jìn)行一個(gè)字段映射,以下為兩種方式的簡單使用方法:
懶映射:主要是使用字符串替代的方式直接將對應(yīng)的字段轉(zhuǎn)化成配置文件中的數(shù)據(jù),使用該方式速度快,且方便,適合傳人的數(shù)據(jù)中沒有包含不同含義的字段名。
深度映射:即深入數(shù)據(jù)的內(nèi)部,由內(nèi)而外匹配配置文件中對應(yīng)的字段名,使用遍歷數(shù)據(jù)的方式從而實(shí)現(xiàn)整塊數(shù)據(jù)的字段映射,這種適合傳人的數(shù)據(jù)中包含有數(shù)組或者對象的場景。
在該系統(tǒng)中,為了提高系統(tǒng)的容錯(cuò)性及安全性,在信息管理模塊下的一鍵導(dǎo)人教師數(shù)據(jù)添加了字段映射功能,該功能是當(dāng)管理員使用一鍵上傳導(dǎo)人所有教師數(shù)據(jù)時(shí),系統(tǒng)內(nèi)部會進(jìn)行一個(gè)智能檢查,將所有導(dǎo)入的Excel表格數(shù)據(jù)與數(shù)據(jù)庫表中的字段進(jìn)行一一匹配,并且判斷當(dāng)中是否含有非法字段,如果當(dāng)前存在非法字段的話,系統(tǒng)將會發(fā)送相關(guān)非法字段的提示,然后管理員進(jìn)行可以通過有選擇性的將已存在的非法字段重新指定與數(shù)據(jù)庫中的字段間的映射關(guān)系,然后系統(tǒng)將會生成一份相關(guān)的映射配置,F(xiàn)ields-Mapping通過讀取該配置后進(jìn)行字段之間的轉(zhuǎn)換,最后在提交到服務(wù)器端實(shí)現(xiàn)入庫操作,確保了教師信息的準(zhǔn)確性,同時(shí)也降低了數(shù)據(jù)庫內(nèi)部存在非相關(guān)數(shù)據(jù)的風(fēng)險(xiǎn)。
3基于Fields-Mapping的教師檔案管理系統(tǒng)設(shè)計(jì)
前臺用戶進(jìn)行數(shù)據(jù)提交過程中,為了保證數(shù)據(jù)庫字段的安全性,系統(tǒng)前臺表單使用虛擬字段,并且將虛擬字段與數(shù)據(jù)庫字段的映射配置文件存在服務(wù)器端,當(dāng)用戶提交表單數(shù)據(jù)后,請求體中所包含的數(shù)據(jù)在到達(dá)服務(wù)器后,首先通過Fields-Map-ping進(jìn)行字段之間的轉(zhuǎn)換,生成一份正確的可以入庫的數(shù)據(jù),保證了數(shù)據(jù)庫字段不向外泄露,提高了系統(tǒng)整體的安全性能。
由于采用前后端分離開發(fā)的方式,兩方開發(fā)人員可以自由自定義自己所需要的字段,但是只需要要求兩方制定的字段之間存在對應(yīng)的映射關(guān)系即可,并且將該映射關(guān)系生成一份映射文件存在于服務(wù)器端,當(dāng)服務(wù)端返回響應(yīng)數(shù)據(jù)時(shí),先通過Fields-Mapping進(jìn)行字段之間的轉(zhuǎn)化,便可以在前臺實(shí)現(xiàn)無縫銜接。如果遇到服務(wù)端映射配置文件更新不及時(shí)的情況下,前端開發(fā)人員可以使用Axios的響應(yīng)攔截器通過Fields-Mapping來轉(zhuǎn)換成自己所需要的字段,使用Fields-Mapping從一定程度也降低了維護(hù)成本,當(dāng)服務(wù)端有某個(gè)字段進(jìn)行修改時(shí),只需要服務(wù)端直接修改配置文件即可,而不會影響到前臺的功能。
在通知模塊中使基于websocket的點(diǎn)對多消息推送,該功能存在于兩個(gè)角色之間,管理員可以通過消息發(fā)布組件發(fā)送通知時(shí),即通過websocket服務(wù)進(jìn)行消息轉(zhuǎn)發(fā),在消息轉(zhuǎn)發(fā)的過程中,將該條消息進(jìn)行一個(gè)入庫操作,隨后websocket服務(wù)器通過判斷用戶當(dāng)前是否在線,如果用戶在線的話,websocket隨即往前臺發(fā)送消息,則前臺便可以實(shí)時(shí)接收管理員發(fā)送的通知,如果用戶不在線的話,則采用傳統(tǒng)的方式進(jìn)行數(shù)據(jù)發(fā)送,教師可在消息列表中查看相關(guān)的通知信息,同時(shí)發(fā)布信息的過程中可選擇是否定時(shí)發(fā)送以及指定教師發(fā)送。
權(quán)限模塊則提供了嚴(yán)謹(jǐn)?shù)臋?quán)限方案,針對不同的教師,管理員可以提供不同的權(quán)限,權(quán)限的指定深度包括了不同模塊上任何相關(guān)操作,在一定的程度上盡量保證整個(gè)系統(tǒng)的安全性。
審核模塊在開發(fā)過程中內(nèi)置部分系統(tǒng)審核模塊,同時(shí)提供了由管理員自定義審核流程的功能,創(chuàng)建新的審核流程時(shí)可以選定是否關(guān)聯(lián)系統(tǒng)內(nèi)置審核流程,該方式提供給設(shè)置新的審核過程但是可以實(shí)現(xiàn)內(nèi)置審核流程的功能,如針對部分特殊部分的功能,教師信息更新等操作。
文件管理模塊用于記錄整個(gè)系統(tǒng)中存在的文件信息,管理員發(fā)布通知時(shí)如果有關(guān)聯(lián)的文件信息必須要優(yōu)先在該模塊中上傳文件,才可以作用于之后的信息發(fā)布,該模塊加強(qiáng)了系統(tǒng)對全部文件的管理,減少非必要文件而占用服務(wù)器空間,通過該模塊管理員可以自定義是否共享該文件的操作,可以隱藏部分系統(tǒng)內(nèi)部重要的文件資源。在該模塊進(jìn)行文件上傳時(shí)可由上傳者自定義文件的下載名,減少由因?yàn)檫x擇文件時(shí)名字不正確而造成重復(fù)操作。
4結(jié)束語
教師檔案管理系統(tǒng)為教務(wù)員提供一個(gè)線上管理教師檔案的平臺,使檔案管理變得更加規(guī)范,并且針對檔案的安全性,在整個(gè)系統(tǒng)的研發(fā)過程中,研究并采用了Fields-Mapping方案,不僅僅在開發(fā)過程降低前后臺的合作成本,也加強(qiáng)了整個(gè)系統(tǒng)在使用過程中的安全性以及容錯(cuò)性。