Обновить
128K+

Java *

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

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

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

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

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

В последнее время обсуждать миграцию с продуктов 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 мин
Охват и читатели15K

Добавляя новый 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.4K

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

Читать далее

Отказываемся от wkhtmltopdf: как мы искали решение для генерации нетривиальных PDF

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

wkhtmltopdf долгое время был одним из основных инструментов для генерации PDF из HTML. Мы столкнулись с ним на собственном проекте, но, когда потребовалось реализовать сложные макеты, колонтитулы и повторяющиеся заголовки в многостраничных документах — возникли проблемы.

В этой статье — краткий обзор альтернатив (Headless Chrome, Puppeteer, Playwright, WeasyPrint, Gotenberg), их плюсы и минусы, а также наш итоговый выбор и подводные камни, которые всплыли в процессе внедрения.

Читать далее

Как сделать Maven build security-aware: AppSec-проверки без дрейфа CI/CD

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

Единый плагин для сканирования на безопасность Java проектов. Maven. Или как проверять кучу микросервисов на безопасность управляя этим в одном месте

Скачать плагин

Как мы перестали размножать BIRT‑шаблоны и собрали блочную платформу self‑service генерации страховых полисов в PDF

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

Когда документов и партнёров стало много, модель «один кейс — один шаблон» начала мешать даже простым правкам. Рассказываю, как мы вынесли композицию, версии и публикацию в отдельный backend-слой поверх BIRT, чтобы бизнес мог менять PDF-полисы без постоянного участия разработки.

Читать далее

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

Реально большая стейт-машина: как мы строили облачную запись и ИИ-конспектирование в Телемосте

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

Всем привет! Меня зовут Илья Григорьев, я старший бэкенд-разработчик в команде Телемоста. В этой статье я разберу наш опыт разработки двух фич последнего года — ИИ-конспект с Алисой Про и облачной записи на Диск. Покажу, как мы проектировали их архитектуру, почему не всё получилось с первого раза, с какими системными и техническими ограничениями столкнулись при работе с медиаданными и как в итоге выстроили пайплайн их обработки и анализа.

Читать далее

Cursor удалил прод за 9 секунд, а Zig и JVM запретили AI-коммиты

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

Двенадцатый выпуск еженедельных IT-новостей от OpenIDE!

На этой неделе прошёл JPoint 2026, вышел Amplicode 2026.1 со Spring Agent Toolkit, а Anthropic впервые обогнала OpenAI по оценке на вторичном рынке. Плюс история о том, как AI-агент удалил продакшн-базу данных за 9 секунд.

Читать далее

Цирк уехал, а управление осталось: как разные менеджеры ломают разработку

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

За несколько лет работы я сменил несколько проектов и команд. Стек менялся: где‑то был Kotlin, где‑то классическая Java, где‑то вообще старый монолит на виртуалках.

Но самое сильное различие было не в технологиях.

Всё решали люди, которые руководят разработкой.

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

И самое неожиданное — один из них, при всех своих минусах, оказался для меня полезнее остальных.

В этой статье — три реальных кейса и то, чему они меня научили. И как каждый из руководителей влияет на разработку.

Читать далее

Анализируем heap‑дампы с прода, не привлекая внимания безопасников

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

Heap‑дампы JVM — бесценный источник информации при разборе аварий с OutOfMemory и оптимизации производительности. Но вместе с тем они же — потенциальные каналы утечки данных, ведь будучи снятыми с боевого сервиса, дампы уносят в себе всё, с чем работал сервис на момент снимка: логины, пароли (иногда в открытом виде), важные ID и тому подобное — словом, всяческие sensitive данные, которые не нужны для анализа, но могут навлечь на получателя дампа серьёзную ответственность и риски. Как этого избежать без ущерба делу — разбираемся под катом.

Читать далее

Java Digest #35

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

Всем привет! 👋👋👋👋👋

Мы — Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения!

Читать 35 выпуск

Как собрать пайплайн с LLM агентом использующим эмуляторы Android девайсов

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

LLM пока не может хорошо обращаться с Е2Е автотестами потому что для этого нужно провести целый комплекс мероприятий. Сложность возникает уже на этапе запуска такого автотеста. В отличии от юнит автотестов, Е2Е автотесты почти всегда PageObject и целый проект со своей архитектурой на базе Selenium Appium Espresso и тд.

Читать далее

Как Monium приручил GC: разбираемся со сборщиками мусора в observability‑платформе

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

Всем привет, меня зовут Антон Рыбочкин, я старший разработчик бэкенда в команде Yandex Monium. Monium — это платформа для сбора, хранения и анализа телеметрии (метрик, логов и трейсов). Она позволяет дать оценку того, как себя чувствует сервис, находить причины сбоев, оперативно уведомлять об аномалиях.

Изначально эта платформа развивалась как внутренняя система для мониторинга сервисов в масштабах всего Яндекса. Отсюда высокие требования к надёжности сервиса — телеметрия должна быть доступна, даже когда другие сервисы лежат. И с точки зрения бэкенда в таких кейсах есть свои вызовы, один из них — сборка мусора, или сокращённо GC.

В этой статье я расскажу про наш опыт с разными сборщиками мусора: с какими проблемами Java GC мы столкнулись в разных сервисах, как их можно диагностировать и как решить.

Читать далее