Что такое groovy java
Перейти к содержимому

Что такое groovy java

  • автор:

Что такое groovy java

Groovy-скрипты обновления имеют следующую структуру:

  • Основная часть, содержащая код, выполняемый до старта контекста приложения. В этой части можно использовать любые классы Java, Groovy и блока Middleware приложения, но при этом необходимо иметь в виду, что никакие бины, интерфейсы инфраструктуры и прочие объекты приложения еще не инстанциированы, и с ними работать нельзя.

Основная часть предназначена в первую очередь, как и обычные SQL-скрипты, для обновления схемы данных.

В этой части скрипта удобно, например, выполнять импорт данных, так как в ней можно использовать интерфейс Persistence и объекты модели данных.

На вход Groovy-скриптов механизм выполнения передает следующие переменные:

  • ds — экземпляр javax.sql.DataSource для базы данных приложения.
  • log — экземпляр org.apache.commons.logging.Log для вывода сообщений в журнал сервера
  • postUpdate — объект, содержащий метод add(Closure closure) для добавления замыканий, выполняющихся после старта контекста сервера.

Пример Groovy-скрипта обновления:

import com.haulmont.cuba.core.Persistence import com.haulmont.cuba.core.global.AppBeans import com.haulmont.refapp.core.entity.Colour import groovy.sql.Sql log.info('Executing actions in update phase') Sql sql = new Sql(ds) sql.execute """ alter table MY_COLOR add DESCRIPTION varchar(100); """ // Add post update action postUpdate.add(< log.info('Executing post update action using fully functioning server') def p = AppBeans.get(Persistence.class) def tr = p.createTransaction() try < def em = p.getEntityManager() Colour c = new Colour() c.name = 'yellow' c.description = 'a description' em.persist(c) tr.commit() > finally < tr.end() > >)

Хочу всё знать: язык Groovy

Если вы никогда не слышали о языке программирования Groovy, то сейчас самое подходящее время начать им интересоваться. Всё дело в том, что в рейтинге TIOBE, основанном на популярности языков в поисковых системах, Groovy занял 18 место, обойдя за последний год уже знакомые нам Dart и R и вплотную приблизившись к индексам Visual Basic и Object Pascal.

Так что в этом языке такого удивительного и почему только сейчас, спустя 13 лет после своего создания, он начал подбираться к лидирующим позициям?

Краткая справка

Прежде чем понять феномен Groovy, обратимся к моменту его создания. Впервые он был упомянут в 2003 году, как язык, дополняющий Java с возможностями Python, Ruby и Smalltalk. Надо понимать, что в то время Java уже был самым популярным языком программирования, поэтому разработчики пытались придумать не замену, а скорее улучшение.

Так Groovy оказался в компании Java-подобных языков, среди которых также выделялся Scala. Вплоть до 2015 года именно последнему прочили стать заменой Java (самое удивительное, что эти слова принадлежат никому иному, как создателю Groovy Джеймсу Стрэчену), но судьба похоже распорядилась иначе.

Преимущества

Спросив любого человека, который имеет опыт работы с Groovy, вы узнаете, что главное преимущество Groovy – это то, что он спокойно «проглатывает» программы на Java. Если искать сравнение в графике, то Groovy – это новый слой, который, с одной стороны, основывается на исходном изображении и может его в точности повторять, а с другой – способен на качественные преобразования исходника.

Впрочем, есть и реальные полезности, как то возможность использовать замыкания, статическая и динамическая типизации или специальный синтаксис для работы с массивами, списками и регулярными выражениями. Однако именно «бесшовное» сопряжение с Java, сдобренное относительной легкостью изучения, помогло Groovy найти отклики в сердцах программистов.

Что касается стремительного взлёта за последний год, то основной причиной послужил переход под знамена Apache Foundation в мае 2015 года. Сразу после этого, многие ведущие технологические компании, опираясь на репутацию Apache, начали на постоянной основе внедрять и использовать Groovy в качестве одного из инструментов. И стоит признать, от этого сотрудничества пока все в выигрыше.

Кому стоит учить

Всем, кто хочет быть на передовой, чья профессия связана с Java, тестировщикам и тем, кто хочет просто немного расширить свои горизонты. А может вам просто надоело работать со Scala, как например вице-президенту Twitter.

Что почитать

Как всегда, начинаем с перечисления ресурсов от производителя:

http://www.groovy-lang.org — официальный сайт. Если вы последний раз заходили сюда пару лет назад, то сильно удивитесь, как косметическим преобразованиям, так и разделу под названием Documentation. В Apache Foundation быстро нашли причину ранней непопулярности Groovy и поспешили снабдить пользователя всей необходимой информацией;

