代碼產生器使用的技術和語言的選擇

來源:互聯網
上載者:User

代碼產生所包含的面非常之廣,但是對於目前最普遍的層產生器,所使用的技術有很多是共通的。下面簡單介紹層產生器所普遍使用的幾項技術,以及為你的層產生器選擇一門開發語言所要考慮的要點。

 

編寫代碼產生器經常使用的技術:

n         文本模板,

代碼產生通常意味著建立具有複雜結構文本類型的檔案。為了維護產生器的簡單性和完整性,你可以使用文本模板工具,這樣你可以把邏輯的定義和邏輯的代碼格式相分離,這是最理想的情況。

n         Regex:

用來檢索,掃描源檔案,以提取你要用到的資訊,Regex的缺點就是不易閱讀。

n         XML:

讀入XML檔案,進行解析,驗證,或者把XML檔案作為代碼產生器的輸出。

n         檔案目錄的操作:

幾乎是每個產生器都會使用的技術,從檔案讀入代碼格式,將產生的程式碼寫到輸出檔案中。

n         命令列:

命令列有自己的優勢,由於代碼產生有很多自動過程,所以在有些情況下命令列更高效,簡捷。

 

基於以上幾點,在動手編寫代碼產生器前看看怎樣選擇編寫語言:

n         是否有強大的讀寫,解析文字檔的能力,這是非常關鍵的。

n         文本模板是產生器的基礎,所以擁有強大且易用的文本模板工具是很重要的。

n         能夠快速,方便地處理XML。

n         快捷,強大的檔案操作能力,維護,搜尋等。

n         語言的效率在這裡的優先順序不高。因為產生器不是用在產品裡的,而且不會長期,頻繁的運行。

 

考慮到以上這些情況,作為編寫代碼產生器的比較理想的語言就是Python,Ruby之類的指令碼語言。一方面,這些語言都有強大的文本處理能力,Regex的支援,伴隨而來的處理XML的能力,方便的檔案及目錄的操作。另一方面,由於簡潔,代碼量少,開發效率高,雖然程式的執行效率稍遜,但是這已不是代碼產生器的主要考量因素。我們可以使用這些指令碼語言來為我們的公司專屬應用程式項目來產生代碼,來免除一部分重複,無聊的工作。

 

BTW:本文主要基於《Code Generation in Action》一書,有興趣的朋友可以看看。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.