代码生成器技术乱弹八,系统族与笛卡尔空间

    你们认为代码生成器是一个神奇的东西,有些人认为它是一种相似于传说中的阿拉丁神灯之类的魔幻工具,您只须要对神灯下达命令,就会有一个灯神出来,为您写好您须要的程序,这种神奇东西是存在的,只是您光使用代码生成器仍是不够的。一个写程序的神灯不是代码生成器,而是一个程序员配上一套很好的代码生成器软件。数据库

   好了,玩笑说完,咱们谈论一下真实的代码生成器,在代码生成器研发的历史上,有一本书叫作《产生式编程》是一组德国人写的,他们没有写出可用的代码生成器,可是却整出了代码生成器的理论。我2004年买过这本书,而无垠式代码生成器是2014年获得可用的系统的。在这期间,曾经浏览过这本厚厚的书。编程

    书中对工业化,流水线,自动化生产提供了很好的思路和史实。其中提到了系统的思想。在代码生成器实现之后,我发现其中代码生成器的能力其实能够用系统族和系统族的笛卡尔空间表示,一个代码生成器能够产生的系统族的笛卡尔空间越大,其能力就越强。dom

    系统族是能够使用其动词算子的数量和域对象对字段限制的程度两个维度表示。在最新的无垠式代码生成器JEEEU版1.5中。共有ListAll, ListActive, SearchByFieldsByPage, SoftDelete, Delete, Add, Update, DeleteAll, SoftDeleteAll, Toggle, ToggleOne 11个单域动词和几个不彻底的辅助性动词和ListMyActive, ListMyAvailableActive, Assign , Revoke四个双域动词组成。而域对象没有明确的字段限制只是要求每一个域对象必须具备domainid, domainname, activefield 三个特殊字段。工具

    这约20个动词和域对象的可变性以及域对象之间的一对多和多对多关系。动词算子式代码生成器的变幻的笛卡尔空间是足够强大的。你只须要写下您的域对象清单和他们的规约,固然,不要忘了对它说一声call magic,你就能够获得系统族的馈赠,一个能够运行的一个子系统。google

    代码生成器的生成空间就是代码生成器能生成的全部子系统的空间之和。也就是代码生成器的笛卡尔空间。根据上面的分析,无垠式代码生成器JEEEU版Ada 1.5的生成空间为(N-3)×20×3,咱们能够简单记为60N,为字段,动词算子和关系三者的笛卡儿积。和平之翼代码生成器SMEU版3.1 乌篷船的生成空间为(N-3)×20×3×2,咱们能够简记为120N,为字段,动词算子,关系和数据库类型四者的笛卡尔积。让咱们群策群力,开发1000N级别(或者能够称之为1000倍率)的代码生成器吧。.net

转载于:https://my.oschina.net/jerryshensjf/blog/1824270对象