Перейти к основному содержимому

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.

Раздел про Groovy на JVM — синтаксис, GDK, замыкания, DSL (Gradle, Jenkins), тесты (Spock).

Groovy использует Java-подобный синтаксис с компиляцией в байт-код JVM и напрямую работает с Java-классами и библиотеками. Язык годится для полноценных JVM-проектов и как сценарный — без обязательного класса с main. Активно применяется как предметно-ориентированный язык (DSL) — от математики и научных данных до сборки и тестирования приложений.

Стандартизация завершена в Java Community Process (JSR 241). С 2015 года Groovy — проект верхнего уровня Apache (лицензия Apache 2.0). Официальные ресурсы — groovy-lang.org и groovy.apache.org.

Парадигмы — объектно-ориентированное, императивное, сценарное и функциональное программирование; язык мультипарадигмальный и кроссплатформенный. На синтаксис и идеи повлияли Python, Java, Ruby, Perl и Smalltalk. Расширения исходников — .groovy, .gvy, .gsh, .gy.

Честная установка: Groovy редко бывает единственным языком всего продукта. Его учат, когда нужно читать build.gradle, править Jenkinsfile или писать выразительные тесты к Java/Kotlin-коду. База Java сильно ускоряет вход.

Интерактивные демо в части статей — на JavaScript; рядом всегда есть примеры на Groovy.

Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.


Два маршрута

Кто выМаршрут
Уже пишете на Java/KotlinЧто требуется знать перед началом изучения языка программирования GroovyСравнение Java и GroovyОсновы языка Groovy (делегирование замыканий) → Справочник по языку Groovy (Spock, Jenkins)
Новичок на JVMСначала Java — первая программа, потом первая программа на Groovy

Рекомендуемый порядок (язык + инструменты)

  1. Что знать перед Groovy
  2. История — зачем язык на JVM
  3. Сравнение Java и Groovy — таблица отличий, пример кода, ==, GString, def, вызов из Java
  4. Первая программа — IDEA, NetBeans или groovy hello.groovy
  5. Основы — MetaClass, делегирование замыканий (сердце Gradle DSL)
  6. ТипыОператорыЦиклы
  7. ООПОсобенности
  8. ПунктуацияКонструкции и фреймворки
  9. Gradle Groovy DSL — чтение build.gradle
  10. Spock · Jenkins Pipeline — CI и тесты
  11. Job DSL Playground · Jenkins Shared Library — jobs и общий код CI
  12. FastJ — игра на Groovy (опционально)
  13. Практикум — API-тестер — desktop-приложение на Groovy + JMeter
  14. Справочник — углубление
  15. Итоги и чек-лист
Gradle на Kotlin DSL

Новые проекты часто пишут build.gradle.kts (Kotlin DSL). Groovy DSL всё ещё встречается в старых репозиториях и в примерах Android — этот раздел как раз про чтение таких скриптов.


Зачем этот раздел

Научить читать и писать Groovy там, где он реально живёт — сборка, CI, тесты — а не конкурировать с Spring Boot на Java/Kotlin.


С чего начать

ШагМатериалЗачем
1Первая программаЗапуск, структура Gradle-проекта
2Gradle Groovy DSLbuild.gradle
3Основы — делегированиеПочему работает implementation
4Spock · JenkinsТесты и CI
5Shared Library · Job DSLСтандартизация CI на Groovy

Частые ошибки при старте

ОшибкаЧто делать
Учить Groovy без JavaМинимум Java 13 или Kotlin на JVM
Сравнивать == с JavaВ Groovy ==equalsСравнение Java и Groovy
Писать приложение на Grails "с нуля"Для нового веба чаще Spring/Ktor; Grails — Синтаксические конструкции Groovy, legacy
Забыть def в скриптеИначе MissingPropertyExceptionПервая программа на Groovy

Что попробовать

  1. Скрипт hello.groovy без IDE — Первая программа на Groovy.
  2. В Основы языка Groovy — мини-DSL с delegate как в Gradle.
  3. Один тест Spock к Java-классу — раздел 19 в Справочник по языку Groovy.
  4. FastJ — игра на Groovy (опционально)
  5. Практикум — API-тестер — REST API через Swing + JMeter
  6. чек-лист.


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Бэкенд и серверная разработкаRuby — о разделе, Rust — о разделе, Go — о разделе, Swift — о разделе, Kotlin — о разделе, Lua и Luau — о разделе.