GraphQL часто представляют как революционный путь дизайна веб API по сравнению с REST. Однако, если вы ближе посмотрите на эти технологии, то вы увидите, что между ними очень много различий. GraphQL относительно новое решение, исходники которого были открыты сообществу Фейсбуком в 2015 году. Сегодня REST все еще самая популярная парадигма, используемая для предоставления API и взаимодействия между микросервисами. Сможет ли GraphQL обогнать REST в будущем? Давайте посмотрим, как происходит микросервисное взаимодействие через GraphQL API с ипользованием Spring Boot и библиотеки GQL.
Читать полностью »
Рубрика «groovy» - 2
GraphQL будущее микросервисов?
2018-09-01 в 9:38, admin, рубрики: api, gql, groovy, java, Microservices, spring, Разработка веб-сайтовИспользование возможностей Groovy DSL для конфигурации Java-приложения
2018-05-15 в 9:04, admin, рубрики: groovy, Groovy & Grails, groovy dsl, java, конфигурацияПредыстория
Всем привет! Я хотел бы рассказать историю о страшных конфигах и как их удалось причесать и сделать вменяемыми. Я работаю над довольно большим и относительно старым проектом, который постоянно допиливается и разрастается. Конфигурация задается с помощью маппинга xml-файлов на java-бины. Не самое лучшее решение, но оно имеет свои плюсы — например, при создании сервиса можно передать ему бин с конфигурацией, отвечающий за его раздел. Однако, есть и минусы. Самый существенный из них — нет нормального наследования профилей конфигурации. В какой-то момент я осознал, что для того, чтобы поменять одну настройку, я должен отредактировать около 30 xml-файлов, по одному для каждого из профилей. Так больше продолжаться не могло, и было принято волевое решение все переписать.
Требования
- Наследование и переопределение (или fallback). Должна быть возможность задать некий базовый профиль, унаследовать от него дочерние и переопределить или добавить в них те места, которые необходимо
- Маппинг в java-бины. Переписывать по всему проекту использование конфигурации с бинов на проперти вида
mongodb.directory.host
не хотелось, использовать map-ы из map-ов тоже. - Возможность писать в конфиге комментарии. Не критично, но удобно и приятно.
Хотелось бы, чтобы конфиг выглядел примерно так:
name = "MyTest"
description = "Apache Tomcat"
http {
port = 80
secure = false
}
https {
port = 443
secure = true
}
mappings = [
{
url = "/"
active = true
},
{
url = "/login"
active = false
}
]
Как я этого добился — под катом.Читать полностью »
Вычисление логических выражений в строке внутри Java-Scala-Kotlin кода
2018-04-30 в 13:41, admin, рубрики: expression, groovy, java, jvm, kotlin, stringМне нужно было в рантайме вычислять истинность выражений типа
a>10 && b<c+5 && (a+b)<c*4
находящихся в строке Скалы.
Сам код у меня на Скале, но оценку разных библиотек для этого я делал на Котлине, просто чтобы поиграться с ним. Само выражение я получаю от клиента, но от внутреннего, поэтому мне не надо было заботиться о том, чтобы в выражении мне нe стерли файлы с диска.
Я оценивал разные библиотеки на то 1) могу ли они сделать то, что надо 2) скорость исполнения
Были проверены
- интерполяция строк
- Js Engine
- javaluator
- exp4j
- evalEx
- mxparser
- MathEval
- Groovy
Результаты
Время пробега в мс для 1000 выражений (вернее одно и тоже выражение для 1000 разных набoров 3х переменных):
js | 239 ms |
mxParser | 56713 ms |
evalex | 35 ms |
groovy | 9910 ms |
Остальные способы/библиотеки не сработали.
Под катом подробности:
Логирование в Adaptivist ScriptRunner
2018-03-23 в 12:18, admin, рубрики: atlassian, groovy, jira, Raiffeisen, Raiffeisenbank, script, Блог компании Райффайзенбанк, ПрограммированиеВ этой статье я хотел бы поговорить о логировании в Adaptivist ScriptRunner. Логи являются основным инструментом разработчиков и экспулатирующего персонала для анализа нештатных ситуаций в промышленной среде. Поэтому при разработке приложения мы должны подумать о том, что нам будет необходимо при анализе возникающих инцидентов.
Читать полностью »
[Питер] Встреча JUG.ru с Олегом Ненашевым из CloudBees — Groovy DSL в Jenkins и Pipeline. Реализации и подводные грабли
2017-12-03 в 9:30, admin, рубрики: configuration-as-code, devops, dsl, groovy, Groovy & Grails, java, Jenkins, Блог компании JUG.ru Group
В понедельник, 4 декабря, в офисе компании Oracle состоится встреча с Олегом Ненашевым, разработчиком в компании CloudBees, которая является одним из основных контрибьюторов Jenkins. Тема встречи — Groovy DSL в Jenkins и Pipeline.
Несмотря на появление новых средств CI/CD, Jenkins остается одним из наиболее популярных серверов автоматизации. Он фактически является распределенным веб-сервисом и предоставляет различные DSL, в том числе с доступом к JVM и внутренним API. Давать такой доступ нужно аккуратно, а то в продакшне будет мучительно больно: security, UX, performance, и т.д. О предотвращении этой боли и пойдет разговор.
Олег расскажет:
- как в Jenkins реализованы Groovy DSL и почему их так много;
- как в Jenkins Pipeline реализованы Groovy Sandbox, доступ к API Java, Script Security и персистентность контекста при рестарте;
- какие архитектурные проблемы это вызывает;
- как можно при всем этом расширять и поддерживать DSL для частных задач.
Интеграционные тесты для Java с помощью TestContainers. Меньше безумия, больше порядка, и всё это автоматически
2017-11-27 в 12:45, admin, рубрики: devops, docker, groovy, Groovy & Grails, heisenbug, heisenbug2017moscow, java, jbreak, jpoint, testcontainers, Блог компании JUG.ru Group, Тестирование IT-систем, тестирование веб-приложений, тестирование веб-сервера, Тестирование веб-сервисов, тестирование приложенийНа Хабре совсем нет информации про TestContainers. На момент написания этой статьи, в поисковой выдаче есть анонсы наших же конференций, и всё. Между тем, в проекте на Гитхабе у них уже более 700 коммитов, 54 контрибутора и 5 лет истории. Похоже, все эти пять лет проект тщательно скрывался спецслужбами и НЛО. Настало время выйти из тени на свет.
Чукча читатель, а не писатель. Поэтому, вместо написания своего текста, я попросил разрешения на перевод соответствующей статьи из блога Rebel Labs.
Итак, здесь мы поделимся парой слов о наимоднейшей Java-библиотеке для интеграционного тестирования — TestContainers. Кроме этого, будет немного о том, почему интеграционное тестирование настолько важно для ZeroTurnaround, и их требования к интеграционным тестам. И конечно, будет полнофункциональный пример интеграционного теста для Java-агента. Если кто-то никогда в глаза не видел код Java-агента, то сейчас самое время. Добро пожаловать под кат!
Экспорт данных в любом формате: что умеют IDE на платформе IntelliJ
2017-11-10 в 9:06, admin, рубрики: DataGrip, GoLand, groovy, intellij idea, mysql, phpstorm, postgresql, pycharm, rubymine, sql, sql server, Администрирование баз данных, Блог компании JetBrainsВ DataGrip, как и в других наших IDE с поддержкой баз данных, есть механизм экспорта данных. Пользователь выбирает формат экспорта из предложенных или создает его сам.
Олег Ненашев, Кирилл Толкачёв и Александр Тарасов про Groovy DSL и Pipeline в Jenkins на jug.msk.ru
2017-08-01 в 21:46, admin, рубрики: groovy, Groovy & Grails, java, Jenkins, JUG, jug.msk.ru, pipeline, Блог компании JUG.ru Group27 июля 2017 года прошла совместная встреча сообществ jug.msk.ru и Jenkins MSK. На встрече с докладами о Jenkins выступили Олег Ненашев («Groovy DSL в Jenkins и Pipeline. Как оно работает?») и Кирилл Толкачёв с Александром Тарасовым («DSL много не бывает. Мигрируем со Scripted Pipeline на Declarative (Live)»).
Что нового в IntelliJ IDEA 2017.2
2017-07-18 в 15:41, admin, рубрики: groovy, intellij, intellij idea, java, javascript, kotlin, mocha, spring boot, TypeScript, Блог компании JetBrainsПривет!
Мы рады сообщить о выходе крупного обновления IDE – IntelliJ IDEA 2017.2. Поскольку далеко не все следят за новостями в нашем официальном блоге (а также потому, что многим удобнее будет прочитать об этом на русском), в этом посте я расскажу что ждать от новой версии IDE. Кто спешит попробовать обновление самостоятельно, качайте с сайта JetBrains, либо из Toolbox App. Все остальные, добро пожаловать под кат.
Место встречи изменить нельзя, или ЛК ждет в гости всех Android-разработчиков
2017-05-16 в 20:04, admin, рубрики: android development, groovy, kaspersky lab, kotlin, lint, Блог компании «Лаборатория Касперского», митап, Разработка под android
«Лаборатория Касперского» совместно с сообществом MOSDROID приглашают всех Android-разработчиков на новую встречу, которая пройдет 20 мая в нашем московском офисе. Наш митап будет посвящен востребованным инструментам и самым животрепещущим вопросам, стоящим на повестке дня у ваших коллег по цеху.
Сегодня область мобильной разработки под Android (доля ОС на рынке составляет уже 87%, что означает ее присутствие на девяти из десяти мобильных устройств) актуальна как никогда: некоторые приложения для смартфонов уже полностью заменяют аналоги в виде компьютерных программ. И следовательно, самое время обсудить это. По традиции мы подготовили для вас три доклада: в этот раз поговорим о Groovy, Kotlin и Lint.
Читать полностью »