论坛首页 综合技术论坛

为什么不是代码生成器

浏览 2290 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-20  
        nnd,一大清早就看到一篇这种文章,这个哥们说:
  1. 代码生成器的理论原理是:输入一些数据,然后根据这些数据自动生成一个或多个逻辑过程,然后这些逻辑过程可以接受输入数据,经过逻辑处理后输出。  
  2.   
  3. 这个过程看似很先进,其实很傻。既然代码生成器已经知道了这个逻辑处理过程,为什么还要搞得那么麻烦,生成一大堆代码再要人工去编译一遍。为什么不直接就执行这个逻辑过程呢?  
  4.   
  5. 其实原因非常简单,做这个代码生成器的人技术太糟糕,无法生成足够灵活,适应性强的逻辑过程,甚至更糟糕的是,他都不知道怎么动态生成并执行方法过程。因此,为了满足用户的灵活性需求,只好将这个逻辑过程通过代码展现出来,然后丢下一句话:不满意你可以自己改。   

        这个东西随随便便就可以举出无数的反例,比如在使用hibernate的时候使用代码生成器来生成maping的xml文件,也许你要说在jdk5以上不需要xml,但是有无数的公司的系统是只能跑在1.4的jdk的,当然全部利用反射或者设计模式来写非常动态的代码是一个理想的状态,但是这里又会出现性能和灵活的平衡,要很灵活就必须要牺牲性能,做企业系统很多时候性能是非常重要的,这也是需要妥协的地方。

       再举一个非常明显的例子,ruby on rails利用ruby语言编写,ruby已经是动态语言,基本上可以写非常少的代码,但是它的核心中还是包括了一个代码生成器,可以生成项目结构,生成脚手架代码,生成单元测试等和敏捷相关的一系列代码,而且基本上简单的crub业务就不需要重新编码。在这里可以看到代码生成器不但可以生成代码,加快大家的开发速度,而且把web开发的最佳实践放进去了,这不就是一个代码生成器有生命力的例子吗。

       有些哥们眼睛里面只有是和非,不能存在中间地带,理想主义不是坏事,但是用过于偏激的观点来评判看到的东西只能看到缺点。但是如果你认为“只有偏执狂才能生存”,那又是另外一回事了,我们不是一路的。我一直认为“工业是建立在理想和妥协平衡的基础上的”。
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics