简单了解JRuby语言技术

开发 后端
JRuby语言技术中的DSL可以在JAVA类的内部使用。它的自然语法包括:运算符重载;Hash和符号;Block;动态类型扩展;方法缺失等等。

JRuby语言技术的人气正在如日剧增。那么我们应该如何正确的看待JRuby语言技术呢?在这里我们就为大家简单的描述一下这项技术原理。#t#

但问题是,为什么你要这么做呢?原因有很多,其中包括:可以简化重复性任务,可以封装样板式代码(Boiler-plate Code),或者是可以更有效表达代码目的的API.不管你有什么特殊原因,所有的DSL都可以为你的项目带来清晰的价值。

在演讲中探讨的方法是创建一个JRuby的DSL,可以在Java类内部使用。因为由JRuby生成的字节码最终会在JRE上运行,所以这个DSL应该被视为“内部”DSL——使用一个通用编程语言来创建一个特定编程语言。另外一种可选方式是“外部”DSL,需要一个外部的编译器和生成器,这样则会使得整合工作难度增大。

这个方法的优点在于创建DSL,其中展示了一些JRuby语言技术使得DSL的开发变得更加容易:

运算符重载——对运算符进行重载可以使DSL可以提供一个更为自然的语法

Hash和符号(Symbol)——使用Hash和符号可使表达关系和标识对象更加容易

Block——Block可以封装可运行逻辑,并允许逻辑储存起来(置于Hash中),用于稍后执行

动态类型扩展——可以用动态的方式向类和对象加入方法

方法缺失(Method Missing)——当调用了一个不存在的方法时,可以进行自陷(Trap),这样可以避免需要提前了解

所有操作整合——可以使用已有Java代码为了全面获得使用JRuby语言技术创建DSL的好处,演讲中还给出了关于编程方式的技巧:确保你不会使用动态语言来编写Java代码从通用构建Block(Common Building Blocks)创建DSL识别问题,然后创建出一个合适的语法表达出解决方案

提供元数据和行为——不要让你的DSL变成配置文件用Ruby的方式思考:使用类型扩展;使用Block;在对象上使用方法保证有限的作用域;仅仅解决领域中相应的小部分问题,不要让DSL变成一个通用编程语言对于开发人员来说,DSL是另外一种可以利用的工具。只要花一小部分时间,就可以节省更大部分的时间。

责任编辑:曹凯 来源: 中国IT实验室
相关推荐

2009-07-17 17:05:29

JRuby是什么JRuby

2021-04-09 06:25:41

区块链区块链技术

2009-07-20 09:22:36

用jruby调用jfr

2012-04-16 14:55:54

JVMJRuby

2011-10-28 14:23:46

Ruby

2022-04-25 10:04:58

MySQL性能数据

2009-07-17 17:02:54

JRuby是什么

2009-07-17 17:11:47

Ruby生成JVM代码

2010-05-21 12:33:28

统一通信技术平台

2009-07-20 15:37:26

JRuby安装JRuby配置

2009-07-20 15:42:34

监控JRubyJProfiler

2009-07-17 17:34:15

JRuby On Ra

2009-07-17 17:49:39

JRuby学习

2009-11-17 09:47:54

Oracle SQL语

2012-05-11 14:10:21

Instagram技术

2009-12-25 11:22:13

Linux进程技术

2009-07-17 16:43:02

JRuby性能优化

2009-07-17 16:17:04

在tomcat上配置j

2023-06-25 12:10:34

Linux文件权限

2021-05-25 05:25:24

MySQL数据库
点赞
收藏

51CTO技术栈公众号