学习Groovy,紧紧把握一点就可以了

用过Groovy的童鞋估计更多被其光鲜的语法外表吸引了——在现在编译技术和产品丰富且成熟的情况下,创造一个编程语言更多体现在设计的理念的区别——先写了几句废话。。。

 

切入正题,常用Groovy的童鞋应该经常看gapi和groovy-jdk-api,groovy-sdk的源码也是比较容易看懂的,我就目前自己掌握的东东,总结下分享给大家,有不到之处,请大家多拍砖

 

1. 设计思路上

.依靠JVM这棵大树

.汲取众多**高级语言的语言特性使得在语言功能层面强大

具体通过,扩展基础API,提供常用的工具包,支持高级编程方式(或协议?)

特性列举如:纯OO,更丰富和灵活的操作符,灵活的类型转换机制,正则,闭包等支持,MOP的扩展方式

.依附标准,利用java生态园的库以粗粒度的形式提供一些具体的解决方案和集成方法

如Groovy Modules,Ant Task,BSF,java6的ScriptEngin

 

2. 和Java集成上

大家可能读到Groovy和Java相互操作、调用的一些文章和demo——其实哪有所谓的相互,完全都是vm的class之间的调用么——这句话要避嫌——底层都是C和汇编呢

 

先列举几个常用的Java引用Groovy的类,就像Java使用任何一个第三方库的方式一样

 

Top

GroovyEngine
Script
Eval

  Level 1/2

  GroovyShell

  Level 3

  GroovyClassLoader.parseClass

 

比较眼熟吧,稍微看下groovy的源码——我们就会最终汇总到一处,就是 GroovyClassLoader——把另外一个语法语言(Groovy)编译(AST)成目标语言(.class),在JVM上,这就是唯一的通路。GroovyClassLoader,这个就是题目提到的“紧紧把握一点”了。如果你要引入groovy到你的项目上,到现有的产品里,不要紧盯着Spring提供的Groovy**BeanFactory,或者用一个BSF,(当然javax.script更官方)读GroovyClassLoader的API,你会达到你想要的一切。

 

另外就是Groovy语言上的学习,无非是语法、技能的熟练、经验的积累,我推荐下面几个做参考,剩下就要多练习了



具体对groovy性能啊,动态使用或编译后使用等等东西的讨论就不再这个blog里赘述了,网上一堆,喜欢groovy的童鞋,继续去多实践吧!

 


 

你可能感兴趣的:(groovy)