http://www.groovy-lang.org/events.html — важные мероприятия, посвящённые Groovy. В России они, к сожалению, пока не проводятся, зато если соберётесь в отпуск заграницу – не забудьте заглянуть и поинтересоваться, нет ли поблизости какой конференции.

Далее перейдем к хорошим книгам:

Grails. Гибкость Groovy и надежность Java, Глен Смит, Питер Ледбрук – прекрасная книга, посвященная главному фреймворку Groovy с массой практических уроков. Преимущественно для веб-разработчиков;

Groovy и Grails. Практические советы, Башар Абдул-Джавад – не столь увлекательное чтиво по сравнению с предыдущим (субъективно), но также будет иметь практическую ценность;

Making Java Groovy, Кеннет Коузен — книга, ориентированная на Java-разработчиков, которым захотелось сделать свою жизнь чуть проще.

Завершим знакомство с Groovy сторонними, но от того не менее полезными ресурсами:

https://habrahabr.ru/post/122127/ — всего за 15 минут вы прочитаете и усвоите основны Groovy.

https://ru.wikibooks.org/wiki/Groovy — довольно неплохой викиучебник на русском языке;

Testing with Groovy — если вы тестировщик и всё ещё читаете этот текст, то эта ссылка специально для вас;

Groovy

Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание заказа занимает 5 минут.

Об инструменте

Что такое Groovy

Groovy – объектно-ориентированный язык программирования, надстройка над языком Java. Язык разработала организация Apache. Основное отличие Groovy от Java заключается в поддержке динамической типизации, что делает Groovy более гибким языком. Groovy обратно совместим с Java, а также поддерживает компиляцию в байт-код через JVM – виртуальную машину Java. При необходимости, Groovy поддерживает статическую типизацию, а также дополнительные библиотеки Java.

В сравнении с Java, Groovy работает на более высоких уровнях абстракции, что позволяет писать меньше кода. Риски, связанные с динамической типизацией, нивелируются благодаря методу разработки через тестирование. Groovy заработал популярность благодаря функциям замыкания, метапрограммирования, а также достаточно большой экосистеме.

Технологии экосистемы Groovy:

  • Grails – многофункциональный бэкенд-фреймворк, вдохновленный Ruby on Rails;
  • Gradle – популярная среда автоматизации сборки для языков Groovy, Java, Kotlin;
  • Geb – среда тестирования веб-приложений для Groovy, которая интегрируется в браузер и отлично подходит для реализации метода разработки через тестирование, свойственного Groovy.

Стоит отметить, что Java перенимает многие нововведения Groovy, внедряя их в свой язык: например, начиная с 8 версии, Java тоже стал поддерживать функцию замыкания. Тем не менее, Groovy продолжает развиваться благодаря поддержке Apache и мощному комьюнити – в 2021 году язык занял 10 позицию по популярности в авторитетном рейтинге TIOBE. На 2022 год, частота использования Groovy упала вдвое, но за этим языком определенно стоит следить – Groovy продолжает обновляться, а его новшества расширяют возможности Java-разработчиков.

Где чаще применяют Groovy

  • Разработка веб-приложений с помощью фреймворков;
  • Написание скриптов для автоматизации процессов;
  • Разработка приложений с использованием метода разработки через тестирование.

Преимущества разработки на Groovy

  • Гибкость языка за счет поддержки динамической и статической типизации;
  • Скорость благодаря компилированию языка в байт-код;
  • Обратная совместимость с Java и поддержка его библиотек;
  • Достаточно большое количество разнообразных инструментов для работы.

Недостатки разработки на Groovy

  • Малое количество специалистов и материалов на русском языке;
  • Веб-разработка более популярна на других языках, таких как PHP, Ruby on Rails, Python.

Примеры готовых работ на Groovy

  • Сайт разработчиков программного обеспечения Craftbase – craftbase.io.
  • Сайт американской авиакомпании Southwest Airlines Co – southwest.com.
  • Сайт платежной системы TransferWise – wise.com.
  • Сайт онлайн-магазина одежды Trendyol – trendyol.com.
  • Сайт канадского видеохостинга Rumble – rumble.com.

Язык программирования Groovy

#

Groovy — язык, основанный на синтаксисе и принципах Java. Он использует объектно ориентированный подход к построению программ. Типизация данных в Груви может быть как статической, так и динамической. Для компиляции языка используется Java Virtual Machine.

История разработки

Джеймс Стрекан, создатель Groovy, впервые рассказал о своем детище в 2003 году через публикацию в своем блоге. Правда, официальная версия платформы была представлена только в январе 2007, и именно она получила префикс 1.0. Последняя на текущий момент итерация языка, под номером 3.0, вышла в 2020 году.
Сам Джеймс Стрекан покинул команду разработки еще до релиза Groovy 1.0. Позже он писал, что язык Scala, как и Груви представляющий собой надстройку над Java, показался ему более перспективным.
В настоящее время язык является собственностью корпорации Dell, а также поддерживается организацией-фондом Apache Software Foundation.

