国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Spring Boot的源碼資源托管平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2021-02-04 07:47戴家樹楊星雨林曉康
關(guān)鍵詞:離線代碼管理員

戴家樹,徐 濤,楊星雨,林曉康

(安徽工程大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽蕪湖 241000)

0 引言

在編程和信息技術(shù)爆炸性發(fā)展的21世紀(jì),以互聯(lián)網(wǎng)為核心的計(jì)算機(jī)技術(shù)已經(jīng)滲透到了各行各業(yè).閱讀源碼是提高從業(yè)人員技術(shù)水平的一條公認(rèn)的必經(jīng)之路.一般的源碼資源托管平臺(tái)操作繁瑣,用戶體驗(yàn)和發(fā)現(xiàn)優(yōu)質(zhì)源碼的能力不足,與此同時(shí)越來越多的開發(fā)者開始重新關(guān)注基于云的開發(fā)者生態(tài)系統(tǒng),這與未來的源碼資源托管平臺(tái)的發(fā)展?jié)摿ν耆恢?

為了解決上述現(xiàn)況,在基于Spring Boot的源碼資源托管平臺(tái)[1]中,普通用戶具有前端查看、主頁、已下載代碼、用戶中心、發(fā)布代碼、失效代碼、資源管理等功能;管理員具有統(tǒng)計(jì)信息、資源管理、資源類型管理、用戶管理、評(píng)論管理、友情鏈接管理等功能,同時(shí)還外加了推薦系統(tǒng)以便幫助用戶發(fā)現(xiàn)優(yōu)質(zhì)源碼.擁有這樣一個(gè)平臺(tái),可以對提升自身能力、擴(kuò)展眼界有巨大幫助.

1 系統(tǒng)分析

1.1 設(shè)計(jì)定位

想要了解一種技術(shù),都存在一定的入門壁壘,這不利于技術(shù)的發(fā)展和革新,所以作為推廣源碼資源的平臺(tái),其操作應(yīng)該是無門檻、簡單的.它可以滿足無論從事何種開發(fā)的開發(fā)者,都可以從該網(wǎng)站上獲取相應(yīng)的源碼以供閱讀學(xué)習(xí)[2],獲取經(jīng)驗(yàn)教訓(xùn),找尋靈感,認(rèn)識(shí)各個(gè)領(lǐng)域的大牛.其次,作為一種托管平臺(tái),用戶不必實(shí)時(shí)帶著自己的筆記本來回奔波,只需要從平臺(tái)云端下載托管的代碼,就可以免除物理機(jī)器的限制和地域的隔離,使同行之間的交流變得十分方便,解放開發(fā)者的思緒.最后,該平臺(tái)還需要擁有發(fā)現(xiàn)優(yōu)質(zhì)源碼的能力,給用戶減少時(shí)間成本并獲得良好的體驗(yàn).

1.2 數(shù)據(jù)庫設(shè)計(jì)結(jié)構(gòu)

該系統(tǒng)使用MySQL[3]數(shù)據(jù)庫,按照基本業(yè)務(wù)需求設(shè)計(jì)了7張表,分別是資源類型表、源碼資源表、評(píng)論表、消息表、用戶表、用戶下載和友情鏈接表.根據(jù)實(shí)際的需求,分別針對源碼資源表和用戶表、源碼資源表和資源類型表設(shè)置相應(yīng)的外鍵,實(shí)現(xiàn)連表查詢等基本數(shù)據(jù)操作.同時(shí)為了保證系統(tǒng)數(shù)據(jù)的完整性要求,在用戶修改資源內(nèi)容等方便設(shè)置事務(wù),并使事務(wù)符合ACID要求,數(shù)據(jù)庫E-R圖1所示.

1.3 功能需求

系統(tǒng)包括前端和后端兩個(gè)部分,前端的功能設(shè)計(jì)有:前端查看、我的主頁、已下載代碼、用戶中心、發(fā)布代碼、失效代碼、資源管理等基本功能;后端的功能設(shè)計(jì)包括:統(tǒng)計(jì)信息、資源管理、資源類型管理、用戶管理、評(píng)論管理、友情鏈接管理等基本功能,最后為了實(shí)現(xiàn)快速找尋優(yōu)質(zhì)代碼的需求,增加的各類榜單前端展示功能;此外為了提高智能性,在系統(tǒng)中使用基于ALS算法的離線推薦功能,使系統(tǒng)智能化.其系統(tǒng)業(yè)務(wù)如圖2所示:

1.4 性能需求

為保證源碼資源托管平臺(tái)可以穩(wěn)定、安全、高效的運(yùn)行,結(jié)合企業(yè)實(shí)際情況,系統(tǒng)應(yīng)當(dāng)達(dá)到以下性能需求:系統(tǒng)由于通信的需求會(huì)存在一定的延遲,并且需要等待系統(tǒng)響應(yīng)時(shí)間,因此為了能夠縮短這一部分代碼執(zhí)行時(shí)間,將其壓縮到系統(tǒng)能夠接受的限度、同時(shí)也應(yīng)該兼顧多線程和高并發(fā)的需要.系統(tǒng)的安全性也是重中之重.系統(tǒng)須保證數(shù)據(jù)安全,防止數(shù)據(jù)異常和非法訪問數(shù)據(jù).為了讓用戶有更好的體驗(yàn),系統(tǒng)的操作應(yīng)該是簡單和提示信息應(yīng)該是一目了然的.

2 技術(shù)支撐

2.1 Spring Boot技術(shù)

該系統(tǒng)的基礎(chǔ)框架是Spring Boot,基于其Maven插件,可以創(chuàng)建可執(zhí)行的JARs和WARs;內(nèi)嵌Tomcat容器,可以提供自動(dòng)配置的“starter”項(xiàng)目對象模型以簡化Maven配置;開發(fā)中自動(dòng)配置Spring容器以提供準(zhǔn)備好的特性,不需要XML配置.

2.2 Redis數(shù)據(jù)緩存

在數(shù)據(jù)存取時(shí),使用Redis數(shù)據(jù)庫完成[4].Redis是一個(gè)高性能的鍵值數(shù)據(jù)庫,在使用時(shí),首先初始化Redis模板,返回值實(shí)例化存儲(chǔ)對象;之后判斷Redis是否有目標(biāo)資源列表;若Redis里沒有資源列表,則去數(shù)據(jù)庫中查詢,將該資源推入相應(yīng)的Redis資源類型列表;最后分頁資源列表并返回當(dāng)前頁.

2.3 Shiro安全框架

在安全方面采用Shiro框架[5].首先驗(yàn)證身份信息,給予角色管理權(quán)限;在使用Shiro的配置類時(shí):首先,一個(gè)URL可以配置多個(gè)Filter,使用逗號(hào)分割;其次,當(dāng)設(shè)置多個(gè)過濾器時(shí),全部驗(yàn)證通過,才視為通過;最后,部分過濾器可以指定參數(shù)其中必須設(shè)立securityManager,如果不設(shè)置,默認(rèn)會(huì)自動(dòng)尋找工程根目錄下的login.jsp頁面.在過濾鏈的定義中,從上往下執(zhí)行,一般將/**放在最下面,authc 所有的url必須認(rèn)證通過才能訪問,anon所有的url可以匿名訪問.

2.4 Lucene引擎搜索

全文搜索引擎采用Lucene技術(shù).在使用Lucene搜索引擎技術(shù)[6]時(shí),首先創(chuàng)建一個(gè)索引目錄,然后創(chuàng)建一個(gè)分詞器實(shí)例對象,用來找配置文件;之后創(chuàng)建一個(gè)索引工具的配置對象;最后創(chuàng)建索引,寫出工具類.在使用時(shí):為了防止臟數(shù)據(jù)的產(chǎn)生,設(shè)立一個(gè)互斥鎖;之后引用上面創(chuàng)建的索引工具;在代碼上傳時(shí)獲得上傳的對象信息;最后將對象信息交給索引工具.

2.5 基于ALS的離線推薦算法

在系統(tǒng)智能化設(shè)計(jì)中,鑒于ALS算法是非常成熟的推薦算法之一,它的實(shí)現(xiàn)代碼是面向大眾開源的且已經(jīng)有相當(dāng)?shù)木薮髷?shù)據(jù)規(guī)模來訓(xùn)練選擇更優(yōu)質(zhì)的模型,提高推薦的準(zhǔn)確度.利用該算法設(shè)定的離線統(tǒng)計(jì)算法和離線推薦算法周期性的進(jìn)行結(jié)果統(tǒng)計(jì)與保存,計(jì)算的結(jié)果在一定時(shí)間周期內(nèi)是固定不變的,變更的頻率取決于算法調(diào)度的頻率.

3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

3.1 注冊登錄模塊

登錄模塊是系統(tǒng)的基礎(chǔ)模塊.在用戶的登錄與注冊模塊,為系統(tǒng)管理員和普通用戶的詳細(xì)的信息支持.該模塊為系統(tǒng)管理員與普通用戶之間建立起數(shù)據(jù)橋梁,通過用戶填寫個(gè)人信息完成用戶注冊,在登錄時(shí)通過用戶的注冊賬號(hào)和密碼匹配是否正確完成登錄.值得注意的是,在密碼中由于在安全方面的考慮,采用md5算法對密碼加密.這就在用戶完成注冊后,密碼被md5加密,在登錄時(shí),用戶提交的密碼需要被md5算法加密后得到的字符串與數(shù)據(jù)庫中的密碼比較驗(yàn)證.

3.2 用戶發(fā)布資源模塊

該模塊是系統(tǒng)的核心模塊之一,在這個(gè)模塊主要是用戶來發(fā)布自己的代碼鏈接和代碼介紹.在這一過程中,用戶需要選擇自己代碼的類型、發(fā)布的代碼鏈接(連接需要經(jīng)過系統(tǒng)自動(dòng)審核判斷它是否失效)、設(shè)置關(guān)鍵字和詳細(xì)信息,設(shè)置積分等.在用戶按了發(fā)布按鈕后,管理員就會(huì)審核代碼.若無敏感信息,即審核通過,在前端顯示,該模塊流程圖如圖3所示:

圖3 用戶發(fā)布資源模塊流程圖Fig.3 Flow Chart of User Publishing Resource Module

3.3 用戶下載及評(píng)論模塊

用戶可以通過博客中對代碼的描述選擇是否要下載代碼,若下載代碼只要不是免費(fèi)的資源都需要扣除相應(yīng)的積分.用戶評(píng)論模塊與管理員審核評(píng)論是一體的.該模塊是系統(tǒng)的后端模塊之一,在這個(gè)模塊主要管理員為了審核用戶發(fā)布的評(píng)論.用戶不能評(píng)論自己的代碼和資源.更有利于管理員對評(píng)論的綜合管理.當(dāng)管理員通過審核后,評(píng)論可以在前端顯示.

3.4 用戶資源管理模塊

該模塊是系統(tǒng)的后端模塊,在這個(gè)模塊主要用戶管理自己的代碼資源鏈接和代碼介紹是否需要修改和刪除,并在前端顯示自己所發(fā)布資源的各類信息和當(dāng)前資源的狀態(tài)(是否通過審核在前端可見),用戶還有代碼文檔中細(xì)節(jié)修改的功能,并能快速提交,幫助用戶管理代碼資源.在資源修改部分,主要可以修改代碼或資源的下載鏈接、下載積分、所屬類型、是否刪除等基本功能.滿足用戶在第一次發(fā)布后的多次修改需求.該模塊頁面如圖4所示:

圖4 用戶資源管理前端頁面展示Fig.4 Front Page Display of User Resource Management

3.5 管理員管理資源模塊

該模塊是系統(tǒng)的后端模塊,在這個(gè)模塊主要管理員為了審核用戶發(fā)布的代碼鏈接和代碼介紹是否存在敏感信息——審核通過,在前端顯示.除了審核以外,管理代碼也可以設(shè)置該資源是否免費(fèi)、是否熱門、是否應(yīng)該被刪除,同時(shí)還有查看等功能,幫助管理員管理代碼資源.與資源管理類似,在資源類型管理中主要添加、刪除或修改資源種類,也可以通過Lucene搜索引擎,模糊搜索資源種類.同時(shí)對已發(fā)布的資源可以進(jìn)行查看、編輯和刪除等操作功能,完善了管理員的管理范圍.該模塊頁面如圖5所示:

圖5 管理員管理資源前端頁面展示Fig.5 Front Page Display of Administrator Management

3.6 基于ALS算法的離線推薦

離線推薦服務(wù)是綜合用戶所有的歷史數(shù)據(jù),利用設(shè)定的離線統(tǒng)計(jì)算法和離線推薦算法周期性的進(jìn)行結(jié)果統(tǒng)計(jì)與保存,計(jì)算的結(jié)果在一定時(shí)間周期內(nèi)是固定不變的,變更的頻率取決于算法調(diào)度的頻率[7].離線推薦服務(wù)主要計(jì)算一些可以預(yù)先進(jìn)行統(tǒng)計(jì)和計(jì)算的指標(biāo),為實(shí)時(shí)計(jì)算和前端業(yè)務(wù)相應(yīng)提供數(shù)據(jù)支撐.離線推薦服務(wù)主要分為統(tǒng)計(jì)推薦、基于隱語義模型的協(xié)同過濾推薦以及基于內(nèi)容和基于Item-CF的相似推薦[8].對于模型,這并不一定是最優(yōu)的參數(shù)選取,所以我們需要對模型進(jìn)行評(píng)估.通常的做法是計(jì)算均方根誤差(RMSE),考察預(yù)測評(píng)分與實(shí)際評(píng)分之間的誤差.

(1)

有了RMSE,我們可以就可以通過多次調(diào)整參數(shù)值,來選取RMSE最小的一組作為我們模型的優(yōu)化選擇.

4 系統(tǒng)測試

4.1 測試環(huán)境

基于 Spring Boot 的源碼資源托管平臺(tái)使用 IntelliJ IDEA 在 Windows10 操作系統(tǒng)上啟動(dòng)運(yùn)行,JDK為 jdk1.8,瀏覽器使用QQ瀏覽器開發(fā)版.

4.2 測試方法與內(nèi)容

系統(tǒng)測試采用黑盒測試和白盒測試[9]相結(jié)合的方式,根據(jù)系統(tǒng)頁面上的功能菜單以及需求進(jìn)行功能測試.針對本平臺(tái),采用故障檢測機(jī)制[10]判斷其可靠性.

4.3 測試結(jié)果

通過對源碼托管平臺(tái)的測試,基本上達(dá)到了預(yù)期生成代碼加快開發(fā)效率的目的,系統(tǒng)頁面管理性以及系統(tǒng)拓展性在測試過程中表現(xiàn)優(yōu)秀.

5 結(jié)論與展望

經(jīng)過詳細(xì)的設(shè)計(jì)、開發(fā)、測試,基于Spring Boot的源碼資源托管平臺(tái)已上線.通過深入考察并分析了源碼資源托管平臺(tái)的可發(fā)展空間,然后對該系統(tǒng)進(jìn)行概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),最終實(shí)現(xiàn)了基于Spring Boot源碼資源托管平臺(tái).經(jīng)過功能測試和負(fù)載測試,系統(tǒng)運(yùn)行結(jié)果均良好.

猜你喜歡
離線代碼管理員
基于卷積神經(jīng)網(wǎng)絡(luò)的離線筆跡鑒別系統(tǒng)
新版Windows 10補(bǔ)丁離線安裝更簡單
可疑的管理員
神秘的代碼
一周機(jī)構(gòu)凈增(減)倉股前20名
一行代碼玩完19億元衛(wèi)星
讓管理員管不了的名字
好進(jìn)難出 應(yīng)對迅雷“口袋戰(zhàn)”
近期連續(xù)上漲7天以上的股
當(dāng)小小圖書管理員
陆良县| 康保县| 新源县| 江达县| 象山县| 襄垣县| 兰考县| 航空| 普兰店市| 安龙县| 商都县| 武汉市| 噶尔县| 嘉义市| 根河市| 永新县| 阳信县| 武汉市| 屏南县| 通河县| 临夏县| 泸西县| 高要市| 上饶县| 清水河县| 观塘区| 从化市| 盖州市| 文山县| 抚松县| 镇坪县| 光山县| 偏关县| 福清市| 绿春县| 阿拉善左旗| 新和县| 读书| 大荔县| 都兰县| 锡林浩特市|