Обновить
256K+

Java *

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

297,75
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты

Время на прочтение30 мин
Охват и читатели8.8K

Что будем делать или что может быть интересного в статье:

- Пайплайн из двух независимых LLM агентов

- Запуск и анализ ошибки UI автотеста (Root Cause Analysis)

- Фикс автотеста в цикле с его запуском.

- Кастомизация MCP инструментов чтобы оптимизировать контекстное окно.

- Система приоритетов в работе LLM агентов.

Читать далее

Kafka, таксономии и удаление событий: как исключить обработку неактуальных сообщений

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели8.4K

В рамках задачи по обработке XBRL-таксономий возникло требование: если таксономия удалена до обработки событий расчёта кэша, эти события не должны приводить к созданию данных для уже неактуальной сущности.

На первый взгляд кажется, что достаточно найти соответствующие сообщения и удалить их из Kafka topic. Но Kafka хранит данные как commit log, поэтому точечное удаление сообщений по версии таксономии или другому бизнес-признаку оказывается небезопасным.

В статье рассмотрим, почему прямое удаление сообщений не подошло, какие варианты были рассмотрены и как в итоге был применён комбинированный подход: стабильный Kafka key, tombstone-сообщения, compact/delete policy и проверка состояния таксономии на стороне consumer.

Разберём решение

Сравнение моделей конкурентности JVM языков: Kotlin coroutines, ZIO runtime и Clojure

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели7.7K

Coroutine, Fiber, Virtual thread - это всё одно и то же?

Или нет ?

Или нет.

А если под капотом всё равно JVM, почему нельзя просто везде включить virtual threads и успокоиться? Разберемся!

Узнать что есть кроме Java Threads

Codex 5.3 vs Claude Opus 4.6 на реальном Java‑монолите

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели19K

Я сравнил Codex 5.3, Claude Opus 4.6 и GPT-5.5 на реальном многомодульном Java-монолите: скопировал проект в отдельные ветки, дал агентам похожие задачи и прогнал их через цикл правок, ревью и e2e-тестов.

Результат: чем дешевле - тем лучше результат.

Читать далее

Техники GenAI в Spring AI

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели11K

В статье рассмотрим ряд техник GenAI, реализованных в модуле Spring AI, и ответим на вопрос: является ли ChatClient лишь тонкой оберткой над API провайдеров LLM или предоставляет функциональные возможности, которые имеет смысл применять в реальных проектах. В качестве примера будем итеративно разрабатывать приложение, интегрированное с Anthropic, и разбирать возникающие по ходу проблемы.

Читать далее

Локальное нагрузочное тестирование в Java с использованием Virtual Threads

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.1K

Всем привет! Меня зовут Михаил, я работаю главным экспертом в ОТП Банке.

Я люблю тестировать свои решения и почти всегда пишу unit- и integration-тесты. Но вот с нагрузочным тестированием ситуация обычно совсем другая: о нем вспоминают ближе к релизу, когда архитектуру уже поздно менять.

В какой-то момент я поймал себя на мысли:

А как вообще заранее понять, сколько ресурсов будет потреблять сервис под нагрузкой?

Сколько памяти съест приложение? Когда упрется в CPU? Как поведет себя БД при разном кол-ве запросов?

Чтобы ответить на эти вопросы, я написал небольшую библиотеку для локального нагрузочного тестирования на Java Virtual Threads. Она запускает большое количество задач, собирает метрики и формирует отчет - прямо в консоли или в CSV.

Сегодня я покажу сам подход, разберу код библиотеки и оставлю ссылку на GitHub-репозиторий, чтобы вы могли попробовать ее у себя или адаптировать под свои задачи.

Читать далее

Паноптикум и ИИ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели11K

Давайте попробуем еще раз, в прошлый раз как-то не задалось, но много воды утекло с тех пор. Проект начался как простой способ "заглянуть в БД сервера" собственно таким он и остается до сих пор. Но по мере развития ИИ в нем появились новые фишки.

Как гласит слоган на главной странице: Panopticum — место, откуда видно всё. Собственно я старался сделать его именно таким, чтобы можно было посмотреть и проверить как можно больше из одного места, желательно с одинаковым интерфейсом.

Сначала я просто начал наращивать количество коннекторов. И если сначала это было четыре вида БД, потом шесть, то теперь это 26 разных БД, логи из Kuberneties и просмотр S3 бакетов.

Читать далее

