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

Groovy & Grails *

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

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

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

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

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

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

Новости

Из Groovy ушёл Cédric Champeau‏

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


В проекте Apache Groovy перестаёт участвовать один из ключевых участников сообщества, само имя которого у многих ассоциировалось с этим языком. Уходит Седрик Шампо, известный в первую очередь как автор статического компилятора Groovy.

Если рассмотреть причины ухода в том виде, как их формулирует сам Седрик, получается история о том, как Groovy-сообщество хотело лучшего, а в итоге ненамеренно сделало себе хуже. В самом сообществе, впрочем, есть другие трактовки произошедшего. В любом случае история может быть интересна и разработчикам из JVM-мира, и не только.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии13

«Выходить на сцену — мой способ не отставать от технологий»

: интервью с Барухом Садогурским из JFrog

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


В новом выпуске «Без слайдов» гостем стал Барух Садогурский aka jbaruch — Developer Advocate компании JFrog, постоянный резидент подкаста «Разбор Полётов» и частый спикер Java-конференций. За время разговора он среди прочего успел порассуждать:

  • о продвижении продукта без навязчивого расхваливания
  • о том, что «стюардессу Java EE пора закапывать»
  • о сложностях монетизации open source
  • о точном определении слова «стартап»
  • о своём дрифте от технологий и борьбе с ним
  • о том, чем Artifactory от JFrog лучше конкурентов — и даже о том, чем хуже

Как всегда, под катом — полная расшифровка интервью.


Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии28

Pivotal прекращает разработку Groovy & Grails с 31 марта

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


Bad news everyone!

Компания Pivotal, спонсировавшая разработку Groovy & Grails последние годы, объявила о прекращении спонсирования проектов начиная с 31 марта.

Релизы Groovy 2.4 и Grails 3.0 будут последними релизами под крылом Pivotal.
Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии37

Истории

Чем старше Spring, тем больше контекстов

Время на прочтение7 мин
Количество просмотров53K
Уже много лет работая со спрингом, я заметил забавную закономерность: в каждой новой версии добавляется новый способ конфигурирования контекста. Давайте вспомним, как это было:
  • В первом спринге конфигурацию можно было писать исключительно на xml-e. (ClassPathXmlApplicationContext(“context.xml”))
  • Во втором (точнее с 2.5) появилось возможность создавать контекст через аннотации. (AnnotationConfigApplicationContext(“package.name”))
  • Третий спринг добавил конфигурацию на джаве. (AnnotationConfigApplicationContext(JavaConfig.class))
  • Четвёртый тоже сохранил традицию и уже с декабря 2013 года можно конфигурировать при помощи груви скриптов (GenericGroovyApplicationContext(“context.groovy”))

Консультируя и проводя тренинги в различных компаниях, я видел самое разное отношение к этим способам конфигурирования. Крупные компании, зачастую живущие по принципу «работает – не трогай», до сих пор лелеют старые xml -конфигурации, продолжая их множить и кормить новыми бинами. «Зато у нас все централизовано!» — кричат их архитекторы, добавляя 100500-тысячную строчку в xml-Бога.
Компании поменьше, пытающееся угнаться за новшеством технологий, беспощадно сжигают старые XML-ы, переписывая всё что могут, на аннотации, а что не могут на Java-конфиг. И уже потирают руки, пытаясь придумать, а куда бы им теперь приткнуть конфигурацию на грувях.



Видел я и совсем забавные ситуации, когда не очень разбирающийся во всей этой каше конфигураций джуниор, дублировал декларацию бинов, прописывая их и в xml-e и через аннотации (ну так чтобы наверняка).

А где же находится правда? Неужели как всегда посередине?
Давайте попробуем разобраться…

Для начала давайте сравним стратегии декларации бинов.

Начнём с классического XML-a:

Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии53

Подробно о задачах Gradle

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


Перевод второй главы свободно распространяемой книги Building and Testing with Gradle

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

Рассмотрим какими способами можно определить задачу, два ключевых подхода к определению задач и программный интерфейс, который мы можем использовать для гибкой настройки.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии4

Конфигурирование через скрипты вместо XML и JSON на примере realtime multiplayer игры

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


Shortcuts: github, tiles.js tiles.groovy tiles.ruby

Не секрет, что объектов в играх на порядок больше чем их возможных поведений. При прототипировании описания объектов можно составлять прямо в коде на Java, С++ или C#, но там всё довольно быстро запутается. Потом объекты выносят в базу данных, либо в XML или JSON конфиг. Это сильно помогает, ведь после редактирования конфигурации пересобирать код не требуется, и этим могут заниматься не только программисты, но и спецы по предмету (для игр это гейм-дизайнеры и контентщики). Когда разрастается команда либо количество объектов переходит какую-то черту, программисты пишут удобный редактор, который позволяет визуально править этот JSON-конфиг. В результате на выходе получается какой-то трудно поддерживаемый монстр.

Если вы не собираетесь нанимать множество людей которые вообще не умеют кодить, то можно попробовать пойти другим путём: описывать метаданные с помощью Domain Specific Language.
Секретный секрет
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Про Правильные Инструменты

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

Вместо посвящения



Всегда… Нет. Никогда не выходи в пургу пиши такой код ни для чего, кроме подобных забав.
image
Гийом — lead разработки языка Groovy

Reflection во зло


Один мой друг — большой любитель головоломок. Всяких, и программистких в том числе. Вот его последняя забава:
Напишите нужный код в static initializer, чтобы assert перестал падать:
public class Test {
 static {
//Write some code here
 }

public static void main(String[] args) {
 Integer a = 20;
 Integer b = 20;
 assert (a + b == 60);
 }
}

Если вы решите попробовать, не забудьте включить assertions (флагом -ea).
Дальше будет решение и кое какие рассуждения на тему, так что если вы уже справились, или вам влом -смело под кат.
Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии27

Grails, jQuery, AJAX: делаем anchor-навигацию. Часть 1

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

AJAX и все, все, все


В предыдущей серии мы делали простенькое Grails-приложение с использованием jQuery, а также решили для себя, что использовать jQuery в Grails можно и даже нужно. Обсудим более серьезные вещи, которые можно сделать с такой связкой.

Нетрудно заметить, что все больше сайтов используют AJAX и частичные обновления страниц, причем в невероятном количестве. В частности, «начиненные» AJAX ссылки могут использоваться для внутренней навигации по странице, переключения каких-то вкладок. Это хорошо тем, что
А) меньше данных нужно перегонять от сервера — только нужный кусок страницы и
Б) веб-страницы часто загружают просто гигантские CSS и JavaScript-файлы, которые при AJAX-обновлении можно повторно не загружать.

Итак, очень распространено построение приложений по сценарию: одна большая «стартовая» страница, загружающая весь JavaScript-код и CSS и более мелкие «внутренние» функциональные блоки, загружаемые через AJAX. С этим есть ряд проблем:
  1. В результате AJAX-действий внутреннее состояние страницы не отражено в адресной строке браузера.
  2. Как следствие, внутренние страницы не могут быть запомнены в закладки, нельзя «отправить ссылку другу».
  3. Не работает Back/Forward навигация в браузере, т.к. AJAX-ссылки не попадают в историю браузера.
Однако крупные сайты нашли некое «хакерское» решение, которое мы сейчас рассмотрим и напишем небольшой свой собственный аналог на Grails и jQuery.
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии51