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

ArrayList против LinkedList: спор, который ИИ всё ещё проигрывает практике

ArrayList или LinkedList — классический вопрос по Java, на который до сих пор часто отвечают по учебнику, а не&nbsp…

JavaобучениеArrayListLinkedListколлекциипроизводительностьструктуры-данныхcache-localityBig-O
Habr
RU

Рейтинги языков программирования в 2026 году с учётом ИИ-агентов и нейрослопа

Выбор языка программирования (ЯП) отражает стиль мышления разработчика. Однако если какой-то язык называют «популярным», это вовсе не значит, что он с…

рейтинг языков программированияязык программированиявакансиивойти в itPythonC++c#JavaRustSQL
Habr
RU

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

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

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

Как желание быстрее читать чужой код превратилось в войну с недетерминизмом LLM

Началось всё примерно так. Я сидел над своим проектом: пока работал, общался по нему с нейросетками и параллельно искал в&nbs…

LLMprompt engineeringдетерминизмJavaоценка кодаобучение программированиюGemini APIprompt injectionpet projectNLP
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

Как сделать MCP-сервер из Spring-сервиса за один вечер. И что потом не даст спать спокойно

AI‑агенту не нужен прямой доступ к базе, чтобы отвечать на вопросы оператора или вызывать действия в системе. Достаточно дать…

MCPSpring AIJavaSpring BootAI-агентыLLM-интеграциимикросервисыбезопасность LLMprompt injectionархитектура ИИ-приложений
Habr
RU

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

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

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

Единый оркестратор инфраструктуры: что происходит под капотом Digital Q.AppServer

В современной ИТ-инфраструктуре нередко соседствуют разные серверы приложений, которые используются для решения разных эксплуатационных и архитектурны…

WildFlyTomEEсервер приложенийсистемное администрированиеимпортозамещениеDigital Q.AppServerJava
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

Локализация через Enum, неожиданный Дзен, быстрее только телепатия

Надоело плодить JSON/ARB файлы при локализации Flutter-приложения? Автор делился личным опытом и показал, как элегантно настроить локализацию через En…

APIАлгоритмы и структуры данныхJavaМассивы и строкиКрасивый хакAndroidМобильная разработкаJSONРаботаFlutterDartСтатьи
Tproger
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

Собираю гуманоидного робота по OpenLoong: заметки Java-разработчика

Привет, меня зовут Ашот Агабеков. Я Java backend‑разработчик. Основная моя профессиональная область — backend‑разработка, архитектура, интеграции…

OpenLoongгуманоидный роботробототехникаJavapet project3D-печатьFusion 360DIYOpen sourcearduino
Habr
RU

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

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

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

async‑profiler в production: CPU, аллокации, lock contention и чтение flame graph

Профилирование Java‑приложений в production часто упирается не в отсутствие инструментов, а в их ограничения: CPU горит в&nbs…

async-profilerJavaJVMпрофилированиеflame graphпроизводительностьаллокациимногопоточностьlock contentionlatency
Habr
RU

Пишем Java-скрипт, который собирает проект в один файл для контекста в чат DeepSeek или другие LLM

У нейросетей есть ограничение на количество символов в чате или на число запросов. И бывает так, что лимит уже закончился, а разработка проекта — нет.…

DeepSeekLLMJavaконтекстdeveloper toolsавтоматизацияChatGPT
Habr
RU

C# мне нравится больше Java. Но в банковском enterprise мне всё равно понадобилась Java

C# я до сих пор считаю одним из самых удобных языков для backend разработки. В нём много вещей к которым быстро привыкаешь: свойства, LINQ, async/awai…

C#JavabackendenterpriseбанкиSpring Boot.NETмикросервисыимпортозамещениекарьера
Habr
RU

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

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

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