1. 了解Groovy

2022-12-07 18:18:09 浏览数 (1)

1. 前言

最近,对Groovy脚本语言的兴趣越来越多了,刚巧对于java语言比较熟悉,了解和入手Groovy可以说丝毫不困难。

打算参照Groovy官网的Documentation进行学习。学习了解,当然从最新版本4.0.6版本开始进行了解了。

官网链接地址:http://docs.groovy-lang.org/docs/groovy-4.0.6/html/documentation/

2. 概念

Groovy 是基于JVM的敏捷开发语言。是基于Java的一种动态语言。因为出来的比较晚,所以有吸收Python,Ruby和Smalltalk等语言的一些特性。它对于Java开发人员可以说是几乎没有学习曲线的。

可以与Java类和库实现无缝集成。提供静态类型检测和静态编译代码的能力。

而我们比较常见的就是当脚本语言进行使用,毕竟它的运行效率是没有java原生的效率高的。

而我,想学习和了解,也是将它当做脚本语言来进行使用了。

官方对Groovy的特性总结如下:

  • 是一种敏捷的动态Java虚拟机语言
  • 它建立在Java的基础上,但又有其他强大的特性,这些特性受到Python、Ruby和Smalltalk等语言的启发
  • 为Java开发人员提供了几乎零学习曲线的现代编程特性
  • 为健壮性和性能提供静态类型检查和静态编译代码的能力
  • 支持领域特定语言和其他紧凑语法,使您的代码变得易于阅读和维护
  • 凭借强大的处理原语、OO能力和Ant DSL,使编写shell和构建脚本变得容易
  • 在开发web、GUI、数据库或控制台应用程序时,减少脚手架代码,从而提高开发人员的工作效率
  • 通过支持单元测试和开箱即用的模拟来简化测试
  • 与所有现有Java类和库无缝集成
  • 直接编译为Java字节码,所以您可以在任何可以使用Java的地方使用它

2.1 基于Groovy 的生态系统

除了语言及其API,Groovy还诞生了一个富有成效的项目生态系统,涉及各种主题,如web框架、桌面应用程序框架、并发、测试等。在本节中,我们将重点介绍几个最知名和最成功的项目,这些项目以Groovy为核心。

  1. Grails :Grails是一个用于JVM的开源、全栈、web应用程序框架。它利用Groovy编程语言和约定而不是配置,提供了高效的、流式的开发体验。
  1. Gradle:Gradle可以自动构建、测试、发布、部署和更多软件包或其他类型的项目,例如生成的静态网站、生成的文档或其他任何东西。(Android中依靠它打包编译App)
  1. Spock:Spock是Java和Groovy应用程序的测试和规范框架。它之所以能从人群中脱颖而出,是因为它优美而富有表现力的规范语言。由于其JUnit运行程序,Spock与大多数IDE、构建工具和持续集成服务器兼容。
  2. GPars:GPars框架为Java开发人员提供了直观和安全的方式来并发处理Java或Groovy任务。利用Groovy编程语言的巨大灵活性,并在经过验证的Java技术基础上构建,我们的目标是使多核硬件的并发编程变得直观、健壮和愉快。
  3. Ratpack:Ratpack是一个简单、功能强大的工具包,用于创建高性能web应用程序。
  1. Griffon:Griffon是一个用于在JVM中开发桌面应用程序的应用程序框架,Groovy是首选语言。受Grails的启发,Griffon遵循“配置之上的约定”范式,搭配直观的MVC架构和命令行界面。
  1. Geb:Geb是一个功能强大的浏览器功能测试框架,可以让您快速轻松地在Groovy中编写功能测试。它汇集了WebDriver的强大功能、jQuery内容选择的优雅、页面对象建模的健壮性和Groovy语言的表达能力。
  1. SDKMAN!:SDKMMAN!是一种工具,用于在大多数基于Unix的系统上管理多个软件开发工具包的并行版本。它提供了一个方便的命令行界面,用于安装、切换、删除和列出候选项。
  1. BeakerX: BeakerX将Groovy引入Jupyter交互式计算环境。它提供交互式绘图、表格和笔记本式web UI。
  1. Micronaut: Micronaut是一个基于JVM的现代全栈框架,用于构建模块化、易于测试的微服务应用程序。
  1. Infrastructor : Infrastructor是用Groovy编写的无代理服务器配置工具。它提供了一个DSL来通过SSH配置虚拟机和裸机。

3. 后记

后面将会基于Idea的Groovy插件,在Android Studio中展示自己的Groovy的学习成果。

要注意,每个基于Groovy的工具都会有自己定义的DSL语言,并不是完全的Groovy脚本。

但是,Groovy使用的场景比较多。我们如果想使用脚本编译自己的一些工具。那么Groovy值得一试哦。

本篇,主要是一个先导。后面将会分享更多的关于Groovy的知识。这里只是做了一些基本的介绍。

后面将会从无到有的给大家完整介绍。

(PS:所有内容都是基于Groovy的官网资料进行学习翻译的。)

0 人点赞