CodeGen概述
CodeGen概述
CodeGen是在协同开发环境中工作的软件开发人员可以用来生成源代码的工具。该代码可能是Synergy DBL代码,也可能是其他语言的源代码。CodeGen并不局限于为任何特定的开发环境或编程语言生成代码。
当然,你不能仅仅使用CodeGen生成任何你能想象得到的源代码。在生成代码之前,开发人员必须声明定义如何创建给定源代码的规则。这些规则在模板文件中定义。CodeGen解释开发人员在模板文件中定义的代码和指令,以便生成有用的输出。
不过,在模板文件中定义规则只是故事的一部分。为了真正有用,CodeGen还需要另一个信息源来定义要生成的内容的上下文。
大多数软件应用程序都围绕着数据的收集、表示、操作和存储。这些数据最终存储在某种类型的持久存储中,例如数据文件集合或关系数据库中的表中。当开发人员处理一段特定的源代码时,他们将他们所掌握的关于应用程序数据(元数据)的知识与规则或“业务逻辑”相结合,以便创建满足特定需求的源代码。CodeGen也这么做。
当开发人员在Synergy/DE中工作时,他们可以访问称为Synergy/DE存储库的优秀元数据源。存储库包含有关应用程序使用的数据结构以及这些数据结构的属性的大量信息。存储库还可以包含有关各种数据结构之间的关系的信息,甚至包含有关底层数据存储机制的信息。Synergy存储库是非常丰富的元数据源,也是CodeGen使用的元数据的主要来源。
对于使用Synergy/deuSynergy/DE UI Toolkiti工具箱来展示其应用程序用户界面的开发人员来说,可能还有另一个元数据源,称为窗口脚本文件。在某些情况下,CodeGen还可以使用这些文件中包含的元数据。
都是关于元数据的!gen在一个文件中结合了一些定义好的文本结构的信息。
基本原则
每次开发人员使用CodeGen生成代码时,他们通常提供两个主要信息:
1. 元数据的来源,通常是存储库结构的名称。
2. 定义要创建的内容的规则的模板文件的名称。
每次CodeGen生成一个输出文件时,它通常做三件事:
1. 从元数据源(通常是存储库结构)读取信息。
2. 从模板读取规则。
3. 将规则与元数据合并以创建输出文件。
CodeGen概述的更多相关文章
- TVM代码生成codegen
TVM代码生成codegen 硬件后端提供程序(例如Intel,NVIDIA,ARM等),提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核,或者提供框架例,如带有图形引擎的DNN ...
- 如何在TVM上集成Codegen(上)
如何在TVM上集成Codegen(上) 许多常用的深度学习内核,或者提供DNNL或TensorRT等框架和图形引擎,让用户以某种方式描述他们的模型,从而获得高性能.此外,新兴的深度学习加速器也有自己的 ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
随机推荐
- 从苏宁电器到卡巴斯基第25篇:难忘的三年硕士时光 III
阴差阳错,走上了讲师的道路 时间已经来到了2015年的1月,我的找工作之路也是屡败屡战,屡战屡败.金山.百度以及腾讯不约而同地不要我,使得我对于自己的未来充满了迷茫.尽管才研二而已,可是对于我这种没有 ...
- hdu1568斐波那契前4位
题意: 就是求斐波那契数,但是只要求输出前四位,(n<=100000000). 思路: 这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧: ...
- Python中Selenium模块的使用
目录 Selenium的介绍.配置和调用 Selenium的配置 Selenium的调用 Selenium的使用 定位 定位元素的使用 定位下拉标签元素 在iframe框架之间切换 上传文件 Webd ...
- Docker用Commit给容器做快照
关于 commit 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础. 镜像是多层存储,每一层是在前一层的基础上进行修改:而容器同样也是多层存储,是在以镜像为 ...
- mysql.data.entityframeworkcore 已弃用
转官网有方案: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html General R ...
- Java安全之Fastjson反序列化漏洞分析
Java安全之Fastjson反序列化漏洞分析 首发:先知论坛 0x00 前言 在前面的RMI和JNDI注入学习里面为本次的Fastjson打了一个比较好的基础.利于后面的漏洞分析. 0x01 Fas ...
- CRM系统全方位管理企业
您在选择一款CRM系统的时候,首先要考虑销售团队的感受和意见.让CRM系统在帮助销售团队优化工作流程的同时,更好地对销售团队进行管理.销售人员每卖出一件商品,要从寻找筛选商机开始,经过沟通客户需求.满 ...
- Logstash 的命令行入门 ( 附上相关实验步骤 )
Logstash 的命令行入门 ( 附上相关实验步骤 ) 在之前的博客中,我们已经在 Macbook Big Sur 环境下安装了 ELK 的相关软件,并且已经可以成功运行对应的模块: 如果没有安装的 ...
- Java GUI学习,贪吃蛇小游戏
JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...
- 关于在pycharm上使用git(保姆级别教程)
文件 → 设置 先在pycharm上面登录github账号,版本控制 → GitHub → '+' → 通过GitHub登录 会自动跳转至浏览器,然后点击"Authorize in GitH ...