本公開涉及計(jì)算機(jī),尤其涉及一種代碼質(zhì)量管控方法、裝置、電子設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在當(dāng)今軟件開發(fā)過程中,隨著項(xiàng)目規(guī)模的不斷擴(kuò)大,確保代碼邏輯的精確性和可靠性成為項(xiàng)目成功的關(guān)鍵。人力資源在審查現(xiàn)有代碼以預(yù)防潛在缺陷方面扮演著至關(guān)重要的角色。然而,這一過程往往是時(shí)間消耗大且勞動(dòng)密集型的。根據(jù)學(xué)術(shù)研究表明,當(dāng)項(xiàng)目中未審查的代碼行數(shù)超過200行時(shí),發(fā)現(xiàn)漏洞的效率將顯著降低。因此,為確保后續(xù)開發(fā)活動(dòng)順利進(jìn)行,定期進(jìn)行代碼審查成為必要條件。
2、傳統(tǒng)的代碼審查方法主要依賴于靜態(tài)代碼分析工具,這些工具融合了多種主流編程規(guī)范,例如pep8和google?style等,以識(shí)別代碼中的語義錯(cuò)誤。盡管這些工具在檢測(cè)代碼表層問題方面表現(xiàn)出色,但它們?cè)诶斫獯a的高層語義和邏輯結(jié)構(gòu)方面存在明顯的局限性。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本公開提供一種代碼質(zhì)量管控方法、裝置、電子設(shè)備和存儲(chǔ)介質(zhì),以解決現(xiàn)有技術(shù)中代碼審查不夠全面、準(zhǔn)確率低的問題。
2、第一方面,本公開提供一種代碼質(zhì)量管控方法,所述方法包括:
3、通過預(yù)先設(shè)定的第一提示策略,引導(dǎo)大型語言模型:對(duì)代碼文件根據(jù)預(yù)定義的代碼編寫標(biāo)準(zhǔn)進(jìn)行分析,識(shí)別其中的代碼問題,并提出相應(yīng)的修改建議;
4、通過預(yù)先設(shè)定的第二提示策略,引導(dǎo)大型語言模型:根據(jù)代碼修改建議以及預(yù)定義的代碼編寫標(biāo)準(zhǔn),對(duì)識(shí)別出的問題代碼文件進(jìn)行修正。
5、進(jìn)一步的,在根據(jù)代碼修改建議以及預(yù)定義的代碼編寫標(biāo)準(zhǔn),對(duì)識(shí)別出的問題代碼文件進(jìn)行修正之前,所述方法還包括:
6、使用靜態(tài)代碼分析工具對(duì)代碼文件進(jìn)行分析,識(shí)別其中的代碼問題,并提出相應(yīng)的修改建議;
7、整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件。
8、進(jìn)一步的,整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件,包括:
9、解析大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,提取各代碼問題的信息要素,該要素至少包括行號(hào)、問題描述和修改建議;
10、按行號(hào)遍歷各代碼問題:檢查當(dāng)前代碼問題的行號(hào)是否已記錄在代碼修改意見文件;如果是,則對(duì)當(dāng)前代碼問題與代碼修改意見文件中具有相同行號(hào)的其它代碼問題進(jìn)行信息要素的冗余消除;如果否,則將當(dāng)前代碼問題的信息要素記錄至代碼修改意見文件。
11、進(jìn)一步的,所述方法還包括:獲取對(duì)基于第一提示策略或第二提示策略生成的大型語言模型輸出內(nèi)容的評(píng)價(jià)結(jié)果;將獲取到的評(píng)價(jià)結(jié)果反饋至大型語言模型,以使大型語言模型進(jìn)行自適應(yīng)調(diào)整。
12、進(jìn)一步的,所述方法還包括:獲取預(yù)定義的代碼編寫標(biāo)準(zhǔn),其中該標(biāo)準(zhǔn)至少?gòu)娜缦挛鍌€(gè)維度評(píng)估代碼質(zhì)量:注釋、復(fù)雜度、功能性、命名和風(fēng)格。
13、第二方面,本公開還提供一種代碼質(zhì)量管控裝置,所述裝置包括:
14、代碼審查單元,用于通過預(yù)先設(shè)定的第一提示策略,引導(dǎo)大型語言模型:對(duì)代碼文件根據(jù)預(yù)定義的代碼編寫標(biāo)準(zhǔn)進(jìn)行分析,識(shí)別其中的代碼問題,并提出相應(yīng)的修改建議;
15、代碼修正單元,用于通過預(yù)先設(shè)定的第二提示策略,引導(dǎo)大型語言模型:根據(jù)代碼修改建議以及預(yù)定義的代碼編寫標(biāo)準(zhǔn),對(duì)識(shí)別出的問題代碼文件進(jìn)行修正。
16、進(jìn)一步的,所述裝置還包括審查整合單元,用于:使用靜態(tài)代碼分析工具對(duì)代碼文件進(jìn)行分析,識(shí)別其中的代碼問題,并提出相應(yīng)的修改建議;整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件。
17、進(jìn)一步的,審查整合單元用于整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件,包括:
18、解析大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,提取各代碼問題的信息要素,該要素至少包括行號(hào)、問題描述和修改建議;
19、按行號(hào)遍歷各代碼問題:檢查當(dāng)前代碼問題的行號(hào)是否已記錄在代碼修改意見文件;如果是,則對(duì)當(dāng)前代碼問題與代碼修改意見文件中具有相同行號(hào)的其它代碼問題進(jìn)行信息要素的冗余消除;如果否,則將當(dāng)前代碼問題的信息要素記錄至代碼修改意見文件。
20、進(jìn)一步的,所述裝置還包括模型優(yōu)化單元,用于:獲取對(duì)基于第一提示策略或第二提示策略生成的大型語言模型輸出內(nèi)容的評(píng)價(jià)結(jié)果;將獲取到的評(píng)價(jià)結(jié)果反饋至大型語言模型,以使大型語言模型進(jìn)行自適應(yīng)調(diào)整。
21、進(jìn)一步的,所述裝置還包括標(biāo)準(zhǔn)獲取單元,用于:獲取預(yù)定義的代碼編寫標(biāo)準(zhǔn),其中該標(biāo)準(zhǔn)至少?gòu)娜缦挛鍌€(gè)維度評(píng)估代碼質(zhì)量:注釋、復(fù)雜度、功能性、命名和風(fēng)格。
22、第三方面,本公開還提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序代碼;處理器通過讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,用于執(zhí)行第一方面所述的代碼質(zhì)量管控方法。
23、第四方面,本公開還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,所述一個(gè)或者多個(gè)程序可被一個(gè)或者多個(gè)中央處理器執(zhí)行,以實(shí)現(xiàn)第一方面所述的代碼質(zhì)量管控方法。
1.一種代碼質(zhì)量管控方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在根據(jù)代碼修改建議以及預(yù)定義的代碼編寫標(biāo)準(zhǔn),對(duì)識(shí)別出的問題代碼文件進(jìn)行修正之前,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述方法還包括:
6.一種代碼質(zhì)量管控裝置,其特征在于,所述裝置包括:
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括審查整合單元,用于:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,審查整合單元用于整合大型語言模型生成的代碼修改建議與靜態(tài)代碼分析工具生成的代碼修改建議,形成代碼修改意見文件,包括:
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括模型優(yōu)化單元,用于:
10.根據(jù)權(quán)利要求6-9中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括標(biāo)準(zhǔn)獲取單元,用于: