`
jerry_shen
  • 浏览: 100741 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

代码生成器技术乱弹十,动词与多维空间,动词变格理论简述

    博客分类:
  • Java
阅读更多
    在动词算子式代码生成器中,有若干遵循的基本设计准则,简述如下:

  • 动词算子化
  • 动词变格理论
  • 面向棱柱
  • 超级语言驱动
  • 技术栈中立
  • 超泛型实现
  • 一次编程,两处调试
  • 内置代码模板,经过详细测试,代码模板不开放,通过版本更新和代码生成器分支来支持新功能。

    现在我们详细分析一下其中的第二项:动词变格理论。

    其理念如下,在代码生成的多维笛卡尔空间,存在着某个抽象的动词算子比如说是ListAll,它在多维空间的投影产生出比如DaoImpl,Dao,ServiceImpl,Service,Facade,JSAction和JSButton这7个动词算子的影子。在和某个域对象比如说是Student结合以后,会形成7个具体的ListAllStudents函数。

    这种现象非常类似于英语中的时态变化或者说是动词变格,所以这种代码生成器的设计被称为动词变格理论。就比如所对英语动词Have来说,Has, Had和Haven是动词have的变格,上述我们对动词算子ListAll的分析发现,在和平之翼代码生成器中,动词算子一共有7个格。动词中,拥有7个格的形态的动词算子是全栈动词,而部分动词格缺失的动词算子是非全栈动词。

    为什么这么设计,这是为了标准化和简化不同层级的函数的调用关系,并简化代码调用之网。从而降低开发时的测试工作量和代码生成器的品质。

    您有何种看法?欢迎跟帖。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics