專利名稱:一種程序代碼自動(dòng)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持各種開發(fā)語(yǔ)言開源框架的一種程序代碼自動(dòng)生成方法。
背景技術(shù):
當(dāng)前軟件開發(fā)過程中,開發(fā)人員往往要書寫大量的重復(fù)代碼。例如在目前普遍使用的分層開發(fā)模式下對(duì)表進(jìn)行增加、刪除、修改和查詢操作,都是業(yè)務(wù)層接口向持久層接口進(jìn)行調(diào)用,大部分代碼都是相同的,但是因類名等的不同,往往需要在開發(fā)過程中運(yùn)用復(fù)制、粘貼、修改這樣的粘貼式編程方式,不僅繁瑣而且容易出錯(cuò)。而當(dāng)前流行的各種集成開發(fā)環(huán)境(IDE)及工具雖然可以智能自動(dòng)生成部分代碼,但由于開發(fā)需要和開發(fā)框架等的不同,這樣的智能適應(yīng)性仍比較弱。
發(fā)明內(nèi)容
本發(fā)明為克服現(xiàn)有開發(fā)過程中存在的不足之處,目的在于提供一種程序代碼自動(dòng)生成方法,該方法通過分析當(dāng)前各種開發(fā)語(yǔ)言和開發(fā)框架在開發(fā)過程中的重復(fù)代碼,根據(jù)重復(fù)代碼是有規(guī)則的且可定制的共同特點(diǎn)進(jìn)行設(shè)計(jì),把重復(fù)代碼及規(guī)則定義到模板文件中進(jìn)行自動(dòng)生成,避免了開發(fā)人員重復(fù)代碼的編寫,大大提高了開發(fā)效率,解決了現(xiàn)有技術(shù)中存在的問題。本發(fā)明是通過以下技術(shù)方案達(dá)到上述目的一種程序代碼自動(dòng)生成方法,包括功能模板文件編寫、生成計(jì)劃定義、參數(shù)定義和生成計(jì)劃執(zhí)行四個(gè)過程,其中功能模板文件編寫過程包括以下步驟1)按照開發(fā)語(yǔ)言的語(yǔ)法編寫各功能模板文件內(nèi)容;2)將文件內(nèi)容中發(fā)生變化的部分通過參數(shù)變量形式進(jìn)行設(shè)置;模板文件是生成最后代碼文件的源頭,編寫時(shí)可以將用戶的開發(fā)規(guī)范體現(xiàn)在文本內(nèi)容中;生成計(jì)劃定義過程定義使用哪個(gè)功能模板文件、參數(shù)定義配置文件以及最終生成的文件存儲(chǔ)地址;生成計(jì)劃可以包含多個(gè)生成任務(wù),一個(gè)生成任務(wù)需要指定模板文件和最終生成的文件的存儲(chǔ)地址。生成計(jì)劃主要定義的內(nèi)容為參數(shù)定義配置文件所在路徑及文件名、模板文件所在路徑及文件名、生成的文件路徑、生成的文件名。生成計(jì)劃中變化的部分通過參數(shù)變量形式進(jìn)行填寫,如生成任務(wù)中的文件路徑和文件名均可以用參數(shù)變量,無(wú)須為每次生成不同文件而去改動(dòng)生成計(jì)劃;參數(shù)定義過程將模板文件及生成計(jì)劃中的參數(shù)變量進(jìn)行值定義并寫入?yún)?shù)定義配置文件中,參數(shù)定義配置文件的內(nèi)容為參數(shù)名、參數(shù)值;生成計(jì)劃執(zhí)行過程包括以下步驟1)從生成計(jì)劃中指定的參數(shù)定義配置文件讀取參數(shù)及對(duì)應(yīng)的值,以參數(shù)集合的形式保存在內(nèi)存中;2)將生成計(jì)劃文件中的參數(shù)與參數(shù)集合中的參數(shù)逐個(gè)進(jìn)行匹配,匹配對(duì)應(yīng)后用參數(shù)定義配置文件中對(duì)應(yīng)的參數(shù)值替換生成計(jì)劃中的參數(shù)部分內(nèi)容,從而得到代碼生成計(jì)劃;3)根據(jù)代碼生成計(jì)劃,找到指定的功能模板文件,然后通過參數(shù)替換獲得最終的代碼文件內(nèi)容;4)根據(jù)步驟2)得到的生成計(jì)劃中定義的存儲(chǔ)地址和存儲(chǔ)文件名,將生成好的代碼文件保存到電腦硬盤上。作為優(yōu)選,對(duì)在生成過程中可能存在變化的地方提供了擴(kuò)展接口,擴(kuò)展接口包括參數(shù)獲取接口和代碼生成方式接口,用戶可以實(shí)現(xiàn)這些接口,從而改變代碼自動(dòng)生成工具工作方式,其實(shí)現(xiàn)步驟如下1)在生成計(jì)劃文件中配置參數(shù)獲取的實(shí)現(xiàn)類、代碼生成的實(shí)現(xiàn)類;2)從生成計(jì)劃文件中讀取參數(shù)獲取接口的實(shí)現(xiàn)類,加載執(zhí)行該實(shí)現(xiàn)類把參數(shù)及對(duì)應(yīng)的值以參數(shù)集合的形式保存在內(nèi)存中;3)從生成計(jì)劃文件中讀取代碼生成方式接口的實(shí)現(xiàn)類,加載執(zhí)行該實(shí)現(xiàn)類對(duì)生成計(jì)劃文件中的參數(shù)用參數(shù)集合中的對(duì)應(yīng)的參數(shù)值進(jìn)行替換,得到代碼生成計(jì)劃;4)根據(jù)代碼生成計(jì)劃,找到指定的功能模板文件,然后通過參數(shù)替換獲得最終的代碼文件內(nèi)容;5)根據(jù)步驟幻得到的生成計(jì)劃中定義的存儲(chǔ)地址和存儲(chǔ)文件名,將生成好的代碼文件保存到電腦硬盤上。本發(fā)明的有益效果本發(fā)明通過使用開發(fā)語(yǔ)言的語(yǔ)法編寫的模板文件,使得本發(fā)明能適應(yīng)任何一種開發(fā)語(yǔ)言和當(dāng)前各類熱門框架,支持所有開發(fā)類語(yǔ)言生成(如java、. net、C/C++、perl、python、pb、delphi等等),并且也有能力支撐今后行業(yè)新的開發(fā)語(yǔ)言, 能適應(yīng)當(dāng)前任何開源/商業(yè)框架、組件及其他中間件技術(shù)(如struts/struts2、spring/ spring-mvc、JSF> Hibernate、swing、Ruby on Rails 等等)。本發(fā)明實(shí)現(xiàn)項(xiàng)目中重復(fù)代碼通過一次性配置自動(dòng)生成,降低開發(fā)工作量,達(dá)到項(xiàng)目快速開發(fā)能力;通過模板定義,和變化部分依靠參數(shù)替換的方式,有效固化了代碼固定部分中不變的地方,使生成的代碼具備規(guī)范性和一致性,從而幫助代碼規(guī)范統(tǒng)一遺傳;通過靈活的可變的生成計(jì)劃,完全支持了各種語(yǔ)言、中間件或開源框架結(jié)構(gòu)的文件存放格式要求; 通過擴(kuò)展接口的方式,提供用戶對(duì)代碼自動(dòng)生成工具的定制能力,使之具備更廣的適用性。
圖1是本發(fā)明的系統(tǒng)構(gòu)架示意圖。
具體實(shí)施例方式實(shí)施例1 下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步描述,但本發(fā)明的保護(hù)范圍并不僅限于此如圖1所示通過讀取參數(shù)定義配置文件,將指定參數(shù)值集合替換到生成計(jì)劃指定的模板文件內(nèi)容的參數(shù)變量里,從而獲得最終生成的代碼文件內(nèi)容,并且可以根據(jù)生成計(jì)劃將文件存放在指定目錄里。通過這種原理,可以很好的支持當(dāng)前所有開發(fā)語(yǔ)言和開發(fā)框架上。代碼生成的主要過程包括模板文件準(zhǔn)備、生成計(jì)劃定義、參數(shù)定義和生成計(jì)劃執(zhí)行。下面以生成java代碼文件為例,對(duì)發(fā)明提供代碼自動(dòng)生成的具體實(shí)施方式
和過程進(jìn)行詳細(xì)闡述。(一 )功能模板文件編寫模板文件作為代碼生成的內(nèi)容主要來(lái)源,統(tǒng)一存放在代碼自動(dòng)化生成工具主程序文件夾的template目錄中,利用參數(shù)變量(參數(shù)以$開頭,參數(shù)名用{}括起來(lái))對(duì)模板內(nèi)容里存在變化的部分進(jìn)行填寫,模板文件可以按照每個(gè)公司自己的規(guī)范進(jìn)行編寫。本例中的模板文件保存在代碼自動(dòng)化生成工具主程序文件夾的template目錄中,文件名為 service, tpl,文件內(nèi)容如下
權(quán)利要求
1.一種程序代碼自動(dòng)生成方法,其特征在于包括功能模板文件編寫、生成計(jì)劃定義、參數(shù)定義和生成計(jì)劃執(zhí)行四個(gè)過程,其中功能模板文件編寫過程包括以下步驟1)按照開發(fā)語(yǔ)言的語(yǔ)法編寫各功能模板文件內(nèi)容;2)將文件內(nèi)容中發(fā)生變化的部分通過參數(shù)變量形式進(jìn)行設(shè)置;生成計(jì)劃定義過程定義使用哪個(gè)功能模板文件、參數(shù)定義配置文件以及最終生成的文件存儲(chǔ)地址;參數(shù)定義過程將功能模板文件及生成計(jì)劃中的參數(shù)變量進(jìn)行值定義并寫入?yún)?shù)定義配置文件中;生成計(jì)劃執(zhí)行過程包括以下步驟1)從生成計(jì)劃中指定的參數(shù)定義配置文件讀取參數(shù)及對(duì)應(yīng)的值,以參數(shù)集合的形式保存在內(nèi)存中;2)將生成計(jì)劃文件中的參數(shù)與參數(shù)集合中的參數(shù)逐個(gè)進(jìn)行匹配,匹配對(duì)應(yīng)后用參數(shù)定義配置文件中對(duì)應(yīng)的參數(shù)值替換生成計(jì)劃中的參數(shù)部分內(nèi)容,從而得到代碼生成計(jì)劃;3)根據(jù)代碼生成計(jì)劃,找到指定的功能模板文件,然后通過參數(shù)替換獲得最終的代碼文件內(nèi)容;4)根據(jù)步驟2)得到的生成計(jì)劃中定義的存儲(chǔ)地址和存儲(chǔ)文件名,將生成好的代碼文件保存到電腦硬盤上。
2.根據(jù)權(quán)利要求1所述的一種程序代碼自動(dòng)生成方法,其特征在于,在生成過程中存在變化的地方設(shè)置參數(shù)獲取接口和代碼生成方式接口,其實(shí)現(xiàn)步驟如下1)在生成計(jì)劃文件中配置參數(shù)獲取的實(shí)現(xiàn)類、代碼生成的實(shí)現(xiàn)類;2)從生成計(jì)劃文件中讀取參數(shù)獲取接口的實(shí)現(xiàn)類,加載執(zhí)行該實(shí)現(xiàn)類把參數(shù)及對(duì)應(yīng)的值以參數(shù)集合的形式保存在內(nèi)存中;3)從生成計(jì)劃文件中讀取代碼生成方式接口的實(shí)現(xiàn)類,加載執(zhí)行該實(shí)現(xiàn)類對(duì)生成計(jì)劃文件中的參數(shù)用參數(shù)集合中的對(duì)應(yīng)的參數(shù)值進(jìn)行替換,得到代碼生成計(jì)劃;4)根據(jù)代碼生成計(jì)劃,找到指定的功能模板文件,然后通過參數(shù)替換獲得最終的代碼文件內(nèi)容;5)根據(jù)步驟幻得到的生成計(jì)劃中定義的存儲(chǔ)地址和存儲(chǔ)文件名,將生成好的代碼文件保存到電腦硬盤上。
3.根據(jù)權(quán)利要求1或2任一權(quán)利要求所述的一種程序代碼自動(dòng)生成方法,其特征在于, 參數(shù)定義配置文件的內(nèi)容為參數(shù)名、參數(shù)值。
全文摘要
本發(fā)明涉及支持各種開發(fā)語(yǔ)言開源框架的一種程序代碼自動(dòng)生成方法,該方法通過分析當(dāng)前各種開發(fā)語(yǔ)言和開發(fā)框架在開發(fā)過程中的重復(fù)代碼,根據(jù)重復(fù)代碼是有規(guī)則的且可定制的共同特點(diǎn)進(jìn)行設(shè)計(jì),把重復(fù)代碼及規(guī)則定義到模板文件中進(jìn)行自動(dòng)生成,避免了開發(fā)人員重復(fù)代碼的編寫,大大提高了開發(fā)效率,解決了現(xiàn)有技術(shù)中存在的問題。
文檔編號(hào)G06F9/44GK102508669SQ20111036154
公開日2012年6月20日 申請(qǐng)日期2011年11月14日 優(yōu)先權(quán)日2011年11月14日
發(fā)明者嚴(yán)偉強(qiáng), 李紡, 田文 申請(qǐng)人:浙江鴻程計(jì)算機(jī)系統(tǒng)有限公司