История языка Groovy
Краткая хронология Groovy на JVM — от идеи James Strachan до ниши Gradle, Jenkins и Spock.
Что требуется знать перед началом изучения языка программирования Groovy
Groovy — язык для JVM: тот же байт-код и библиотеки Java, но короче синтаксис, замыкания и скрипты.
Рекомендации по разработке на Groovy
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Простые приложения на Groovy
Простые приложения на Groovy — скрипты на JVM, файлы, JSON и HTTP.
Основы языка Groovy
Макросы на уровне языка (начиная с Groovy 2.5) — groovy.transform.Macro позволяет инжектить код, основываясь на анализе AST.
Типы данных и объявление переменных
Статическая и динамическая типизация в Groovy, примитивы JVM, строки GString, коллекции, диапазоны и ключевые операторы def, as, instanceof.
Операторы и выражения в Groovy
Операторы и выражения в Groovy - арифметика, логика и выразительный синтаксис поверх JVM-экосистемы.
Циклы и управляющие конструкции
Циклы и управляющие конструкции Groovy - императивные и декларативные способы описания логики выполнения.
Объектно-ориентированное программирование в Groovy
В этом примере greet — это переменная, содержащая замыкание. Замыкание принимает один параметр name и выводит приветствие. Вызов greet(Groovy) выполняет код внутри замыкания.
Иерархия исключений в Groovy
Нет проверяемых исключений — компилятор Groovy игнорирует механизм throws, принятый в Java.
Особенности и расширения языка Groovy
Динамическая типизация, метапрограммирование, AST-трансформации, DSL, работа с XML и JSON, синтаксический сахар и интеграция с Java.
Синтаксис и пунктуация в Groovy
Кавычки, скобки, замыкания, switch, регулярные выражения и truthiness в Groovy.
Ключевые слова языка Groovy
Groovy использует все ключевые слова Java и добавляет собственные для упрощения синтаксиса. Справочник разделён на логические группы для удобства использования.
Встроенные функции и метапрограммирование
Набор функций, которые включены в стандартную библиотеку языка.
Синтаксические конструкции Groovy
Замыкания, коллекции, JSON/XML, фреймворки Gradle, Grails, Spock и сферы применения Groovy.
Работа с базами данных из Groovy
GORM в Grails и Spring, доменные классы, CRUD, связи, транзакции, альтернативы Sql и JDBC для скриптов на Groovy.
Первая программа на Groovy
Гайд по установке и настройке с написанием первой программы и её запуском.
Groovy и Java — совместимость и отличия
Что переносится из Java в Groovy без изменений, где синтаксис расходится, и как вызывать Groovy из Java.
Spock — первая спецификация
Spock — фреймворк тестов на Groovy для Java-проектов: given/when/then, where, моки и Gradle.
Jenkins Pipeline — первый Jenkinsfile
Jenkins — сервер CI/CD. Declarative Pipeline в Jenkinsfile на Groovy: stages, agent, post и credentials.
Gradle Groovy DSL — первая сборка
build.gradle на Groovy — plugins, dependencies, tasks, wrapper и разбор блоков dependencies { } для Java-проекта.
FastJ — первая игра на Groovy
FastJ — кроссплатформенный игровой движок на Java с шаблоном на Groovy. Gradle, сцена, спрайты, ввод и сборка исполняемого файла.
Job DSL Playground — jobs Jenkins как код
Jenkins Job DSL Plugin — seed job, pipelineJob и job на Groovy, API Viewer, папки, views и отличие от Declarative Pipeline в Jenkinsfile.
Jenkins Shared Library — общий Groovy-код CI
Shared Library в Jenkins — структура vars/ и src/, @Library, global vars, классы Groovy, версионирование и шаблоны pipeline для команд.
Практикум — API-тестер на Groovy и JMeter
Пошаговая сборка desktop-приложения для ручного тестирования REST API — Gradle, Swing GUI, Apache JMeter как HTTP-движок, модели запроса и ответа.
Справочник по языку Groovy
Groovy не навязывает жёсткой структуры, но следует общепринятым соглашениям JVM-экосистемы, особенно если используется Gradle или Maven.
Groovy — итоги
Итоги раздела «Groovy» — FAQ и краткие ответы по теме.
Groovy — чек-лист
Чек-лист раздела «Groovy» — вопросы для самопроверки.
Groovy — о разделе
Groovy на JVM — синтаксис, GDK, DSL для Gradle и Jenkins, тесты Spock; маршрут для сборки и автоматизации, не для "основного" приложения.