自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單了解JRuby語(yǔ)言技術(shù)

開(kāi)發(fā) 后端
JRuby語(yǔ)言技術(shù)中的DSL可以在JAVA類(lèi)的內(nèi)部使用。它的自然語(yǔ)法包括:運(yùn)算符重載;Hash和符號(hào);Block;動(dòng)態(tài)類(lèi)型擴(kuò)展;方法缺失等等。

JRuby語(yǔ)言技術(shù)的人氣正在如日劇增。那么我們應(yīng)該如何正確的看待JRuby語(yǔ)言技術(shù)呢?在這里我們就為大家簡(jiǎn)單的描述一下這項(xiàng)技術(shù)原理。#t#

但問(wèn)題是,為什么你要這么做呢?原因有很多,其中包括:可以簡(jiǎn)化重復(fù)性任務(wù),可以封裝樣板式代碼(Boiler-plate Code),或者是可以更有效表達(dá)代碼目的的API.不管你有什么特殊原因,所有的DSL都可以為你的項(xiàng)目帶來(lái)清晰的價(jià)值。

在演講中探討的方法是創(chuàng)建一個(gè)JRuby的DSL,可以在Java類(lèi)內(nèi)部使用。因?yàn)橛蒍Ruby生成的字節(jié)碼最終會(huì)在JRE上運(yùn)行,所以這個(gè)DSL應(yīng)該被視為“內(nèi)部”DSL——使用一個(gè)通用編程語(yǔ)言來(lái)創(chuàng)建一個(gè)特定編程語(yǔ)言。另外一種可選方式是“外部”DSL,需要一個(gè)外部的編譯器和生成器,這樣則會(huì)使得整合工作難度增大。

這個(gè)方法的優(yōu)點(diǎn)在于創(chuàng)建DSL,其中展示了一些JRuby語(yǔ)言技術(shù)使得DSL的開(kāi)發(fā)變得更加容易:

運(yùn)算符重載——對(duì)運(yùn)算符進(jìn)行重載可以使DSL可以提供一個(gè)更為自然的語(yǔ)法

Hash和符號(hào)(Symbol)——使用Hash和符號(hào)可使表達(dá)關(guān)系和標(biāo)識(shí)對(duì)象更加容易

Block——Block可以封裝可運(yùn)行邏輯,并允許邏輯儲(chǔ)存起來(lái)(置于Hash中),用于稍后執(zhí)行

動(dòng)態(tài)類(lèi)型擴(kuò)展——可以用動(dòng)態(tài)的方式向類(lèi)和對(duì)象加入方法

方法缺失(Method Missing)——當(dāng)調(diào)用了一個(gè)不存在的方法時(shí),可以進(jìn)行自陷(Trap),這樣可以避免需要提前了解

所有操作整合——可以使用已有Java代碼為了全面獲得使用JRuby語(yǔ)言技術(shù)創(chuàng)建DSL的好處,演講中還給出了關(guān)于編程方式的技巧:確保你不會(huì)使用動(dòng)態(tài)語(yǔ)言來(lái)編寫(xiě)Java代碼從通用構(gòu)建Block(Common Building Blocks)創(chuàng)建DSL識(shí)別問(wèn)題,然后創(chuàng)建出一個(gè)合適的語(yǔ)法表達(dá)出解決方案

提供元數(shù)據(jù)和行為——不要讓你的DSL變成配置文件用Ruby的方式思考:使用類(lèi)型擴(kuò)展;使用Block;在對(duì)象上使用方法保證有限的作用域;僅僅解決領(lǐng)域中相應(yīng)的小部分問(wèn)題,不要讓DSL變成一個(gè)通用編程語(yǔ)言對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),DSL是另外一種可以利用的工具。只要花一小部分時(shí)間,就可以節(jié)省更大部分的時(shí)間。

責(zé)任編輯:曹凱 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-17 17:05:29

JRuby是什么JRuby

2021-04-09 06:25:41

區(qū)塊鏈區(qū)塊鏈技術(shù)

2009-07-20 09:22:36

用jruby調(diào)用jfr

2011-10-28 14:23:46

Ruby

2012-04-16 14:55:54

JVMJRuby

2022-04-25 10:04:58

MySQL性能數(shù)據(jù)

2009-07-17 17:11:47

Ruby生成JVM代碼

2009-07-17 17:02:54

JRuby是什么

2010-05-21 12:33:28

統(tǒng)一通信技術(shù)平臺(tái)

2009-07-20 15:37:26

JRuby安裝JRuby配置

2009-11-17 09:47:54

Oracle SQL語(yǔ)

2009-07-17 16:17:04

在tomcat上配置j

2009-07-17 16:43:02

JRuby性能優(yōu)化

2009-07-17 17:49:39

JRuby學(xué)習(xí)

2009-07-20 15:42:34

監(jiān)控JRubyJProfiler

2009-07-17 17:34:15

JRuby On Ra

2009-12-25 11:22:13

Linux進(jìn)程技術(shù)

2012-05-11 14:10:21

Instagram技術(shù)

2021-05-25 05:25:24

MySQL數(shù)據(jù)庫(kù)

2010-05-24 15:18:38

Linux SNMP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)