Открытое ТЗ для пет-проекта: сервис поиска пропавших людей

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

Долго думал, в каком формате это написать, в итоге решил по-простому - рассказать, что есть, и кому это может пригодиться.

Мы с коллегой делали выпускной проект для курсов CloudJava и CloudJava K8S. Это техзадание на бэкенд распределенной системы - четыре микросервиса, Gateway, обвязка. Изначально оно было доступно только участникам курсов, теперь решили открыть бесплатно, без регистрации или “оставьте email”. Просто страница с текстом и тремя OpenAPI-спеками.

Ссылки сразу, чтобы не листать:

Описание проекта: https://javaops.ru/view/cloudjava3

Само ТЗ: https://javaops.ru/view/cloudjava3/rescue-service.html

Читать далее

Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели15K

Вы пробовали что-нибудь кроме new Thread() ?

Конечно пробовали: Future !

И всё ?!

Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure.

Узнать что есть кроме Java Threads

Команда Spring о Spring Framework 7 и Spring Boot 4

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели11K

В новом переводе от команды Spring АйО рассмотрим выход Spring Boot 4 и Spring Framework 7. InfoQ взяли интервью у core команды Spring с целью узнать, куда движется самая популярная в Java экосистема.

Spring Boot 4 модуляризировал автоконфигурацию. Теперь при запуске проверяется меньше классов в classpath, а uber-jar будет более компактным: будут подключаться только нужные модули. Параллельно Spring Boot 4 переходит на Jackson 3, но добавлен модуль совместимости с Jackson 2, потому что экосистема ещё догоняет.

Spring Framework 7 тащит core resilience в ядро: RetryTemplate, @Retryable и @ConcurrencyLimit доступны без отдельной зависимости. @Retryable работает и с реактивными типами (через Retry из Project Reactor); для обычных вызовов используется RetryTemplate с политикой retry/backoff. @ConcurrencyLimit помогает ограничивать доступ к ресурсу, что особенно полезно с Virtual Threads.

Читать далее

Интеграция SAP NetWeaver AS Java с Keycloak: SAML, 2FA и неожиданные проблемы

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.4K

Хабр, привет!

В последнее время обсуждать миграцию с продуктов SAP – это база. Однако для многих компаний эти системы пока остаются ключевыми.

Типичная защита периметра: «свои» внутри, «чужие» снаружи. Но бывает инверсия. Заказчик открывает SAP NetWeaver AS Java в большой мир. SAML в этой системе активируется быстрее, чем вы моргнете — буквально в два клика. Но если на том конце провода не дремлет злоумышленник, а у вас нет 2FA… считайте, что ключи от дома вы спрятали под ковриком.

Мы столкнулись с этой болью на проекте у одного из заказчиков. Нужно было настроить двухфакторную аутентификацию. И вот тут начались нюансы.

В этом материале мы опишем настройку интеграции портала SAP NetWeaver AS Java с внешним Identity Provider (IdP) — Keycloak — с реализацией двухфакторной аутентификации (2FA). До нашего вмешательства аутентификация происходила напрямую в SAP-системе.

Сама настройка и реализация несложные, однако есть несколько моментов, с которыми мы столкнулись на практике, и при этом не нашли достаточно подробного описания в документации.

Далее кратко рассмотрим процесс настройки и разберем возникшие проблемы.

Читать далее

Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели13K

Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё.

Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.

Читать далее

Даже дождь выглядит как интеграция: История одной профдеформации

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Всем привет, меня зовут Михаил, я back-end разработчик в ОТП банке. Сегодня хочу рассказать о профдеформации - о том, как разработка перестраивает мозг без спроса.

Разработка - это не восьмичасовой найм. Это перепрошивка, о которой никто не предупреждает на собеседовании. Мы видим, как всё работает за кулисами. А потом вдруг ловим себя на том, что с женой разговариваем эндпоинтами, а в очереди к врачу видим легаси-монолит.

И знаете что? Это не лечится.

Дальше - несколько моих личных симптомов. Пишите в комментариях свои, уверен, что у каждого такое было!

Читать далее

Ближайшие события

Subject Matter Expert. Чёрная Метка Для Разработчика

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

Это не совсем привычная для меня статья, но я давно хотел поделиться одним своим наблюдением. В ней не будет никаких вещей, связанных непосредственно с разработкой на Java или Kotlin, не будет кода. Я просто решил поделиться опытом. Я надеюсь, читать эту статью Вы будете вечером, в спокойный, выходной день.

