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

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

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

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

    系统族是可以使用其动词算子的数量和域对象对字段限制的程度两个维度表示。在最新的无垠式代码生成器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,你就可以得到系统族的馈赠,一个可以运行的一个子系统。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值