RU

ИИ-агент собрал сам себя: эксперимент с LangChain4j и уроки для Java-разработчиков

LLM по документации LangChain4j собрала клона себя — мультиагентного кодера. Он починил баги, прошёл 11 тестов и показал, почему workflow быстрее supe…

JavaИскусственный интеллектФреймворки и библиотекиOpenAIСтатьи
Tproger
RU

Один фреймворк для Android и iOS: звучит круто, работает?  Нет

Почему единый кроссплатформенный фреймворк для автотестов Android и iOS не работает на практике и когда стоит разделить его на два отдельных проекта. …

JavaТестированиеAndroidGitРаспознаваниеiOSРаботаSwiftHRGitLabKotlinФинтехQAПриложениеdevСерверБиблиотекиТестирование приложений и сайтов плюсИнфраструктураСтатьи
Tproger
RU

Testcontainers в CI: почему тесты зелёные локально и красные на пайплайне

Локально Testcontainers запускается за секунды, тесты стабильно зелёные, а в CI тот же набор начинает падать в трёх запусках …

Testcontainersинтеграционное тестированиеDockerJavaнестабильные тестыконтейнерыGitLab CIпараллельные тестыуправление ресурсами
Habr
RU

Java‑код скомпилировался — это ещё не значит, что он работает

Есть целый класс Java‑багов, которые компилятор пропускает, а тесты на счастливом пути не ловят: код синтаксически корректен, но д…

Javastatic-analysiscode-reviewtry-with-resourcesequals-hashCodeSonarQubeNullPointerExceptionобучение
Habr
RU

REST Assured: почему зелёные тесты пропускают баги в API

В статье разбираем практический маршрут на REST Assured 6.0.0 и JSON Schema: как закрыть структуру ответа одной проверкой, как сделать схему по-настоя…

JavaавтотестыREST-AssuredJSON-Schemaтестирование-APIконтрактное-тестированиеJSON-Schema-Validator
Habr
RU

Java для автоматизаторов: Алгоритмы, скорость и подводные камни

Когда автотестов становится много, каждый лишний цикл превращается в минуты ожидания на CI. Разбираем на реальных примерах, как оценка сложности алгор…

JavaавтоматизацияалгоритмыBig OSeleniumWebDriverоптимизацияпроизводительностьтестирование
Habr
RU

[Перевод] Java против Go в 2026: бенчмарк через шесть лет показал другую картину

Java на бенчмарках обогнала Go при росте нагрузки: повтор эксперимента 2020 года в котором Mark Nelson и Peter Nagy сравнивали микросервисы на Go и Ja…

JavaGoHelidonвиртуальные потокиLeyden AOTбенчмарк микросервисовпроизводительность JVMvirtual threadsOracle JDKсравнение языков программирования
Habr
RU

Как приручить legacy-код: безопасная модернизация без заморозки фич

Как модернизировать legacy-код без остановки продукта: Strangler Fig Pattern, feature flags, shadow testing и безопасная миграция данных. Практика и а…

ИнтернетAPIJavaGitОпросPythonRubyMySQLПрактикаSQLРефакторингРаботаTorGitHubБотыHRMITФинтехICORedisQAБэкендTwitterИграПриложениеСерверKubernetesБиблиотекианалитикOpenTelemetryPostgreSQLDeFiGrafanaБизнесLegacyТехникаСтатьи
Tproger
RU

Топ плагинов IntelliJ IDEA для автоматизатора

Плагины IntelliJ IDEA, которые реально экономят время автоматизатора: быстрая генерация тестов, парсинг JSON в DTO, навигация по чужому коду, цветные …

IntelliJ IDEAплагиныJavaавтоматизация тестированиятестировщикавтотестыLombokJUnitCucumberSelenium
Habr
RU

Ставка на API-слой в автотестах: как разгрузить UI и ускорить обратную связь

В этой статье я хочу поделиться личным опытом внедрения API-first подхода в автотестировании Java-приложений. Речь пойдет не о теории тестовой пирамид…

API-firstавтотестытестовая пирамидаAPI testingUI testingJavaRest AssuredJUnit 5QA Automationci-cd
Habr
RU

Black-box тесты на Java: функциональные тесты за секунды и в параллель и почему я остался на своих

Я наткнулся на подход к функциональным тестам, который меня по-настоящему удивил. Тесты в нём вообще не знают, что внутри Spring: стучатся в реально п…

функциональные тестыинтеграционные тестыblack-box тестыSpring BootTestcontainersJaCoCoflaky-тестыпокрытие кодаJavaтестирование
Habr
RU

Page Object Pattern в Selenium на Java: гайд по первому автотестовому проекту

UI‑тесты редко ломаются красиво: один редизайн формы — и локаторы приходится чинить по всему проекту. В статье разберём, как собра…

Page ObjectSeleniumJavaUI-тестыавтотестытестированиелокаторыJUnitSelenium WebDriverархитектура автотестов
Habr
RU

Пять ошибок в работе с ожиданиями в UI‑автотестах, из‑за которых тесты падают через раз

Ваши UI‑автотесты снова «иногда падают», а команда уже привычно лечит это ретраями? Проблема может быть не в CI и не во …

UI-автотестыflaky-тестыSeleniumJavaWebDriverWaitExpectedConditionsтестирование интерфейсовавтоматизация тестированияожидания в тестахстабильность автотестов
Habr
RU

JDK 27 Compact Object Headers: как сбросить до 30% кучи без кроссфита и жестких диет

Каждый Java-объект в HotSpot начинается со служебного заголовка размером 12 байт. В JDK 27 по умолчанию он сжимается до 8 — это JEP 534, финальный шаг…

JavaJVMHotSpotOpenJDKJDK 27JEP 534Compact Object HeadersProject LilliputGCОптимизация памяти
Habr
RU

62 бесплатных урока июня: Java, Docker, LLM, SRE, DWH и другие темы для роста в IT

Карьерный рост в IT редко упирается только в «выучить еще один инструмент». Чаще проблема в другом: понять, какие технологии уже стали рабочей практик…

DockerKubernetesLLMJavakafkadevopsмикросервисыбесплатные урокипрофессиональное развитиеSRE
Habr
RU

Java 21 в стиле «клятый энтерпрайз» на одноплатном компьютере возрастом 13 лет

Можно ли успешно эксплуатировать Java-приложение на Raspberry Pi Model B? А если Java — 21‑я, а Spring Boot, на котором основано приложение — версии 4…

JavaRaspberryDIY с элементами советской эстетикиЭксперимент
Habr
RU

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реали…

APIJavaScriptJavaAndroidStack OverflowGitБезопасностьОпросIDESQLiOSРаботаTorGitHubБазы данныхHRReactDockerMITАлисаRedisQAМессенджер5gПриложениеВзломdevСервер1CPostgreSQLGrafanaСтатьи
Tproger
RU

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

Привет, Хабр. Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно нах…

E2EEмессенджерSpring BootX3DHкриптографияWebSocketJavaшифрованиеSignal ProtocolWebCrypto
Habr
RU

Почему Python стал главным помощником Java‑команд

Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD…

JavaPythonbackend-разработкаинтеграционное тестированиемикросервисыpytestавтоматизация тестированияtestcontainersOpenAPI