Пишем свой плагин для IDEA для поддержки нового языка (часть 1)

В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.

Объектно-ориентированный язык программирования

В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.
Cordova — это кроссплатформенная среда разработки с открытым исходным кодом, которая позволяет использовать HTML и JavaScript для разработки приложений на нескольких платформах, таких как Android и iOS. Как Cordova позволяет приложениям работать на разных платформах и реализовывать функции? Все дело в многочисленных плагинах в Cordova. Они позволяют сосредоточиться исключительно на функциях приложения, не взаимодействуя с API на уровне ОС.

Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не включая мозг. Однако, когда начинаешь углубляться в эту тему и пытаться разработать инструмент, который не только помогает писать код для определения ID, но и подсказывает потенциальные проблемы, то всплывает много интересного. И наши соображения, которыми мы руководствовались при разработке JPA Buddy, вылились в этот цикл статей.

Мне нравится создавать и решать кодовые ката. Код Ката — это головоломки по программированию, которые помогут вам отточить свои навыки программирования.
Я написал статью под названием «Learn to Kata and Kata to Learn» для книги «97 вещей, которые должен знать каждый Java-программист», и ссылка на статью доступна бесплатно здесь, в публикации на Medium.
Wordle — это очень популярная онлайн игра головоломка, в которой у вас есть шесть шансов угадать слово из пяти букв.
Каждое предположение приводит к изучению того, какие символы соответствуют символам в слове. Вам даются подсказки с помощью цветов, которые сообщают, правильно ли вы вставили букву в правильное положение, если буква находится в слове, но в неправильном положении, или если буква не соответствует какой-либо букве в слове.
Хосе Помар на этой неделе мне прислали вызов Wordle Kata JLDD в виде теста, для которого мне нужно было написать код, проходящий этот тест.
Мне нравится этот тип ката, который следует классическому стилю TDD с использованием подхода «сначала тест». Выше приведен тестовый код для kata с использованием простых утверждений JUnit 5.

В книге "97 вещей, которые должен знать каждый Java-программист" есть глава о некоторых инструментах командной строки в JDK (я дал 2 из 97 советов).
Поскольку я сам часто использую такие помощники, я хотел кратко представить их в сегодняшней статье.
Я предпочитаю командную строку для своей повседневной работы, используя комбинацию команд git, sed, grep, и т. д., bash что упрощает выполнение повторяющихся задач.

В этой статье я покажу вам, как писать подзапросы EXISTS с помощью JPA и Hibernate.
Подзапросы EXISTS очень полезны, так как позволяют реализовать SemiJoins. К сожалению, многие разработчики приложений не знают о SemiJoins и ограничиваются тем, что эмулируют его с помощью EquiJoins (например, INNER JOIN) в ущерб производительности запросов.

Привет, Хабр! Разрабатывая экосистему для «Метр квадратный», мы со старта проекта планировали большую линейку продуктов. Поэтому подбирали стек, который поможет реализовать максимум идей. В итоге мы пришли к протоколу gRPC.
В этом материале я расскажу:
— о преимуществах gRPC;
— об особенностях работы с протоколом, и о том, как с ними жить;
— о тех проблемах, с которыми мы столкнулись;
— и о том, как их решить.
В статье рассказывается, как разработать навык для платформы Яндекс.Диалоги, используя Java и фреймворк Spring Boot, а затем развернуть его в Яндекс.Облаке.
Для примера описывается приложение, которое помогает запоминать английские слова. Алиса проверяет, как пользователь пытается перевести случайно подобранные русские или английские слова.
Жизненный цикл разработки корпоративного приложения в нашей компании привел меня к, по сути, банальной задаче - “прикручиванию” пользовательской авторизации к фронту приложения. Пользователями приложения должны быть сотрудники компании, а идентификационным провайдером должен стать корпоративный Active Directory (далее AD).
Было принято решение не работать с AD напрямую при авторизации сотрудников в корпоративных приложениях, а использовать для этого довольно удобный брокер авторизации – KeyCloak.

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу замеры производительности, достаточно тривиальные, но отображающие суть. И если вы не знакомы с JNI, но тема интересна, то советую ознакомиться с первой и второй частью этой серии статей.

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу примеры решений на JNI, которые совсем немного сложнее, чем hello world. И если вы не знакомы с JNI, то советую начать с первой части.

Важно отслеживать показатели и работоспособность приложения: это помогает нам повышать производительность, лучше им управлять и замечать неоптимизированное поведение. Мониторинг каждого сервисного модуля важен для поддержания системы, состоящей из множества микросервисов.
В этой статье я покажу, как можно мониторить веб-приложение Spring Boot с помощью Micrometer, который отображает метрики нашего приложения, Prometheus, который хранит их, и Grafana для визуализации этих данных в виде графиков.

Всем привет! Меня зовут Роман Аймалетдинов и я разрабатываю клиентское приложение Ситимобил. Решил написать небольшую серию из трех статей по JNI, так как технология используется редко, но иногда она бывает очень полезной. Несмотря на то, что я разрабатываю классические приложения под Android, иногда хочется посмотреть технологии рядом со своей специализацией.

В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.

Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Сейчас у нас есть возможность попробовать новый функционал и понять, насколько он полезен. А пробовать есть что, несмотря на то, что это не LTS релиз!
В этой статье мы рассмотрим новые JEP и объясним, что они делают, и для чего они нужны.

Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.
Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.

Как же быстро летит время... Прошло почти 2 месяца с момента публикации моей первой статьи о работе с TINKOFF INVEST API – Разработка торгового робота на JAVA. Часть 1, в которой мы начали свое знакомство с инструментарием автоматизации торговли, предоставляемым брокером ТИНЬКОФФ.
В этой части разработаем механизмы для загрузки и хранения биржевых исторических данных, а также рассмотрим некоторые ограничения, с которыми неминуемо столкнется каждый пользователь API и методами их преодоления.
Если нет желания вникать в код и читать статью, то можете сразу мотать к разделу "Демонстрация работы приложения".

С 2016 года, после того, как я начал использовать Kotlin в Android-разработке, то ни разу не скучал по Java. В целом, Kotlin дал мне большее удовлетворение от разработки, чем Java для Android.
Тем не менее, время от времени я натыкаюсь на такие вещи, которых мне очень не хватает; того, как они были реализованы в Java. Ниже представлены 5 из них.

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

Меня зовут Аксёнов Вячеслав, я старший бэкенд Java/Kotlin разработчик в крупном энтерпрайзе. Однажды я попал на проект, полный микросервисов, в котором за конфигурацию отвечала такая штука как Spring Cloud. Чтобы разобраться как именно это работает я исследовал и прикрутил этот диковенный элемент к одному своему пет проекту. И в этой статье я пошагово покажу как я это сделал