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