文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>代码生成工具的分类及比较

代码生成工具的分类及比较

时间:2010-09-14  来源:leiy

 

中国有句古语叫做“工欲善其事,必先利其器”,用通俗的话来说就是“磨刀不误砍柴功”,古人的这些话告诉我们:要把事情做好,事先应该准备合适的工具。工具不仅仅包括器具,还包括思想、理论、经验、道德、法律等一切能解决问题的有形和无形的东西。

工具有好和坏、适用和不适用之分。比如当你只是需要看一看文本文件的内容时,那么 Notepad 就是一个很好的工具。但是有些人不辨好歹,盲目地“以不变应万变”,“只用 NotePad 完全手写代码”并且以此为荣,“实乃兵家之大忌”。

闲话少说,言归正传。

在你需要一些重复或者相似的代码时,就应该准备好一款名叫“代码生成器”的利器。说到代码生成器,很多人误以为它只能生成程序代码。其实一款灵活的代码生成器还能够生成报表、帮助等一切文本或基于文本的文件(比如 CHM);好的代码生成器的数据来源不仅仅是数据库架构,也可以是数据库数据,还可以是 XML 等其它数据。

代码生成器根据生成逻辑的存储方式可以分为两种:程序固化的和基于模板的。

程序固化的方式将生成代码的逻辑存储在生成器中,一般是通过编写一些字符串的串连代码,这些代码在运行时生成用户的代码。

基于模板的方式将生成代码的逻辑存储在生成器之外的模板文件中,用户可以根据实际需要修改相应的模板,或者自行开发合适的模板。

基于模板的代码生成方式又可以分为:基于标记的和基于编程的。

基于标记的方式定义一套标记规则,在模板中按需插入特定的标记,当这些模板被生成器调用时,标记就被替换为相应的内容,类似于宏替换。

基于编程的方式很像 ASP/JSP/PHP,它采用一种编程语言(或在多种中选择一种),将程序代码和文本代码混合在一起,并通过一定的标记(比如<%%>)来区分。这类模板其实就是一个应用程序,它运行的结果就是用户需要的代码。

下面我们来看看这几种生成方式的比较,首先从开发商的角度来看:

 

项目\类型

程序固化

基于模板

基于标记

基于编程

生成逻辑

在生成工具中

在模板文件中

在模板文件中

开发难度

适中

可维护性

维护成本

 

再从用户的角度进行对比:

 

项目\类型

程序固化

基于模板

基于标记

基于编程

方便性

扩展性

差,用户无法自己定制

好,用户可以按需定制

好,用户可以按需定制

适应性

好,但无法适应复杂情况

很好

定制成本

无法定制

需要学习一套标记规则

需要学习模板编程规则

 

目前网络上比较有影响的代码生成工具都采用基于编程的模板技术。

网络上还有一些号称也是“基于模板”的代码生成器,也将代码生成逻辑存储在“模板文件”中,在“模板文件”中通过编写一系列的程序代码将字符串串连起来,既不是采用标记的方式,也不是采用类 ASP/JSP/PHP 的方式,其本质上和程序固化的方式并无区别,因此不在本文讨论之列。

下面我将列举三种具有代表性的代码生成器进行对比,对比的内容均来自官方网站或其文档,供大家选择时参考。

   

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载