一種代碼生成器框架研究
發布時間:2021-05-22
發布時間:2021-05-22
在實際軟件項目開發中,采用代碼生成技術能大幅提高軟件開發的質量和生產率,降低軟件開發的風險,一個企業級項目中的代碼生成器是非常有必要的。本框架是一款代碼生成器框架,可以作為一個平臺幫助開發者快速實現自己的代碼生成器??蚣芴峁┮恍┰獢祿幚淼幕痉眨⑶姨峁┖唵戊`活的接口,供程序員定制自己的代碼生 成器。 關鍵詞: 代碼生成器; 框架; 模板; 元數據 中圖分類號: TP393 文獻標識碼: A 文章編號:1671-4644( 2015) 02-0026-04 1 研究現狀 在使用代碼生成器的項目中,一個適合的代碼生成器確實可以幫我們做很多很多的事,對于它的投入是遠遠大于我們回報的。但是為什么使用率不高,總結一下大致有以下幾點: ( 1) 很多代碼生成器是很優秀,但是專用的,比如 Hibernate Reverse Engineering,從名字上你已經可以判斷了,雖然還可以生成 spring 相關的代碼,但是 還有其它的比如顯示層的代碼,包括頁面等,并沒有 提相應的功能。 ( 2) 很多的代碼生成器倒是提供了一整套的解決方案。但是整個方案不可以變的,使用的技術,結構,代碼的模式,風格,變量的名字都是從數據庫中固定的轉換過來,不能完全符合實際需求。正因為這樣,很多人對代碼生成器產生了誤解,很多資深的程序員以為代碼生成器都是傻瓜式的,而嗤之以鼻。使用的代碼生成器的項目是根據自己不同的項目,編寫不同的代碼生成器,這無疑加大了成本和時間,所以很多項目不愿意嘗試。但是在現在代碼生成器能做到的范圍內很多的模塊是可以共享的,比如元數據的提取,變的只是代碼風格,所以通用的代碼生成器還是急需的。 2 系統功能說明 本框架是一個代碼生成器的框架,主要的功能如圖 1 所示。 圖 1 代碼生成器框架圖 XML 元數據文件讀取: 程序支持從規定格式的xml 文件里面讀取元數據,用這些元數據做邏輯處理[1]。 數據庫元數據讀取: 從數據庫中讀取元數據,主要使用 jdbc 讀取數據庫中表、視圖、字段的元數據信息。 Class 類元數據讀取: 從 Class 類型里面讀取元數據,主要是用 java 的 reflection。 元數據預處理: 多讀取出來的元數據做預處理,主要是對那些公共的處理方式的封裝。 自定義數據處理: 用戶擴展相應的結構,定制自己的元數據處理邏輯。 生成源碼文件: 用戶想生成的代碼文件,這里面要用戶提供模板,程序值負責元數據處理和合成。 保存處理后的元數據到 xml 文件里面,便于之后使用。 第 15 卷第 2 期 許麗花: 一種代碼生成器框架研究 3 系統設計及實現 從現在的技術,計算機技術還不能智能的產生代碼。必須開發者的設計和干預才能呢生成代碼,也就是代碼生成器,實際也是一個操作文件的程序,只是操作的文件是可以用來執行的代碼。所以程序的大體架構如圖2 所示。 圖 2 系統模塊圖 可以看出程序主要是三大模塊,即: 元數據模塊、模塊模塊、合成器模塊。