Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не включая мозг. Однако, когда начинаешь углубляться в эту тему и пытаться разработать инструмент, который не только помогает писать код для определения ID, но и подсказывает потенциальные проблемы, то всплывает много интересного. И наши соображения, которыми мы руководствовались при разработке JPA Buddy, вылились в этот цикл статей.
Java *
Объектно-ориентированный язык программирования
Новости
Написание плагинов на Spigot/Bukkit
Первый мой туториал, просто хочу донести инфу до людей которые хотят этим заниматься, но не знают где начать. Не судите строго.
Стоит отметить что навыки работы с серверами, так же как и опыт в программировании это очень хорошо и поможет вам в дальнейшем. Если нет, будет чуть сложнее это все понимать.
Kata вызов Wordle JLDD
Мне нравится создавать и решать кодовые ката. Код Ката — это головоломки по программированию, которые помогут вам отточить свои навыки программирования.
Я написал статью под названием «Learn to Kata and Kata to Learn» для книги «97 вещей, которые должен знать каждый Java-программист», и ссылка на статью доступна бесплатно здесь, в публикации на Medium.
Wordle — это очень популярная онлайн игра головоломка, в которой у вас есть шесть шансов угадать слово из пяти букв.
Каждое предположение приводит к изучению того, какие символы соответствуют символам в слове. Вам даются подсказки с помощью цветов, которые сообщают, правильно ли вы вставили букву в правильное положение, если буква находится в слове, но в неправильном положении, или если буква не соответствует какой-либо букве в слове.
Хосе Помар на этой неделе мне прислали вызов Wordle Kata JLDD в виде теста, для которого мне нужно было написать код, проходящий этот тест.
Мне нравится этот тип ката, который следует классическому стилю TDD с использованием подхода «сначала тест». Выше приведен тестовый код для kata с использованием простых утверждений JUnit 5.
Ручная кофемолка: инструменты командной строки для Java
В книге "97 вещей, которые должен знать каждый Java-программист" есть глава о некоторых инструментах командной строки в JDK (я дал 2 из 97 советов).
Поскольку я сам часто использую такие помощники, я хотел кратко представить их в сегодняшней статье.
Я предпочитаю командную строку для своей повседневной работы, используя комбинацию команд git
, sed
, grep
, и т. д., bash
что упрощает выполнение повторяющихся задач.
Как писать подзапросы EXISTS с помощью JPA и Hibernate
В этой статье я покажу вам, как писать подзапросы EXISTS с помощью JPA и Hibernate.
Подзапросы EXISTS очень полезны, так как позволяют реализовать SemiJoins. К сожалению, многие разработчики приложений не знают о SemiJoins и ограничиваются тем, что эмулируют его с помощью EquiJoins (например, INNER JOIN) в ущерб производительности запросов.
gRPC на практике: особенности, преимущества и недостатки
Привет, Хабр! Разрабатывая экосистему для «Метр квадратный», мы со старта проекта планировали большую линейку продуктов. Поэтому подбирали стек, который поможет реализовать максимум идей. В итоге мы пришли к протоколу gRPC.
В этом материале я расскажу:
— о преимуществах gRPC;
— об особенностях работы с протоколом, и о том, как с ними жить;
— о тех проблемах, с которыми мы столкнулись;
— и о том, как их решить.
Как создать голосовой навык для Яндекс.Алисы, используя Spring Boot и Яндекс.Облако
В статье рассказывается, как разработать навык для платформы Яндекс.Диалоги, используя Java и фреймворк Spring Boot, а затем развернуть его в Яндекс.Облаке.
Для примера описывается приложение, которое помогает запоминать английские слова. Алиса проверяет, как пользователь пытается перевести случайно подобранные русские или английские слова.
Прикручиваем авторизацию на основе KeyCloak к веб-приложению
Жизненный цикл разработки корпоративного приложения в нашей компании привел меня к, по сути, банальной задаче - “прикручиванию” пользовательской авторизации к фронту приложения. Пользователями приложения должны быть сотрудники компании, а идентификационным провайдером должен стать корпоративный Active Directory (далее AD).
Было принято решение не работать с AD напрямую при авторизации сотрудников в корпоративных приложениях, а использовать для этого довольно удобный брокер авторизации – KeyCloak.
JNI, часть 3: производительность Java/JNI/NDK
Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу замеры производительности, достаточно тривиальные, но отображающие суть. И если вы не знакомы с JNI, но тема интересна, то советую ознакомиться с первой и второй частью этой серии статей.
JNI Часть 2: Примеры
Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу примеры решений на JNI, которые совсем немного сложнее, чем hello world. И если вы не знакомы с JNI, то советую начать с первой части.
Мониторинг приложения Spring Boot с помощью Micrometer, Prometheus и Grafana, используя пользовательские метрики
Важно отслеживать показатели и работоспособность приложения: это помогает нам повышать производительность, лучше им управлять и замечать неоптимизированное поведение. Мониторинг каждого сервисного модуля важен для поддержания системы, состоящей из множества микросервисов.
В этой статье я покажу, как можно мониторить веб-приложение Spring Boot с помощью Micrometer, который отображает метрики нашего приложения, Prometheus, который хранит их, и Grafana для визуализации этих данных в виде графиков.
JNI Часть 1: Введение
Всем привет! Меня зовут Роман Аймалетдинов и я разрабатываю клиентское приложение Ситимобил. Решил написать небольшую серию из трех статей по JNI, так как технология используется редко, но иногда она бывает очень полезной. Несмотря на то, что я разрабатываю классические приложения под Android, иногда хочется посмотреть технологии рядом со своей специализацией.
Уж+ёж: реактивные компоненты в сервлетном окружении (3/3)
В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.
Java 18. Что нового добавили, и почему вам это пригодится
Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Сейчас у нас есть возможность попробовать новый функционал и понять, насколько он полезен. А пробовать есть что, несмотря на то, что это не LTS релиз!
В этой статье мы рассмотрим новые JEP и объясним, что они делают, и для чего они нужны.
Публикуем проект с помощью Gradle и Sonatype в Maven Central без рук
Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.
Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.
Maven vs Gradle различия использования в Java-проектах
В данной статье разберемся в практических различиях инструментов для сборки Maven и Gradle. Ведь современным разработчикам катастрофически не хватает времени на погружение во все технологии. Иногда нет времени, что бы прочитать несколько сотен страниц документации по каждому инструменту. Например, на первой работе меня постоянно преследовал стресс из-за того, что я не знаю почти все, что касается настройки и запуска проекта. Так получилось, что с проекта уходил последний java-разработчик. Я должен был принять проект и вести его вместе с другим фронтенд-разработчиком. Я потратил кучу времени на локальный запуск проекта. Но когда все получилось, я закрыл много задач по проекту и получил бесценный опыт. В этой статье я попытаюсь резюмировать свой опыт, который поможет разобраться в сборке многомодульных проектов.
TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 2
Как же быстро летит время... Прошло почти 2 месяца с момента публикации моей первой статьи о работе с TINKOFF INVEST API – Разработка торгового робота на JAVA. Часть 1, в которой мы начали свое знакомство с инструментарием автоматизации торговли, предоставляемым брокером ТИНЬКОФФ.
В этой части разработаем механизмы для загрузки и хранения биржевых исторических данных, а также рассмотрим некоторые ограничения, с которыми неминуемо столкнется каждый пользователь API и методами их преодоления.
Если нет желания вникать в код и читать статью, то можете сразу мотать к разделу "Демонстрация работы приложения".
5 лаконичных синтаксисов Java, которых мне не хватает в Kotlin
С 2016 года, после того, как я начал использовать Kotlin в Android-разработке, то ни разу не скучал по Java. В целом, Kotlin дал мне большее удовлетворение от разработки, чем Java для Android.
Тем не менее, время от времени я натыкаюсь на такие вещи, которых мне очень не хватает; того, как они были реализованы в Java. Ниже представлены 5 из них.
Как я отказался от миллионных RSU или опыт собеседования в Ozon
Данный текст появился как результат моего желания дать Ozon развернутый честный фидбэк о процессе собеседования и примерное описание чего же ждать на разных этапах интервью своим коллегам-соискателям. Приступим!
Как я запускал Spring Cloud
Меня зовут Аксёнов Вячеслав, я старший бэкенд Java/Kotlin разработчик в крупном энтерпрайзе. Однажды я попал на проект, полный микросервисов, в котором за конфигурацию отвечала такая штука как Spring Cloud. Чтобы разобраться как именно это работает я исследовал и прикрутил этот диковенный элемент к одному своему пет проекту. И в этой статье я пошагово покажу как я это сделал
Вклад авторов
-
olegchir 3745.0 -
tagir_valeev 2369.0 -
phillennium 1326.4 -
23derevo 1271.0 -
ARG89 1078.2 -
dbelob 885.0 -
doom369 826.0 -
gvsmirnov 778.6 -
alizar 756.0 -
igor_suhorukov 697.0