代码生成现在已经逐渐成为软件开发中的一种标准技术,在众多的软件领域都大大减轻了我们重复劳动的工作量。程序中总是存在着这样那样的隐蔽的关联,它们无法在通用的程序语言框架下得到明确的表达,代码生成是我们突破既定的语言和框架限制的一种重要手段。但是代码生成也存在着严重的弊病,一方面一般的程序语言在设计时没有考虑到和代码生成工具的相互配合,因此生成代码是一次性的,代码生成工具无法以增量的方式修正已经生成的代码。另一方面,程序的结构是复杂的,代码生成工具一般基于某种简化的通用的程序模型(例如CRUD)来产生代码,它无法承载完整的程序结构,因此代码生成后手工调整量仍然很大,有的时候甚至为了微小的界面调整,将生成的代码修改的面目全非,无法发挥代码生成的优势。
在witrix平台中主要使用meta generation而不是code generation. meta实际上是对一种定制模型(model)的描述,它在某种意义上可以看作是完整程序的简化版本,但它本身并不意味着最终的程序结构。在witrix平台各处meta的使用都是可选的, 特别是在多变的前台页面,我们可以选择根据meta描述自动生成界面,也可以选择通过<df:Field name="字段名"/>来引用单个字段的meta数据. 在witrix平台中, meta可以看作是系统运行的内核, 它通过syncWithModel等属性与设计工具发生耦合. 当设计模型修改之后, 这种修改能够以增量的形式通过可控制(修改)的信道传播到系统各处.
分享到:
相关推荐
《Next-Generation VoIP Network》(下一代VoIP网络)是一篇由Paul Drew(MetaSwitch)与Chris Gallon(Fujitsu)共同编写的白皮书。该文档发布于2003年3月,旨在探讨构建大规模VoIP(Voice over Internet Protocol...
这是一种称为“元样式表”(Meta-Stylesheet)的技术,它可以大大简化复杂XSLT样式的创建过程。通过这种方式,你可以编写一套通用的元样式表来处理常见的转换需求,从而减少手动编写复杂XSLT的工作量。 #### 总结与...
2. 下一代测序技术(Next Generation Sequencing, NGS):是一种能够快速、大规模地进行DNA测序的技术。NGS技术的发展带来了对大量基因组数据的处理需求,推动了生物信息学的发展,特别是数据管理和分析算法的研究。...
为了解决这个问题,研究者提出了一个新颖的自适应序列模型生成(Adaptive Sequential Model Generation, ASMG)框架。该框架通过一个元模型生成器从历史模型序列中生成一个更优秀的服务模型。 元模型生成器的设计...
SEO(搜索引擎优化)也是网页设计的重要一环,通过合理地使用meta标签、关键词和描述,可以帮助网站在搜索结果中获得更高的排名。 总的来说,NextGeneration:美发沙龙的网站运用了现代的HTML5技术,结合优秀的交互...
rowrrow Meta是一个元编程库,可在所有阶段与Kotlin编译器合作,将其全部功能带给社区。 编写编译器插件,源代码转换,IDEA插件,linters,类型搜索引擎,自动代码重构等……只是Meta可以完成的一些。 rowRrow Meta...
3. **头部元素**:`<head>`包含文档的元信息,如字符编码(`<meta charset="UTF-8">`)和标题(`<title>`)。 4. **主体元素**:`<body>`包含网页的可见内容,如文本、图像、链接等。 下面是一个基本的HTML页面示例...
用npx hygen init self初始化Hygen后,我们可以使用为我们生成的new成器(因此meta)来创建我们自己的生成器。 我们npx hygen generator new primitive创建一个原语生成器,用所需的输出填充prim
Conditional Generation by RNN & Attention P54. Pointer Network P55. Recursive P56. Transformer and its variant 选学 P57. Unsupervised Learning - Linear Methods P58. Unsupervised Learning - ...
近期,Meta公司与微软合作开源了Llama 2模型,这不仅标志着大型语言模型的发展迈入了一个新阶段,也为开发者提供了更多可能性。本文将以Llama2为例,详细介绍如何部署私有的大模型,并对其关键技术和步骤进行深入...
LLaMA 2是由Meta公司推出的下一代开源大型语言模型,它在人工智能领域具有广泛的应用,包括客户服务和内容创作等。本文将详细指导您如何在Windows本地及云端环境中安装LLaMA 2。 ### 安装流程 #### 1. 创建Conda...
3G,全称为第三代移动通信(Third Generation),是一种移动通信标准,它比2G(第二代)提供了更快的数据传输速度,支持语音通话、数据服务以及多媒体消息等。3G的出现使得移动设备能够进行高速互联网访问,推动了...
Networks constitute the backbone of complex systems, from the human brain to computer communications, transport infrastructures to online social systems, metabolic reactions to financial markets....
XDoclet is an open source code generation engine. It enables Attribute-Oriented Programming for java. In short, this means that you can add more significance to your code by adding meta data ...
1. PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的。 2. Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap...
LINQ-to-Reflection, you can do a lot of meta programming in .NET. ■ Introduction xxxii • Chapter 8: Exploratory Data Analysis This chapter shows how you can use LINQ to solve several data analysis ...
其中,永久保存区域主要存放Class(类)和Meta的信息,Class第一次被Load的时候被放入PermGen space区域,Class需要存储的内容主要包括方法和静态属性。堆区域用来存放Class的实例(即对象),对象需要存储的内容...