Какие примеры использования Groovy наиболее интересны для разработчиков Java?
Хотя это было некоторое время, кажется, что только в последнее время Groovy получает его Groove. Для некоторых это в основном просто еще один эзотерический язык JVM, но он более популярен, чем вы думаете, благодаря некоторым популярным инструментам, которые используют его, чтобы помочь вам с вашей Java.
В следующем посте мы рассмотрим, какова связь между Groovy и Java, и попробуем все возможное, чтобы удержать себя в игре Groovy. Мы заранее приносим свои извинения.
Это почти так же, как Java
Что делает Groovy таким, ну, отличным? Это объектно-ориентированный язык JVM. Этот динамический язык имеет открытый исходный код и поддерживается Apache и сообществом Groovy. Это означает, что вы найдете варианты, функции и инструменты, которые включают в себя: веб-платформы, настольные приложения, библиотеку параллелизма / асинхронности / параллелизма, среды тестирования и многое другое.
Groovy использует синтаксис фигурных скобок, который облегчает изучение и использование Java-разработчиками. Тем не менее, он включает в себя список функций, которые отличают его от Java, таких как:
- Статическая и динамическая типизация (когда тип переменной интерпретируется во время выполнения)
- Перегрузка оператора
- Ассоциативные массивы
- Выражения, встроенные в строки
- Оператор безопасной навигации «?.» автоматически проверять наличие нулей — что имеет смысл, поскольку NullPointerException является наиболее распространенным типом исключения в рабочей среде.
- Без точек с запятой (!)
На официальном сайте Groovy указано, что язык нацелен на повышение производительности труда разработчиков благодаря лаконичному, привычному и простому в освоении синтаксису. Или, другими словами, если вы знаете Java, вы можете быстро освоить и использовать Groovy.
Вы можете интегрировать Groovy с любой Java-программой, чтобы получить возможности для написания сценариев, разработки языка для конкретного домена, метапрограммирования во время выполнения и компиляции и функционального программирования. Другие функции включают замыкания, компоновщики, вывод типов и статическую компиляцию.
В Groovy также есть «Сценарий и тестирование клея». Это означает, что Groovy является хорошим выбором для написания «компактных» и поддерживаемых тестов, а также для задач сборки и автоматизации. Но самой большой проблемой здесь является авторизация на предметно-ориентированном языке (DSL), которая позволяет создавать ключевые слова и синтаксис для выражения более абстрактного представления проблемной области.
Проще думать об этом как о решении для непрограммистов получать информацию. Если у вас есть аналитики в компании, которым необходимо извлекать данные, создавать срезы или выполнять какие-либо другие задачи, вы можете создать собственный язык для них. Таким образом, они не должны знать, как программировать, а просто должны знать необходимый синтаксис для желаемых тестов.
Вот несколько примеров DSL, чтобы сделать это еще более понятным:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
// equivalent to: turn(left).then(right) turn left then right // equivalent to: take(2.pills).of(chloroquinine).after(6.hours) take 2 .pills of chloroquinine after 6 .hours // equivalent to: select(all).unique().from(names) select all unique() from names show = { println it } square_root = { Math.sqrt(it) } def please(action) { [the: { what -> [of: { n -> action(what(n)) }] }] } // equivalent to: please(show).the(square_root).of(100) please show the square_root of 100 // ==> 10.0 |
Если вы хотите начать работать с Groovy, мы рекомендуем ознакомиться с официальной документацией .
Цифры не лгут
На тот случай, если вы все еще не знаете о Groovy, вы также можете быстро взглянуть на индекс TIOBE, который измеряет популярность языков программирования. В нем вы найдете, что Groovy является одним из 20 самых популярных языков программирования на июль 2016 года.
Есть также интерес вокруг этого на рынке труда. В одном из наших последних постов мы сократили 351 799 вакансий и обнаружили, что спрос на разработчиков Groovy растет.
Где Groovy вписывается в наш проект Java?
Когда пришло время начинать новый Java-проект, большинство из нас выбирают первые инструменты перехода — Maven и JUnit. Но через некоторое время, по мере роста проекта, требования меняются, и мы обнаруживаем, что хотим больше настроек, чем раньше. В этот момент Maven часто заменяется Gradle. Или, по крайней мере, это путешествие, которое мы прошли, развивая Такипи .
Gradle — это инструмент, созданный в Groovy, который помогает нам с Java. Звучит сложно, но на самом деле довольно интересно использовать один язык для работы с другим. Кроме того, после некоторого использования и изучения Groovy у нас появился новый язык, и это всегда весело для нас. Теперь единственный остающийся вопрос — для чего еще мы можем использовать это? Простой ответ — инструменты. Но какие?
Начиная с Gradle
Gradle — это система автоматизации сборки с открытым исходным кодом, которая использует специфичный для домена язык, написанный на Groovy, вместо XML-конфигураций Maven. Это может помочь вам автоматизировать различные задачи, такие как создание, тестирование, публикация, развертывание и многое другое. Вы также можете создавать другие типы проектов для создания статических веб-сайтов, документации или чего-либо еще.
Он был разработан для многопроектных сборок, которые потенциально могут расти и становиться довольно большими, но в то же время предлагают поддержку для инкрементных сборок, в которые вы добавляете небольшие кусочки программного обеспечения, пока не достигнете своей конечной цели. Gradle может определить, какие части дерева сборки являются современными, поэтому любая задача, зависящая от этих частей, не нуждается в повторном выполнении.
Таким образом, Gradle устраняет зависание кода и позволяет команде QA проверять определенную часть, пока вы работаете с другой. Вы даже можете использовать его для координации отдельных сборок разработчика со сборкой Continuous Integration (CI) до уровня IDE.
Если вы поймете, что ваши товарищи по команде возятся с ружьями или просто расслабляются , Gradle также помогает в этой области. С его помощью вы можете отправлять быстро и не тратить слишком много времени на «сборку» в офисе, так что вы действительно можете сделать некоторую работу.
Если вы поклонник Maven или все еще не уверены, как переход к Gradle может помочь вашему проекту, последний создал полное сравнение функций между ними по следующей ссылке .
Не только DSL: веб-платформа Grails
Веб-фреймворк Grails хочет помочь вам увеличить вашу производительность с помощью парадигмы «Конвенция за конфигурацию». Как? Предоставляя вам автономную среду разработки, скрывая большую часть деталей конфигурации, что позволяет вам сосредоточиться на том, что имеет значение. Или другими словами; оно направлено на то, чтобы сделать разработку как можно более простой.
Он позволяет повторно использовать существующие технологии Java, такие как Hibernate и Spring, в едином интерфейсе, предлагает настраиваемую и расширяемую поддержку Ajax и в основном обеспечивает полный режим разработки, включая веб-сервер и автоматическую перезагрузку ресурсов.
На официальном сайте вы сможете найти основные сайты, которые выбрали Grails, в том числе Netflix Asgard, веб-интерфейс Netflix с открытым исходным кодом для развертывания приложений и управления облаком в Amazon Web Services, Vodafone и других .
Переезд в Спок
Если Gradle уже является частью вашей компании, самое время проверить, какие другие инструменты предлагает Groovy. В последнее время Spock превращается в головокружительную тематику, которую многие разработчики Java предпочитают использовать для проверки и тестирования.
Spock, созданный в 2008 году Питером Нидервизером и Люком Дейли, предназначен как для Java, так и для Groovy. Этот инструмент модульного тестирования совместим с большинством сред IDE, инструментов сборки и серверов непрерывной интеграции, способных обрабатывать полный жизненный цикл программного приложения. Он расширяет модуль запуска JUnit, который используется для запуска тестовых классов, поэтому он может соответствовать текущим инструментам, которые вы используете в среде JUnit. Если вы переходите с одного фреймворка на другой, это довольно плавный ход.
DSL играет важную роль в этой среде, позволяя вам писать тесты в простом синтаксисе. Это означает, что тестирование может выполнять любой сотрудник компании, а не только разработчик. Вы можете проверить Спока через его веб-консоль .
Проверьте это также
Хотя мы решили сосредоточиться именно на этих 3 проектах, связанных с Groovy, есть много других вариантов, которые стоит проверить. Благодаря сообществу вы можете найти длинный список связанных с Groovy проектов, таких как:
- GPars — Интуитивно понятные и безопасные способы одновременного выполнения задач Java или Groovy
- Ratpack — инструментарий для создания высокопроизводительных веб-приложений
- Griffon — Прикладная среда для разработки настольных приложений в JVM
- Sdkman — инструмент для управления параллельными версиями нескольких комплектов разработки программного обеспечения в большинстве систем на основе Unix
Это только вершина айсберга, и есть еще множество Groovy-проектов. Лучше всего начать с изучения популярных проектов Groovy на Github .
Последние мысли
У разработчиков Java есть много вариантов, когда дело доходит до доступных фреймворков, инструментов и утилит, не все написаны на Java. На самом деле, у разработчиков Java есть довольно хороший шанс встретить Groovy во время того или иного проекта из-за впечатляющих инструментов, написанных в нем.
Так как язык очень похож на Java, отличным преимуществом здесь является тот факт, что его легко изучить и использовать в кратчайшие сроки. Учитывая все это, окончательный выбор, использовать ли Gradle, Spock, Grails или любой другой Groovy или не Groovy фреймворк, остается за вами, в соответствии с потребностями и требованиями вашего текущего проекта.
Если вы сталкивались с какими-либо другими Groovy (или просто Groovy) фреймворками, мы хотели бы услышать о них в комментариях ниже.
Ссылка: | Groovy для разработчиков Java ?! Познакомьтесь с Gradle, Grails и Spock от нашего партнера JCG Хенна Идана в блоге Takipi . |