本發(fā)明涉及web路由分組處理,尤其涉及一種基于抽象語法樹ast的web路由分組處理系統(tǒng)、方法及存儲介質(zhì)。
背景技術(shù):
1、目前,隨著互聯(lián)網(wǎng)公司業(yè)務(wù)的迭代和增長,尤其是涉及web(全球廣域網(wǎng))前端開發(fā)領(lǐng)域的公司,其內(nèi)部軟件體系日漸龐大,大多數(shù)公司的運營系統(tǒng)已經(jīng)有過百,甚至過千個頁面,但是現(xiàn)有的開發(fā)體系在每次啟動時,都會把這些頁面全部加載(因web項目的路由是將所有頁面串聯(lián)起來,默認(rèn)會全部加載),這就會極大增加啟動、編譯時間(一般500個頁面左右的項目,其啟動時間約3分鐘~6分鐘,編譯時間約15分鐘),嚴(yán)重影響開發(fā)效率,因此,需要對其進(jìn)行改進(jìn)。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種基于抽象語法樹ast的web路由分組處理系統(tǒng)、方法及存儲介質(zhì),本發(fā)明首先將開發(fā)源代碼轉(zhuǎn)換成抽象語法樹狀結(jié)構(gòu),再將路由源文件進(jìn)行切片,最后將切片好的文件按切片先后排列分組,在分組完成后,可以按分組分別啟動和編譯,以減少不必要的資源加載,提升開發(fā)效率。
2、為實現(xiàn)上述目的,采用以下技術(shù)方案:
3、一種基于抽象語法樹ast的web路由分組處理系統(tǒng),包括
4、路由文件加載器,所述路由文件加載器用于加載web項目的路由文件;
5、抽象語法樹解析器,所述抽象語法樹解析器用于解析路由源文件,并將路由源文件轉(zhuǎn)換為抽象語法樹ast格式,再依據(jù)分組標(biāo)識,將ast格式中的路由節(jié)點進(jìn)行初步分組;
6、路由切片器,所述路由切片器用于對每個分組的路由節(jié)點進(jìn)行切片,生成若干切片文件;
7、路由分組器,所述路由分組器用于對生成的若干切片文件進(jìn)行具體分組;
8、啟動編譯控制器,所述啟動編譯控制器用于依據(jù)分組結(jié)果控制項目的啟動和編譯。
9、進(jìn)一步的,所述路由切片器根據(jù)預(yù)定的切片大小對路由節(jié)點進(jìn)行切片,其中,切片大小依據(jù)文件的類型和預(yù)期的傳輸效率進(jìn)行設(shè)定,且切片時,需要確保切片的邊界不破壞文件中的關(guān)鍵信息,其中,所述關(guān)鍵信息包括路由表項的完整性。
10、進(jìn)一步的,所述路由分組器根據(jù)預(yù)定的分組規(guī)則對切片文件進(jìn)行分組,其中,所述分組規(guī)則基于切片文件的性質(zhì)、目標(biāo)節(jié)點的需求及傳輸鏈路的狀況進(jìn)行確定;所述路由分組器還用于按照切片文件的先后順序,對每個組內(nèi)的切片文件進(jìn)行排序。
11、還提供一種基于抽象語法樹ast的web路由分組處理方法,采用上述的基于抽象語法樹ast的web路由分組處理系統(tǒng),包括如下步驟:
12、s1:基于路由文件加載器加載web項目的路由文件,從項目目錄中獲取路由配置文件;
13、s2:對路由源文件進(jìn)行切片并分組;
14、s3:依據(jù)切片分組結(jié)果對項目進(jìn)行分組啟動和編譯。
15、進(jìn)一步的,所述s2具體包括如下步驟:
16、s21:基于抽象語法樹解析器解析路由源文件,并將路由源文件轉(zhuǎn)換為抽象語法樹ast格式;
17、s22:依據(jù)分組標(biāo)識,將ast格式中的路由節(jié)點進(jìn)行初步分組;
18、s23:基于路由切片器,對每個分組的路由節(jié)點進(jìn)行切片,生成若干切片文件;
19、s24:基于路由分組器,對生成的若干切片文件進(jìn)行具體分組。
20、進(jìn)一步的,所述s24中,路由分組器根據(jù)預(yù)定的分組規(guī)則對切片文件進(jìn)行分組,其中,所述分組規(guī)則基于切片文件的性質(zhì)、目標(biāo)節(jié)點的需求及傳輸鏈路的狀況進(jìn)行確定。
21、進(jìn)一步的,所述s24中,路由分組器還會按照切片文件的先后順序,對每個組內(nèi)的切片文件進(jìn)行排序。
22、進(jìn)一步的,所述s3中,使用命令行工具參數(shù)來控制項目的啟動和編譯。
23、進(jìn)一步的,使用命令行工具參數(shù)控制項目的啟動和編譯,具體包括如下步驟:
24、創(chuàng)建一個命令行配置對象cliconfig;
25、設(shè)置一個選項,使得命令行工具不會將選項存儲為程序?qū)嵗膶傩裕?/p>
26、添加一個選項--name,這個選項后面需要跟隨一個或多個名字(<names>),它的描述是“產(chǎn)品名稱”,并且默認(rèn)值是'customer';
27、再添加一個選項--team,這個選項后面需要跟隨一個團(tuán)隊名稱(<team>),它的描述是“按分組啟動”,并且默認(rèn)值也是'customer'。
28、還提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序適于由處理器加載并執(zhí)行,以使得具有所述處理器的計算機設(shè)備執(zhí)行上述的方法。
29、采用上述方案,本發(fā)明的有益效果是:
30、本發(fā)明利用抽象語法樹ast對web路由進(jìn)行分組處理,實現(xiàn)了資源管理和編譯優(yōu)化的目標(biāo),同時,通過按需過濾和啟動項目,減少了不必要的編譯時間,極大提高了開發(fā)效率。
1.一種基于抽象語法樹ast的web路由分組處理系統(tǒng),其特征在于,包括路由文件加載器,所述路由文件加載器用于加載web項目的路由文件;
2.根據(jù)權(quán)利要求1所述的基于抽象語法樹ast的web路由分組處理系統(tǒng),其特征在于,所述路由切片器根據(jù)預(yù)定的切片大小對路由節(jié)點進(jìn)行切片,其中,切片大小依據(jù)文件的類型和預(yù)期的傳輸效率進(jìn)行設(shè)定,且切片時,需要確保切片的邊界不破壞文件中的關(guān)鍵信息,其中,所述關(guān)鍵信息包括路由表項的完整性。
3.根據(jù)權(quán)利要求2所述的基于抽象語法樹ast的web路由分組處理系統(tǒng),其特征在于,所述路由分組器根據(jù)預(yù)定的分組規(guī)則對切片文件進(jìn)行分組,其中,所述分組規(guī)則基于切片文件的性質(zhì)、目標(biāo)節(jié)點的需求及傳輸鏈路的狀況進(jìn)行確定;所述路由分組器還用于按照切片文件的先后順序,對每個組內(nèi)的切片文件進(jìn)行排序。
4.一種基于抽象語法樹ast的web路由分組處理方法,采用權(quán)利要求1至3任意一項所述的基于抽象語法樹ast的web路由分組處理系統(tǒng),其特征在于,包括如下步驟:
5.根據(jù)權(quán)利要求4所述的基于抽象語法樹ast的web路由分組處理方法,其特征在于,所述s2具體包括如下步驟:
6.根據(jù)權(quán)利要求5所述的基于抽象語法樹ast的web路由分組處理方法,其特征在于,所述s24中,路由分組器根據(jù)預(yù)定的分組規(guī)則對切片文件進(jìn)行分組,其中,所述分組規(guī)則基于切片文件的性質(zhì)、目標(biāo)節(jié)點的需求及傳輸鏈路的狀況進(jìn)行確定。
7.根據(jù)權(quán)利要求6所述的基于抽象語法樹ast的web路由分組處理方法,其特征在于,所述s24中,路由分組器還會按照切片文件的先后順序,對每個組內(nèi)的切片文件進(jìn)行排序。
8.根據(jù)權(quán)利要求4所述的基于抽象語法樹ast的web路由分組處理方法,其特征在于,所述s3中,使用命令行工具參數(shù)來控制項目的啟動和編譯。
9.根據(jù)權(quán)利要求8所述的基于抽象語法樹ast的web路由分組處理方法,其特征在于,使用命令行工具參數(shù)控制項目的啟動和編譯,具體包括如下步驟:
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序適于由處理器加載并執(zhí)行,以使得具有所述處理器的計算機設(shè)備執(zhí)行權(quán)利要求4至9任意一項所述的方法。