本技術(shù)涉及計(jì)算機(jī),具體涉及一種代碼更新方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、框架是一種可復(fù)用的代碼體系,通常包括代碼類、方法、函數(shù)、變量、常量等功能結(jié)構(gòu)性代碼。項(xiàng)目的開發(fā)者能夠在框架的基礎(chǔ)上編輯業(yè)務(wù)代碼,生成業(yè)務(wù)代碼文件,用于實(shí)現(xiàn)特定的業(yè)務(wù)處理。項(xiàng)目的代碼文件包括框架代碼文件和業(yè)務(wù)代碼文件。項(xiàng)目中的業(yè)務(wù)代碼文件能夠基于框架代碼文件運(yùn)行。
2、隨著業(yè)務(wù)處理需求的改變,可能出現(xiàn)項(xiàng)目的框架無法適應(yīng)業(yè)務(wù)處理需求的問題,需要對(duì)框架進(jìn)行調(diào)整,并且對(duì)業(yè)務(wù)代碼進(jìn)行對(duì)應(yīng)調(diào)整。但是,項(xiàng)目中包括的代碼文件較多。目前采用人工調(diào)整代碼的方式,調(diào)整難度較大,成本較高。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)提供一種代碼更新方法、裝置、設(shè)備及介質(zhì),旨在實(shí)現(xiàn)自動(dòng)調(diào)整項(xiàng)目的代碼文件,降低調(diào)整代碼的難度和成本。
2、基于此,本技術(shù)提供的技術(shù)方案如下:
3、第一方面,本技術(shù)提供一種代碼更新方法,所述方法包括:
4、獲取項(xiàng)目的原始代碼文件,所述原始代碼文件包括原始框架代碼文件以及原始業(yè)務(wù)代碼文件;所述原始業(yè)務(wù)代碼文件用于基于所述原始框架代碼文件執(zhí)行項(xiàng)目業(yè)務(wù);
5、獲取所述項(xiàng)目的更新用的框架代碼文件;
6、利用所述更新用的框架代碼文件更新所述原始框架代碼文件;
7、基于所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,所述第一代碼屬于所述原始業(yè)務(wù)代碼文件,所述第二代碼是基于所述更新用的框架代碼文件確定的用于更新的業(yè)務(wù)代碼;
8、利用所述第二代碼更新所述第一代碼。
9、在一種可能的實(shí)現(xiàn)方式中,所述基于所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,包括:
10、基于標(biāo)準(zhǔn)代碼內(nèi)容、所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系。
11、在一種可能的實(shí)現(xiàn)方式中,所述基于標(biāo)準(zhǔn)代碼內(nèi)容、所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,包括:
12、建立所述更新用的框架代碼文件包括的第一內(nèi)容與所述標(biāo)準(zhǔn)代碼內(nèi)容的第一對(duì)應(yīng)關(guān)系;所述標(biāo)準(zhǔn)代碼內(nèi)容包括包名、方法和參數(shù)中的一種或者多種;
13、建立所述原始框架代碼文件包括的第二內(nèi)容與標(biāo)準(zhǔn)代碼內(nèi)容的第二對(duì)應(yīng)關(guān)系;
14、基于所述第一對(duì)應(yīng)關(guān)系和所述第二對(duì)應(yīng)關(guān)系,建立所述第一內(nèi)容與所述第二內(nèi)容的對(duì)應(yīng)關(guān)系;
15、基于所述第一內(nèi)容與所述第二內(nèi)容的對(duì)應(yīng)關(guān)系,建立所述第一代碼與所述第二代碼的對(duì)應(yīng)關(guān)系,所述第一代碼包括第一內(nèi)容,所述第二代碼包括第二內(nèi)容。
16、在一種可能的實(shí)現(xiàn)方式中,所述利用所述更新用的框架代碼文件更新所述原始框架代碼文件,包括:
17、利用所述更新用的框架代碼文件替換所述原始框架代碼文件。
18、在一種可能的實(shí)現(xiàn)方式中,在利用所述更新用的框架代碼文件替換所述原始框架代碼文件之前,所述方法還包括:
19、構(gòu)建所述更新用的框架代碼文件的第一抽象語法樹;
20、對(duì)所述第一抽象語法樹進(jìn)行調(diào)整,使得所述更新用的框架代碼文件包括的框架代碼符合標(biāo)準(zhǔn)框架代碼格式;
21、利用調(diào)整后的第一抽象語法樹,重新生成更新用的框架代碼文件。
22、在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
23、獲取所述項(xiàng)目的更新用的業(yè)務(wù)代碼文件,所述第二代碼屬于所述更新用的業(yè)務(wù)代碼文件。
24、在一種可能的實(shí)現(xiàn)方式中,所述獲取所述項(xiàng)目的更新用的框架代碼文件,包括:
25、基于所述原始框架代碼文件,重構(gòu)所述項(xiàng)目的框架,生成所述項(xiàng)目的更新用的框架代碼文件,所述更新用的代碼文件用于調(diào)整所述項(xiàng)目的業(yè)務(wù)。
26、在一種可能的實(shí)現(xiàn)方式中,所述生成所述項(xiàng)目的更新用的框架代碼文件,包括:
27、利用預(yù)設(shè)的框架生成規(guī)則生成所述項(xiàng)目的更新用的框架代碼文件。
28、在一種可能的實(shí)現(xiàn)方式中,所述基于所述原始框架代碼文件,重構(gòu)所述項(xiàng)目的框架,生成所述項(xiàng)目的更新用的框架代碼文件,包括:
29、構(gòu)建所述原始框架代碼文件的第二抽象語法樹;
30、對(duì)所述第二抽象語法樹進(jìn)行調(diào)整,使得所述原始框架代碼文件符合標(biāo)準(zhǔn)框架代碼文件格式;
31、在所述第二抽象語法樹中增加至少一個(gè)責(zé)任鏈節(jié)點(diǎn),所述責(zé)任鏈節(jié)點(diǎn)用于實(shí)現(xiàn)調(diào)整的業(yè)務(wù)處理方法;
32、利用調(diào)整后的第二抽象語法樹,生成更新用的框架代碼文件。
33、在一種可能的實(shí)現(xiàn)方式中,所述業(yè)務(wù)為日志打印業(yè)務(wù),所述至少一個(gè)責(zé)任鏈節(jié)點(diǎn),包括以下一種或者多種責(zé)任鏈節(jié)點(diǎn):
34、用于過濾滿足打印條件的日志的責(zé)任鏈節(jié)點(diǎn),調(diào)整日志打印格式的責(zé)任鏈節(jié)點(diǎn),日志埋點(diǎn)和報(bào)警的責(zé)任鏈節(jié)點(diǎn)。
35、在一種可能的實(shí)現(xiàn)方式中,所述利用所述第二代碼更新所述第一代碼,包括:
36、構(gòu)建所述原始業(yè)務(wù)代碼文件的第三抽象語法樹;
37、遍歷所述第三抽象語法樹,確定包括所述第一內(nèi)容的所述第一代碼;
38、利用所述第二代碼替換所述第一代碼;
39、利用替換后的所述第三抽象語法樹,生成目標(biāo)業(yè)務(wù)代碼文件,所述目標(biāo)業(yè)務(wù)代碼文件用于替換所述原始業(yè)務(wù)代碼文件。
40、在一種可能的實(shí)現(xiàn)方式中,所述更新用的框架代碼文件為可復(fù)用的框架代碼文件。
41、第二方面,本技術(shù)提供一種代碼更新裝置,所述裝置包括:
42、第一獲取單元,用于獲取項(xiàng)目的原始代碼文件,所述原始代碼文件包括原始框架代碼文件以及原始業(yè)務(wù)代碼文件;所述原始業(yè)務(wù)代碼文件用于基于所述原始框架代碼文件執(zhí)行項(xiàng)目業(yè)務(wù);
43、第二獲取單元,用于獲取所述項(xiàng)目的更新用的框架代碼文件;
44、第一更新單元,用于利用所述更新用的框架代碼文件更新所述原始框架代碼文件;
45、確定單元,用于基于所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,所述第一代碼屬于所述原始業(yè)務(wù)代碼文件,所述第二代碼是基于所述更新用的框架代碼文件確定的用于更新的業(yè)務(wù)代碼;
46、第二更新單元,用于利用所述第二代碼更新所述第一代碼。
47、在一種可能的實(shí)現(xiàn)方式中,所述確定單元,具體用于基于標(biāo)準(zhǔn)代碼內(nèi)容、所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系。
48、在一種可能的實(shí)現(xiàn)方式中,所述確定單元,用于基于標(biāo)準(zhǔn)代碼內(nèi)容、所述原始框架代碼文件包括的代碼內(nèi)容和所述更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,包括:
49、所述確定單元,用于建立所述更新用的框架代碼文件包括的第一內(nèi)容與所述標(biāo)準(zhǔn)代碼內(nèi)容的第一對(duì)應(yīng)關(guān)系;所述標(biāo)準(zhǔn)代碼內(nèi)容包括包名、裝置和參數(shù)中的一種或者多種;建立所述原始框架代碼文件包括的第二內(nèi)容與標(biāo)準(zhǔn)代碼內(nèi)容的第二對(duì)應(yīng)關(guān)系;基于所述第一對(duì)應(yīng)關(guān)系和所述第二對(duì)應(yīng)關(guān)系,建立所述第一內(nèi)容與所述第二內(nèi)容的對(duì)應(yīng)關(guān)系;基于所述第一內(nèi)容與所述第二內(nèi)容的對(duì)應(yīng)關(guān)系,建立所述第一代碼與所述第二代碼的對(duì)應(yīng)關(guān)系,所述第一代碼包括第一內(nèi)容,所述第二代碼包括第二內(nèi)容。
50、在一種可能的實(shí)現(xiàn)方式中,所述第一更新單元,具體用于利用所述更新用的框架代碼文件替換所述原始框架代碼文件。
51、在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
52、構(gòu)建單元,用于構(gòu)建所述更新用的框架代碼文件的第一抽象語法樹;
53、調(diào)整單元,用于對(duì)所述第一抽象語法樹進(jìn)行調(diào)整,使得所述更新用的框架代碼文件包括的框架代碼符合標(biāo)準(zhǔn)框架代碼格式;
54、重新生成單元,用于利用調(diào)整后的第一抽象語法樹,重新生成更新用的框架代碼文件。
55、在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
56、第三獲取單元,用于獲取所述項(xiàng)目的更新用的業(yè)務(wù)代碼文件,所述第二代碼屬于所述更新用的業(yè)務(wù)代碼文件。
57、在一種可能的實(shí)現(xiàn)方式中,所述第二獲取單元,具體用于基于所述原始框架代碼文件,重構(gòu)所述項(xiàng)目的框架,生成所述項(xiàng)目的更新用的框架代碼文件,所述更新用的代碼文件用于調(diào)整所述項(xiàng)目的業(yè)務(wù)。
58、在一種可能的實(shí)現(xiàn)方式中,所述第二獲取單元,用于生成所述項(xiàng)目的更新用的框架代碼文件,包括:
59、所述第二獲取單元,用于利用預(yù)設(shè)的框架生成規(guī)則生成所述項(xiàng)目的更新用的框架代碼文件。
60、在一種可能的實(shí)現(xiàn)方式中,所述第二獲取單元,用于基于所述原始框架代碼文件,重構(gòu)所述項(xiàng)目的框架,生成所述項(xiàng)目的更新用的框架代碼文件,包括:
61、所述第二獲取單元,用于構(gòu)建所述原始框架代碼文件的第二抽象語法樹;對(duì)所述第二抽象語法樹進(jìn)行調(diào)整,使得所述原始框架代碼文件符合標(biāo)準(zhǔn)框架代碼文件格式;在所述第二抽象語法樹中增加至少一個(gè)責(zé)任鏈節(jié)點(diǎn),所述責(zé)任鏈節(jié)點(diǎn)用于實(shí)現(xiàn)調(diào)整的業(yè)務(wù)處理裝置;利用調(diào)整后的第二抽象語法樹,生成更新用的框架代碼文件。
62、在一種可能的實(shí)現(xiàn)方式中,所述業(yè)務(wù)為日志打印業(yè)務(wù),所述至少一個(gè)責(zé)任鏈節(jié)點(diǎn),包括以下一種或者多種責(zé)任鏈節(jié)點(diǎn):
63、用于過濾滿足打印條件的日志的責(zé)任鏈節(jié)點(diǎn),調(diào)整日志打印格式的責(zé)任鏈節(jié)點(diǎn),日志埋點(diǎn)和報(bào)警的責(zé)任鏈節(jié)點(diǎn)。
64、在一種可能的實(shí)現(xiàn)方式中,所述第二更新單元,具體用于構(gòu)建所述原始業(yè)務(wù)代碼文件的第三抽象語法樹;遍歷所述第三抽象語法樹,確定包括所述第一內(nèi)容的所述第一代碼;利用所述第二代碼替換所述第一代碼;利用替換后的所述第三抽象語法樹,生成目標(biāo)業(yè)務(wù)代碼文件,所述目標(biāo)業(yè)務(wù)代碼文件用于替換所述原始業(yè)務(wù)代碼文件。
65、在一種可能的實(shí)現(xiàn)方式中,所述更新用的框架代碼文件為可復(fù)用的框架代碼文件。
66、第三方面,本技術(shù)提供一種電子設(shè)備,包括:
67、一個(gè)或多個(gè)處理器;
68、存儲(chǔ)裝置,其上存儲(chǔ)有一個(gè)或多個(gè)程序,
69、當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)第一方面中任一實(shí)施方式所述的方法。
70、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其中,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面以及第一方面中任一實(shí)施方式所述的方法。
71、第五方面,本技術(shù)提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品在設(shè)備上運(yùn)行時(shí),使得所述設(shè)備執(zhí)行第一方面以及第一方面中任一實(shí)施方式所述的方法。
72、由此可見,本技術(shù)具有如下有益效果:
73、本技術(shù)提供一種代碼更新方法、裝置、設(shè)備及介質(zhì),該方法中,獲取項(xiàng)目的原始代碼文件,原始代碼文件包括原始框架代碼文件以及原始業(yè)務(wù)代碼文件,原始業(yè)務(wù)代碼文件用于基于原始框架代碼文件執(zhí)行項(xiàng)目業(yè)務(wù),獲取項(xiàng)目的更新用的框架代碼文件,利用更新用的框架代碼文件更新原始框架代碼文件,基于原始框架代碼文件包括的代碼內(nèi)容和更新用的框架代碼文件包括的代碼內(nèi)容,確定第一代碼與第二代碼的對(duì)應(yīng)關(guān)系,其中,第一代碼屬于原始業(yè)務(wù)代碼文件,第二代碼是基于更新用的框架代碼文件確定的用于更新的業(yè)務(wù)代碼,利用第二代碼更新第一代碼。如此能夠?qū)崿F(xiàn)對(duì)現(xiàn)有的項(xiàng)目的框架代碼以及業(yè)務(wù)代碼的自動(dòng)更新,減少開發(fā)者對(duì)于項(xiàng)目代碼的更新的操作,降低更新項(xiàng)目的代碼的成本,提高效率。