代码生成器技术乱弹四十三,动词算子式代码生成器的秘密,为代码生成而设计 -买球官网平台

`
jerry_shen
  • 浏览: 70701 次
  • 性别:
  • 来自: 上海
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 580)
    • ( 4)
    存档分类
    最新评论

    代码生成器技术乱弹四十三,动词算子式代码生成器的秘密,为代码生成而设计

    代码生成器技术乱弹四十三,动词算子式代码生成器的秘密,为代码生成而设计

    相信对动词算子式代码生成器有印象的人们无不对这类代码生成器的弹性和适应性印象深刻。并好奇是如何做到这一点的。这就是动词算子式代码生成器的的基本原则,为代码生成而设计。这一特性不是偶然的,而是这种代码生成器刻意为之。
    对任何软件,管理变与不变总是基本的考虑。对代码生成器而言,这更为重要。因为代码的不变,代码生成器才能有相对固定的设计与实现。因为变,所以代码生成器才能拥有弹性,适应不同的需求与场景。所以,对变与不变不变的管理,是代码生成器设计的核心内容。
    对这种需求,关键是为代码生成而设计,什么意思,就是你需要对代码生成器的运行有整体考虑。考虑代码生成器如何变,那里保持不变。具体说来,就是变的集中和不变的集中,所以的变化,被集中于域对象,而不变的,是形形色色的动词算子。
    为什么这么设计,首先,这是自然的关系,比如说listall动词,即从数据库中返回您需要的数据,您会发现,对不同的listall动作,比如listallstudents和listallteachers,不同的只是查询的数据库表不同和表征的pojo对象不同。而不同的listall动作完成的步骤是完全相同的。而同为student对象,listall动作和delete动作的步骤的逻辑结构是完全不同的。所以,动词算子式代码生成器只是诚实的归纳和利用了这种逻辑关系。
    第二点,动词算子和域对象的笛卡尔积生成具体的方法阵列的方法本质上是一种降维操作。他把一个二维的方法阵列降维为一维的域对象数组和一维的动词算子数组的笛卡尔积。虽然简单,但我确实没有发现更为有效的方式。
    第三点,把代码生成器原子化是降低代码生成器耦合的增强它的扩展性的好办法。传统的代码生成器是以文件为单位的。这不是代码的逻辑结构。但却是代码的组织单元。所以,如果要增减功能,以文件单位为中心的代码生成器经常会牵一发动全身。而以动词算子为单位的代码生成器是原子化的,这方面的缺点就不存在了。
    分享到:
    评论

    相关推荐

      此分支为无垠式/和平之翼代码生成器阵列三大旗舰分支之一,其他两支为无垠式代码生成器jeeeu版和和平之翼代码生成器shceu版。 目前和平之翼代码生成器smeu 3.2.0版乌篷船正式版已发布, 此版本支持service,dao...

      修复单类代码生成器4个问题。 2.新增创建加载数据库时,表名过滤功能。 3.表名生成命名规则,字符串替换功能。 4.模板中字段排序方法公开。 5.字段默认值函数的处理。 6.导出的sql脚本中,单引号 '的问题。 7.工具-...

      对话框乱弹的小程序,点击开始后会不停弹300个大小不等位置不确定的对话框,伴随windows的一些报警声,很有节奏的感觉。

      《浅析新媒介生态环境下广播娱乐节目的编辑特征——以fm101.1西安乱弹“刘翔来了”为例》.zip

      《浅析新媒介生态环境下广播娱乐节目的编辑特征——以fm101.1西安乱弹“刘翔来了”为例》.doc

      《浅析新媒介生态环境下广播娱乐节目的编辑特征——以fm101.1西安乱弹“刘翔来了”为例》-论文.zip

      使用fiddler工具进行抓包,使用python进行osc乱弹抢沙发

      into沙龙第期康国庆乱弹传统企业转型以及与互联网结合的方式ppt教案.pptx

      乱弹餐馆“菜单”的设计 202 提一个懒人需求——找遥控器的电视 203 谈一下清华的道路设计 204 产品说明书的最佳位置 205 信息整理后的火车票视觉结构 207 第18章 ucd年会主题分享 211 ucd2009《从用户出发》的主要...

      技术乱弹之hive源码之词法语法解析(md版格式已乱 请查看docx版)     第一章  前言   我们知道 hive是一个基于hadoop上面提供了类sql的接口的组件,以方便熟悉sql的人使用hadoop,对大数据的处理。限于精力,本文...

      动态编译与ws服务,有关系么?... 以下代码可将源码动态编译为一个程序集:动态编译 代码如下:codedomprovider provider = codedomprovider.createprovider(“csharp”);compilerparameters codeparame

      目录: 01 初识数据中心 02 探秘大二层网络 03 漫谈网络虚拟化 04 乱弹网络融合 05 数据中心网络管理技术 06 sdn真的来了 07 云数据中心简介

      01 初识数据中心 02 探秘大二层网络 03 漫谈网络虚拟化 04 乱弹网络融合 05 数据中心网络管理技术 06 sdn真的来了 07 云数据中心简介

      随着ajax技术的出现、盛行,本被忽视认为是二流编程语言的javascript脚本也开始了新的盛行,大量的javascript框架的出现如microsoft asp.net ajax、jquery等。ajax已经成为这些脚本框架必不可少的组成部分了,而且...

      1.5. 为什么自己按照例子写的代码,显示出来总找不到图片 1.6. 我们还需要什么? 2. 震撼吧!让你知道ext表格控件的厉害。 2.1. 功能丰富,无人能出其右 2.2. 让我们搞一个grid出来耍耍吧。 2.3. 上边那个是1....

      历史上曾有皮黄、二黄、黄腔、京调、京戏、平剧、国剧等称谓,清朝乾隆五十五年(1790年)四大徽班(三庆、四喜、春台、和春)四班进京后与京剧坛的昆曲、汉剧、乱弹等剧种经过五、六十年的融汇,衍变成为京剧,是...

      1.5. 为什么自己按照例子写的代码,显示出来总找不到图片 1.6. 我们还需要什么? 1.7. 入门之前,都看helloworld。 1.7.1. 直接使用下载的发布包 1.7.2. 只把必要的东西放进项目中 2. 震撼吧!让你知道ext表格控件...

      1.4. 为什么自己按照例子写的代码,显示出来总找不到图片 1.5. 我们还需要什么? 1.6. 入门之前,都看helloworld。 1.6.1. 直接使用下载的发布包 1.6.2. 只把必要的东西放进项目中 2. 震撼吧!让你知道ext表格控件的...

    global site tag (gtag.js) - google analytics