Как стать автором
Обновить
0

Groovy & Grails *

Язык программирования Groovy и фреймворк Grails

Сначала показывать
Порог рейтинга
Уровень сложности

Тестируем Spring Boot приложения через Spock Framework

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 3.6K

Написание тестов - важная часть создания качественного ПО, но в то же время кажется неинтересным и утомительным занятием. Попробуем улучшить этот процесс, объединив сразу несколько крутых технологий.

В статье описан процесс интеграции Spring Boot и Spock Framework, а также приведены примеры тестирования в BDD подходе.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 1

Новости

Jenkinsfile – это не Groovy

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.5K

Я не нашел в документации к Jenkins утверждения, что Jenkinsfile пишется на Groovy, но количество отсылок к Groovy столь велико, что у многих людей создаются ложные ожидания.

Я решил написать этот пост после многократного объяснения коллегам отличий скрипта Jenkinsfile от Groovy.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 15

Миграция конфигурации сборки с Groovy на Kotlin

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 4.3K

DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.

С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.

Это предстоящее изменение обеспечило возможность  переноса конфигураций Gradle на основе Groovy DSL на Kotlin DSL. Перевод файлов Gradle с Groovy на Kotlin DSL может значительно улучшить рабочий процесс разработки для Android. Особенно, если вы уже знакомы с Kotlin. Такой переход на единый знакомый язык не только повышает вашу производительность, но и устраняет необходимость переключаться между двумя языками для выполнения задач разработки и настройки. Надежность и интуитивность Kotlin DSL дает уверенность в создании пользовательских задач Gradle без необходимости прибегать к зачастую нечеткому синтаксису Groovy.

Статья задумана, как руководство, которое поможет вам на этапе перехода на Kotlin DSL. Материал написан с акцентом на проекты Android, но обсуждаемые моменты могут быть применимы и к другим проектам на основе Gradle, таким как приложение Spring Boot.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Замыкания в Groovy

Время на прочтение 5 мин
Количество просмотров 2K

В этом ознакомительном учебном пособии мы рассмотрим концепцию замыканий в Groovy, являющуюся ключевой особенностью этого динамичного и мощного языка JVM. Концепцию замыканий поддерживают и многие другие языки, включая Javascript и Python. Однако в разных языках характеристики и функционирование замыканий различаются. Мы рассмотрим ключевые аспекты замыканий в Groovy, попутно демонстрируя примеры их использования.

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 1

Истории

Учебное пособие: Файл Jenkins Pipeline с Apache Groovy

Время на прочтение 12 мин
Количество просмотров 6.3K

Этот учебник по Groovy для Jenkins покажет вам, как использовать скрипт Apache Groovy для построения пайплайна Jenkins. Groovy подойдет для начинающих и является хорошим выбором при объединении командных скриптов.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 1

Знакомство с Groovy DSL на примере из Gradle

Время на прочтение 3 мин
Количество просмотров 1.8K

Если вы пользовались системой сборки Gradle, то, вероятно, уже применяли и извлекали пользу из DSL-возможностей языка Groovy. В этой статье давайте рассмотрим такой пример.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 1

Лучшие практики скриптования в Jira Server/Data Center

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 2.4K

Всем привет! Меня зовут Сергей Трошин, я администратор Atlassian в VKCO. Заметил, что в интернете мало концентрированной информации про написание автоматизаций на Groovy с помощью API Jira Java. Тема достаточно важная, так как ни одна серьёзная компания не обходится без сложных средств автоматизации бизнес-процессов. В большинстве случаев таким средством является плагин Scriptrunner от Adaptavist, именно на нём написаны скрипты, фрагменты из которых используются в этой статье. Но мы не будем зацикливаться на инструменте, позволяющим обращаться к API Jira Java, это не играет роли.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 2

Jenkins pipelines с Groovy

Время на прочтение 8 мин
Количество просмотров 13K

Добрый день, коллеги. Jenkins является одной из самых популярных систем CI/CD, которая применяется для построения пайплайнов сборки и доставки.

