浏览 656 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2019-05-25
最后修改:2019-06-01
当然,有些人可能说,不是所有的代码生成器有生成器脚本,或者说是超级语言的。的确,在现在的代码生成器界,有如下的常见做法,有些代码生成器是没有生成器脚本的,他们采用的是界面操作。有代码生成器脚本的代码生成器也很不一致。我的动词算子式代码生成器阵列采用的是名为SGS的代码生成器脚本,比较新的生成器成员支持和SGS语言有映射关系的Excel模板,最新的第三代动词算子式代码生成器光的版本甚至只支持Excel模板代码生成。关于SGS和Excel模板的优劣我会在乱弹十四中阐明。而其他人的代码生成器有其他做法,有的采用XML,采用JSON或者SQL或者其增强的也大有人在。 为什么说超级语言和高级语言的关系是代码生成器的根本问题。问题在于效率,在于劳动生产率,在于代码生成器存在和发展的客观逻辑。对于界面派我们可以分析出他们的问题所在。我能想到的问题在于重复工作。如果界面操作不能脚本或或可储存可修改在如下的场景下,会显得非常低效。比如说一位程序员使用界面操作的代码生成器生成了一套代码,他很有成就感,因为他用半天时间做完了两周的工作。他把工作成果展示给他的老板或者客户。期望得到他们的认可。于是悲剧产生了,审核者肯定了他的工作,但是希望部分改变数据库设计。如果,单纯使用界面,不借助文件或者数据库保存功能的代码生成器用户不得不重新使用界面操作一遍。这样就大大降低了代码生成器的实用性。 怎么办,我认为一共只有两种解决办法,使用数据库或者使用某种储存媒介。我是使用SGS文件或者Excel模板来表征一切的。对动词算子式代码生成器的用户而言,以上场景不构成障碍,因为,系统在代码生成物中自动保存了元文件。您可以根据审核者的意见,修改原始文件(SGS 脚本或Excel模板),轻松以迭代式的方式完成工作,不必从头开始。 所以,不能保存的界面流有待完善。而使用某种媒介的代码生成器其实都有一共共通的问题,您要做的动作和代码生成物的比数。当然,最好的代码生成器是这样的,您对他说:“我要一套物流管理系统!",他回答到:“好的,主人。已经为您生成好了。”比较不魔幻的代码生成器需要您比较详细的规格描述。显然,您的描述的越多,代码生成器的效率越低。那末,大家要问,代码生成器的描述到何种详细程度是平衡的比较好的?我的分析如下,程序,无非是代码和数据结构。一部分代码生成器要描述数据结构和施加在这些数据结构上的操作。我已经做到只需要定义参与代码生成的数据对象,所有的泛型操作都默认提供了。这就是本代码生成器乱弹一直在推荐的动词算子式代码生成器。 所以,我们得到了超级语言的概念,超级语言是编译生成高级语言的代码生成物的一类效率特别高的语言。他的等效的代码生产物的码量是超级语言的10倍乃至100倍。如此高效的代码生成器,是不是对应的高级语言的白马王子哦。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |