使用注解生成代码

一、概述

生成源代码很容易,但是生成正确的源代码就不容易了。要使用优雅高效的方法来生成源代码将是一个繁重的任务。

幸运的是从去年开始,MDE[1](Model-Driven Engineering,也就是模型驱动工程设计,有时候也称为模型驱动开发或者模型驱动架构)已经有助于实践这个目标。这种设计更多的是倾向于艺术层面而不是科学——它针对的是经验丰富的程序员(译注:原文此句为task for ninja coders,国外有把经验丰富的程序员比作忍者的习惯)——是基于经过验证的流程和工具所提取出来的成熟方法论。

尽管我们可以认为生成源代码是MDE方法论的一个天然切入点,但是MDE涵盖的范围远远不止这些。

注解处理器只是众多我们用来生成源代码工具中的其中一种而已。

二、MDE中的Model和Meta-model

在开始讲解如何使用注解处理器生成源代码相关细节之前,这里有几个我们需要先了解的概念,因为在接下来的章节中我们将会使用这些概念:model(模型)和meta-model(元模型)。

MDE的一个重要支柱就是它抽象的结构。我们将想要创建的软件系统在不同的细节层面使用不同的方法进行建模。当对一个抽象层建模之后,我们就可以对下一个和再下一个层面继续建模,直到一个可部署的产品被完整地建立起来。

从这个角度来看,无论我们使用的是哪一个细节层面,一个模型(覆盖的范围)都不会超过对应用来代表系统的抽象层。

元模型(meta-model),就是我们用来定义模型的规则。你可以认为它是模型的schema或者语法。