Jenkins поддерживает построение пайплайнов на основе Groovy скриптов. Использование Groovy дает возможность очень гибко настраивать пайплайны под нужды конкретного проекта.

Рассмотрим основы построения пайплайнов в Jenkins с использованием Groovy скриптов.

Groovy - это объектно-ориентированный язык программирования, использующий платформу JVM. Этот динамический язык имеет множество возможностей, вдохновленных Python, Smalltalk и Ruby. Он также предлагает множество функций для повышения скорости и удобства написания кода, таких как поддержка DSL, замыкания и динамическая типизация.

Почему стоит использовать Groovy в Jenkins?

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 10

Geb Framework для автотестов

Время на прочтение 7 мин
Количество просмотров 1.6K

Добрый день, коллеги. Один из самых известных и популярных фреймворков для написания автотестов - это Selenium. У этого фреймворка множество плюсов и возможностей, но в то же время есть некоторые неудобства в конфигурации, настройке и написании тестов. Поэтому появились фреймворки, которые расширяют Selenium.

Один из таких фреймворков - Geb Framework, он написан на Groovy и использует возможности groovy DSL на полную мощность.

Прежде чем приступать к изучению Geb и работе с ним, необходимо освежить в памяти темы, связанные с Groovy:

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 0

Эти 10 новых возможностей делают Groovy 4.0 потрясающим

Время на прочтение 7 мин
Количество просмотров 3.8K

Изолированные (sealed) типы, switch-выражения и типы record. Это лишь несколько из новых фич, появившихся в последнем выпуске Groovy 4.0. В этом видео я хочу показать вам десять вещей, которые делают Groovy 4.0 удивительным. Чтобы не делать его слишком затянутым, мы не станем глубоко погружаться в каждую из них. Вместо этого я намерен дать вам краткий обзор новых возможностей.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 2

От кода «на коленке» к эффективному CI/CD: строим общий Pipeline as Code командой в 100+ человек

Время на прочтение 9 мин
Количество просмотров 7K

Много команд, много продуктов, каждый автоматизирует релизный цикл, у каждого свой набор скриптов. Дублирование, отсутствие обмена практиками и повторное изобретение колеса приводит к тому, что команды тратят много времени на построение своего CI/CD. И все это поддерживает микросервисную архитектуру, где автоматизации нужно уделить особое внимание.

Меня зовут Владимир Цыбров, я релиз-инженер Леруа Мерлен и сегодня расскажу, какие в компании были подходы к построению пайплайнов и улучшению качества их кода. Спойлер: мы использовали подход InnerSource и предоставили командам self-service-инструменты.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 3

Ускоряем Groovy скрипты

Время на прочтение 4 мин
Количество просмотров 3K

AST (Abstract Syntax Tree) преобразование для исполнения Groovy скриптов с @CompileStatic


Введение


Предположим у Вас есть некоторый скрипт который работает с некоторым бизнес объектом, скажем Person.


Groovy script


    person.name = 'Peter'

У Groovy есть замечательная фича @CompileStatic, которая заставляет компилятор Groovy компилировать скриптовый код статически (как это делает компилятор Java), что значительно ускоряет исполнение скрипта, но к сожалению в нашем случае простого (plain) скрипта у нас просто нет места где мы можем применить эту аннотацию. Вы знаете что @CompileStatic применяется либо к методу или классу. Давай сначала попробуем решить эту проблему вручную.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

«Атака клонов» или пишем макрос для клонирования репозитория GitLab внутрь XWiki

Время на прочтение 8 мин
Количество просмотров 1.7K

Наконец-то я "раздобыл" немного свободного времени, а значит пришла пора продолжить серию туториалов по XWiki.

После публикации одной из моих статей MaxK82 спросил у меня, можно ли как-то в XWiki подключить документацию из git репозитория, так чтобы наладить её версионирование. К сожалению эта статья не ответит на его вопрос, но возможно укажет направление, в котором стоит "копать".

Поэтому сегодня мы с вами:

- создадим простенький, но зато свой макрос в XWiki;

- клонируем прямо в XWiki репозиторий с GitLab;

- отобразим Readme.md из репозитория внутри страницы XWiki.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Блеск и нищета фреймворков тестирования: используем Groovy для скриптинга end-to-end тестов

Время на прочтение 8 мин
Количество просмотров 3.1K

Безусловно, тестирование важный аспект разработки ПО. Наличие тестов - это хорошо, а удобное тестирование - еще лучше. В этой статье я расскажу как запускать тесты, написанные на groovy без gradle, maven и даже без предварительной компиляции этих тестов, а также почему JUnit 5 - это намного больше, чем просто хорошая библиотека для unit тестов.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 5

Прощай, Grails. Привет, Micronaut. Окончание

Время на прочтение 20 мин
Количество просмотров 1.5K

Это третья и последняя статья из цикла о миграции из Grails в Micronaut. Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

В этой статье поговорим о сервисах, контроллерах, приложении Micronaut, Micronaut Data.

Первую статью (о многомодульных проектах, конфигурации и статической компиляции) можно прочитать здесь.

Вторую статью (о датасетах, маршалинге и классах предметной области) можно прочитать тут.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Прощай, Grails. Привет, Micronaut. Продолжение

Время на прочтение 9 мин
Количество просмотров 1.4K

Это вторая статья из цикла о миграции из Grails в Micronaut. Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

Всего в цикле публикаций о миграции из Grails в Micronaut 10 частей:

Многомодульный проект
Конфигурация
Статическая компиляция
Датасеты
Маршалинг
Классы предметной области
Сервисы
Контроллеры
Приложение Micronaut
Micronaut Data

В этой статье поговорим о датасетах, маршалинге и классах предметной области.

Первую статью (о многомодульных проектах, конфигурации и статической компиляции) можно прочитать здесь.

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 0

Прощай, Grails. Привет, Micronaut

Время на прочтение 6 мин
Количество просмотров 1.7K

Всего в цикле публикаций о миграции из Grails в Micronaut будет 10 частей:

Многомодульный проект
Конфигурация
Статическая компиляция
Датасеты
Маршалинг
Классы предметной области
Сервисы
Контроллеры
Приложение Micronaut
Micronaut Data

Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 0

Дикая природа Gradle Task: руководство по выживанию

Время на прочтение 19 мин
Количество просмотров 18K

Приветствую, Gradle-адепт! В статье тебя ждёт авторский тур по Gradle Task. В маршрут включено хождение по граблям, изучение секретных практик buildscript-тасок, проведение раскопок по deprecated API, а ближе к концу зарядимся силой Custom Gradle Task, попрактикуемся в строительстве билд-кеша и узнаем, кто такой Worker API.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 2

Наш опыт использования Jira: cоздание подзадач по шаблонам

Время на прочтение 8 мин
Количество просмотров 9.9K


В предыдущей статье "Несколько примеров успешного изобретения велосипеда" мы поделились рядом решений, полученных путем комбинирования наших плагинов для Atlassian, таких как MyGroovy, JSIncluder и MyCalendar. На этот раз мы рассмотрим еще один плагин из нашей коллекции — Custom Select List.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 1

Gradle Plugin: Что, зачем и как?

Время на прочтение 15 мин
Количество просмотров 26K

Доброго времени, читатель! В предыдущей статье мы рассмотрели, как эффективно использовать стандартные инструменты Gradle в проектах для решения повседневных задач и немного коснулись подкапотного пространства.

Под катом статьи проведём тур по Gradle-плагинам, разберёмся, для чего вы можете писать кастомные плагины уже сейчас, проникнемся процессом разработки на примере реализации плагина для Kotlin-кодогенерации и научимся обходить некоторые Gradle-грабли. 

В первой части статьи проведём небольшой теоретический экскурс и рассмотрим способы реализации плагинов, а во второй части двинемся к практической задаче и проникнемся разработкой плагина для Kotlin-кодогенерации. Заваривайте ваш любимый напиток и поехали.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 3