Заметки о Gradle: Project, Task и Task Graph
При первом знакомстве с Gradle файл build.gradle часто выглядит непривычно. Он содержит Groovy- или Kotlin-инструкции вида plugins {}, dependencies {}, repositories {}, tasks.named(...), которые не...
При первом знакомстве с Gradle файл build.gradle часто выглядит непривычно. Он содержит Groovy- или Kotlin-инструкции вида plugins {}, dependencies {}, repositories {}, tasks.named(...), которые не...
При тестировании сервиса, который выполняет HTTP-запросы во внешние системы, возникает базовая проблема: как проверить поведение без зависимости от реального внешнего API. Прямое обращение к внешн...
Реализация equals() и hashCode() для JPA-сущностей отличается от обычных объектов: для сущностей равенство, как правило, определяется по одному полю — идентификатору (id). На первый взгляд это выг...
Использование JSONB в реляционной базе выглядит спорно, если рассматривать его как замену нормализованной модели (как то: хранение связанных сущностей внутри одного JSON вместо отдельных таблиц и с...
Статический анализ кода является стандартной практикой в крупных Java-проектах. Однако интеграция таких инструментов в существующие enterprise-системы часто оказывается сложнее, чем показано в доку...
Задача идемпотентного создания индексов остается актуальной и сегодня. Миграции регулярно выполняются повторно — при rollback, re‑deploy, blue‑green‑развертываниях и аварийных перезапусках. Окруже...
В интеграционных системах часто возникает типовая задача: частично заглянуть в XML-документ, чтобы принять решение о дальнейшей обработке. Как правило, нужно проверить одно-два значения и, в отдель...
В ряде проектов Nexus может использоваться не как Maven-репозиторий, а как обычное хранилище файлов. Архивы публикуются из backend-сервисов и затем используются по прямым URL — без dependency resol...
Задача автоматической отправки сообщений в Microsoft Teams на первый взгляд не выглядит сложной. Речь идет не о ботах или системных уведомлениях, а об обычных сообщениях в чаты — тех же самых, кото...
Обзор библиотеки Guava: как набор разнородных подсистем с различной эволюционной судьбой и областью применимости в современных Java-проектах. При анализе Java-проектов с длительной историей разви...