Ну что же, поехали.

Я предполагаю, что Spring АйО читают в основном Java или Kotlin разработчики. В том или ином виде, Java / Kotlin разработчики часто пишут какие-то Enterprise решения. Одной из отличительных особенностей enterprise является сложная доменная область. Если Вы хотя бы какое-то время писали Enterprise бекенд, то я думаю, для Вас это не новость.

Читать далее

АЭС для всех, или как мы провели двухдневный воркшоп в Индии

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели12K

Как обучить работе с тренажёрами АЭС группу из 30 человек в Индийском технологическом институте Бомбея (IIT Bombay), если половина аудитории впервые слышит про атомную энергетику, а другая половина уже готова моделировать аварийные ситуации?

Именно с таким вызовом я столкнулся, когда готовил курс для индийских коллег. Мы разделили программу на два дня. В первый день — теория: основы работы АЭС, подготовка персонала, принципы создания математических моделей и тренажёров. Во второй — полноценный воркшоп с индивидуальной работой на тренажёрах.

Но гладко было только на бумаге. На практике пришлось решать целый ряд задач:

Читать далее

Вайбкодинг — это гемблинг

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели15K

Наблюдая за тем, как ИИ внедряется на работе и дома, я всё чаще ловлю себя на простой мысли: всё труднее писать код самому и всё больше хочется делегировать ИИ. Да ещё и провайдеры ИИ призывают тратить больше токенов, руководители всё чаще призывают команды активнее пользоваться ИИ. В соцсетях регулярно попадаются шуточные видео про то, как CEO предлагает потреблять токены ради самого потребления, а в крупных компаниях уже идёт негласное соревнование: кто больше использует AI‑инструменты, кто больше автоматизирует, кто быстрее покажет, что «мы тоже в игре».

Из названия понятно, к чему я веду. Но мне хочется поговорить не про хайп и не про страх перед ИИ, а про более бытовую, инженерную и неприятную сторону: вайбкодинг очень легко превращается в гемблинг.

Читать далее

Почему AI-агент чинит симптом, а не баг: трейсы выполнения и бенчмарки на BugSwarm

Время на прочтение5 мин
Охват и читатели8.8K

Когда AI-агенту дают только stack trace и текст файла с упавшим тестом, он часто чинит симптом, а не причину. Тест зеленеет, баг переезжает в master, через неделю всплывает в другом месте. На простых багах это незаметно, на нетривиальных — становится правилом.

В этой статье — что меняется, если вместо stack trace дать агенту сжатый трейс выполнения, собранный на стороне IDE. Три бага из реального кода, эвристики сжатия трейса, склейка многопоточных вызовов по timestamp и цифры на датасете BugSwarm Pro для DeepSeek V3.2 и проприетарных LLM.

Статья пригодится, если вы:

Читать далее

Skills для AI-агентов: всё, что тебе нужно знать

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

Добавляя новый Skill, мы ждем от агента простого результата: меньше ошибок, более стабильная работа и лучшее понимание библиотек и фреймворков.

На практике же часто можно наблюдать:
– один skill активируется почти всегда, даже когда не нужен
– другой — не включается в момент, когда мы на него рассчитываем
– третий — срабатывает «в паре» с соседними и они мешают друг другу

В какой-то момент может показаться, что агент работает хаотично и явно хуже, и хочется выключить все skills и вернуться к первоначальному состоянию.

Почему так происходит и что с этим можно сделать, разбираемся в статье.

Читать далее

Veai 5.10: общие скиллы и подсказки в чате

Время на прочтение2 мин
Охват и читатели8.4K

Главное в Veai 5.10 – скиллы теперь подхватываются из dot-директорий других ассистентов. В чат добавили быструю документацию по ссылкам на код.

Запуск и получение конфигураций в Rider

До Veai 5.10 в C#/.NET-проекте нужно было просить агента прогнать тесты в модуле или собрать проект. Агент шёл в терминал и пытался угадать команду: какой dotnet, какой TFM, какой фильтр и какой путь к csproj. На монорепо с несколькими SDK и global.json это регулярно заканчивалось exit code 1 и попыткой починить рабочий код.

Читать далее

Хватит копировать security YAML: AppSec-слой для Java-проектов через Gradle convention plugin

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.3K

Практический разбор того, как я вынес security-проверки Java-проектов из разрозненных CI/CD-скриптов в переиспользуемый Gradle plugin

Читать далее