Особенности языка

В Groovy есть ряд “фишек”, отличающих его от Java и многих других ООП языков.

  1. Совмещение статической и динамической типизации.
    Статическая типизация предполагает строгое указание типа переменной при ее объявлении. При динамическом подходе это действие не обязательно, компилятор определяет тип самостоятельно. Груви использует оба метода типизации, в отличие от Java, где доступна только статика.
  2. Замыкания в коде.
    Замыкания, или closure, это, по сути, функции встроенные в функций. Они могут взаимодействовать с локальными переменными внутри “родителя”. Замыкания связывают данные в единую цепочку и упрощают взаимодействия внутри программы.
  3. Метапрограммирование.
    Groovy использует runtime и compile time программирование. Это значит, что части исходного кода можно расширять не только во время компиляции, но и при исполнении программы.
  4. Перегрузка операторов.
    Перегрузка, или переопределение, операторов применяется для использования одинаковых функций и методов для различных типов данных в общей области видения. Например, извлечения корня как из вещественных, так и дробных или комплексных чисел. Groovy может перегружать стандартные операторы, а Java — нет.
  5. Дополнительный тип строчных переменных.
    В Груви есть строчный тип GString с двойными кавычками. Стандартные строки с одинарными кавычками, как в Java, тоже поддерживаются.
  6. Оригинальный синтаксис массивов и списков.
    Новый тип массивов в Groovy, под названием Maps, позволяет создавать группы из объединенных в пары элементов. Например, ExMap = [ ‘x’ : 1, ‘y’ : 2, ‘z : 3 ].
    Range — это тип данных, представляющий собой промежуток значений с заданным началом и окончанием — ряд чисел, алфавитная последовательность и т. п.
  7. Интеграция языков разметки.
    Груви совместим с разметкой XML и HTML формата. Он может как парсить существующие документы, так и создавать новые через древовидную структуру данных.

Преимущества Groovy

#

Рассмотрим главные плюсы языка.

  1. Полная интеграция с Java.
    Груви дополняет и улучшает код, написанный на Java. Программы. написанные на Groovy, без проблем считываются компилятором JVM.
  2. Доступность в популярных IDE.
    Рассматриваемый язык включают в себя большинство применяемых интегрированных сред разработки: NetBeans, Eclipse и др.
  3. Простота освоения.
    Особенно это актуально для программистов, знакомых с Java, Python и подобными языками. Им синтаксис Groovy покажется знакомым и привычным.
  4. Параллельные и асинхронные вычисления.
    Программы на Груви быстро выполняются за счет параллельного вычисления потоков. Благодаря этому свойству рассматриваемый язык часто применяется для разработки реактивных веб-приложений, где важна скорость ответа системы на действия пользователя.
  5. Поддержка Apache Foundation.
    Независимый фонд оказывает значительное влияние на развитие языка, улучшая его в лучшую сторону и повышая доверие сообщества к платформе.

Где применяется язык

Groove — язык программирования общего назначения. Он используется во многих сферах разработки.

  1. Веб приложения.
    Grails, фреймворк Groovy, отлично подходит для создания быстрых, высоконагруженных сайтов и веб-систем с мгновенным ответом на пользовательские запросы.
  2. Микросервисные платформы.
    Фреймворк Micronaut позволяет разрабатывать приложения, основанные на микросервисах — изолированных фрагментах программы, взаимодействующих между собой через специальные команды.
  3. Десктопные приложения.
    ПО для компьютеров на Groovy пишется через фреймворк Griffon.
  4. Сценарии тестирования.
    Тесты для сайтов и браузерных приложений можно написать, используя приложение SoapUI. Фреймворк Geb также подойдет для этих целей.
  5. Параллельные вычисления.
    Распределительные системы на Groovy выполняются за счет встроенной системы Graps.
  6. Программы для обработки данных.
    Часто язык используется для написания кода, обрабатывающего большие массивы данных, например, для статистических и научных исследований.

Примеры кода

Для вывода на экран надписи понадобится всего одна команда.

 print("Hello world!") 

Рассмотрим также, как в Groovy устроены методы функций.

 class Example < static void mlp(int x,int y) < int m = x*y; println(m); >static void main(String[] args) < mlp(3,4); >> 

#

Заключение

Groovy — язык программирования, дополняющий Java и расширяющий его возможности. В нем есть динамическая типизация, обновленные типы данных, возможность прямой работы с XML и другие “фишки”. Благодаря фреймворкам и расширениям Груви используется фактически во всех сферах разработки — от веб-среды до проверочных тестов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *