<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Java / Хабр]]></title>
    <link>https://habr.com/ru/hubs/java/articles/</link>
    <description><![CDATA[Java – объектно-ориентированный язык программирования]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Fri, 24 Jul 2026 16:48:33 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Натуральные ключи в БД. Последний раз объясняю]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1062754/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1062754/?utm_campaign=1062754&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b64/e19/7f7/b64e197f7fbfd884c80e06ab18b1e685.png" /><p>Всем привет! На связи Михаил Поливаха, технический лидер <a href="https://github.com/axelixlabs/axelix">проекта Axelix</a>.</p><p>Я уже <a href="https://habr.com/ru/companies/spring_aio/articles/1059922/">выпускал статью</a> по мотивам вопросов в рамках Spring Айо Академии. Так вот, когда мы разгребали отзывы с первого потока, мы также получили вопрос (это не прямая цитата, я лишь передаю посыл в том виде, как я его понял):</p><p>А что насчет натуральных ключей в БД? Если, допустим, у меня есть поле, по которому я могу явно идентифицировать запись, стоит ли его использовать как Primary Key?</p><p>И я за время дизайна enterprise систем, и за время дизайна Axelix пришёл к выводу: <strong>Просто не используйте натуральные ключи вообще никогда</strong>. Когда у вас появляется такое желание - выйдите на свежий воздух, пройдитесь, прогуляйтесь, и вас отпустит.</p> <a href="https://habr.com/ru/articles/1062754/?utm_campaign=1062754&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Jul 2026 13:49:03 GMT</pubDate>
      <dc:creator><![CDATA[mipo256 (Spring АйО)]]></dc:creator>
      
      <category>database</category><category>rdbms</category><category>postgres</category><category>postgresql</category><category>software design</category><category>software development</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Сколько стоит контроль над ИИ-агентом? Считаем экономику]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/veai/articles/1062428/</guid>
      <link>https://habr.com/ru/companies/veai/articles/1062428/?utm_campaign=1062428&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e72/f67/e16/e72f67e16bc48dbc483f6c6f058a0e00.jpg" /><p>В прошлой статье мы разбирали, как сделать работу <a href="https://habr.com/ru/companies/veai/articles/1061254/">ИИ-агента предсказуемее</a>: зафиксировать требования в спецификации с помощью Specification-Driven Development (SDD), до реализации описать ожидаемое поведение тестами по Test-Driven Development (TDD), а готовый результат проверить и передать отдельному субагенту на ревью.</p><p><strong><em>У такого подхода есть цена. </em></strong></p><p>Подготовка спецификации, написание тестов до кода и отдельное ревью требуют времени разработчиков. Возникают два вопроса: сколько контроля нужно конкретной задаче и когда затраты на него окупаются?</p><p>Полагаться только на свои ощущения в таких вопросах очень опрометчиво. В одном из экспериментов разработчики считали, что ИИ ускорил их примерно на 20%. Замеры показали обратное: с ИИ они работали на 19% медленнее. </p><p><em>В статье считаем полную стоимость работы с ИИ-агентом: разбираем, что уже измерено, сколько времени человек тратит на проверку и почему разным задачам нужен разный уровень контроля.</em></p><p><strong>Что показывают эксперименты, если читать их целиком</strong></p><p>Заголовки об ИИ в разработке противоречат друг другу: «на 55% быстрее», «на 19% медленнее», «на 26% продуктивнее». Результаты расходятся, потому что исследования проводились в разных условиях и измеряли разные показатели. </p><p>Для сравнения я выбрал работы с доступными первоисточниками, описанной методологией и измеримыми результатами. Исследование пул-реквестов стоит отдельно от контролируемых экспериментов: оно показывает, как агенты используются на практике, но не позволяет установить причины полученных результатов.</p> <a href="https://habr.com/ru/articles/1062428/?utm_campaign=1062428&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 23 Jul 2026 16:33:32 GMT</pubDate>
      <dc:creator><![CDATA[dirvika (Veai)]]></dc:creator>
      
      <category><![CDATA[jetbrains]]></category><category><![CDATA[ide]]></category><category><![CDATA[idea]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[ai]]></category><category><![CDATA[ai agent]]></category><category><![CDATA[ai-agent]]></category><category><![CDATA[программирование]]></category><category><![CDATA[стартапы]]></category><category><![CDATA[java]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Выпущена версия Jmix 3.0]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/haulmont/articles/1061776/</guid>
      <link>https://habr.com/ru/companies/haulmont/articles/1061776/?utm_campaign=1061776&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c6c/a47/2e9/c6ca472e9e14aa253f42a5fec18fb6fe.png" /><p>Выпущен Jmix 3.0, и это самый значительный шаг, который фреймворк сделал за последние годы. Этот релиз перестраивает основу на современном технологическом стеке, оставаясь полностью совместимым с предыдущими версиями, что делает миграцию гладкой и простой. Наряду с обновлением платформы, 3.0 представляет набор функций, которые активно используют ИИ и предоставляют гибкость в рантайм.</p><p>Ниже приведён краткий обзор основных новых возможностей. Полный список изменений, включая все критические изменения, доступен в разделе&nbsp;<a href="https://docs.jmix.ru/jmix/whats-new/release-3.0.html">Что нового</a>&nbsp;документации.</p> <a href="https://habr.com/ru/articles/1061776/?utm_campaign=1061776&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 22 Jul 2026 09:45:29 GMT</pubDate>
      <dc:creator><![CDATA[haulmont (Haulmont)]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[open-source]]></category><category><![CDATA[программирование]]></category><category><![CDATA[новости]]></category><category><![CDATA[jmix]]></category><category><![CDATA[intellijidea]]></category><category><![CDATA[intellij idea plugins]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Spring Security: дополнение к JWT токенам]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1061586/</guid>
      <link>https://habr.com/ru/articles/1061586/?utm_campaign=1061586&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/bc2/7d2/987/bc27d2987fc3116f4a620a65e607846a.jpg" /><p>Всех приветствую!</p><p>Данная статья будет посвящена довольно важным вещам, таким как: refresh token, метод-уровневой безопасности и примеру реализации правила "свой/чужой профиль"</p> <a href="https://habr.com/ru/articles/1061586/?utm_campaign=1061586&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 21 Jul 2026 18:23:58 GMT</pubDate>
      <dc:creator><![CDATA[Apollon_krd]]></dc:creator>
      
      <category><![CDATA[spring]]></category><category><![CDATA[spring security]]></category><category><![CDATA[spring data jpa]]></category><category><![CDATA[безопасность веб-приложений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[После вайб-кодинга: почему в 2026 году появляется новый класс Code Clean-up Agents]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1061498/</guid>
      <link>https://habr.com/ru/articles/1061498/?utm_campaign=1061498&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e4b/863/3a4/e4b8633a4aac70e763b55b765cdeb92a.png" /><p><strong>После вайб-кодинга: почему в 2026 году появляется новый класс Code Clean-up Agents. </strong><em>Как стоимость разработки смещается от генерации к проверке, рефакторингу и контролю изменений</em></p><p>Я всё чаще вижу один и тот же сценарий.&nbsp;Агент получает задачу,&nbsp;за несколько минут собирает патч,&nbsp;запускает тесты и сообщает об успехе.&nbsp;Первый просмотр выглядит обнадёживающе.&nbsp;Потом начинается ревью.</p><p>Чем быстрее появляется код,&nbsp;тем больше времени уходит на восстановление контекста:&nbsp;что агент поменял,&nbsp;на какие факты опирался,&nbsp;какой конфигурацией запускал тесты и сколько попыток сделал до финального ответа.</p><p>В этой точке полезно отделить генерацию патча от подготовки изменения к отправке в основную ветку.&nbsp;<em>Для второй задачи в 2026 году формируется отдельный класс инструментов:</em>&nbsp;<strong>Code Clean-up Agents</strong>.</p> <a href="https://habr.com/ru/articles/1061498/?utm_campaign=1061498&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 21 Jul 2026 15:34:30 GMT</pubDate>
      <dc:creator><![CDATA[AI-CMO]]></dc:creator>
      
      <category><![CDATA[ai-агенты]]></category><category><![CDATA[ai]]></category><category><![CDATA[ai agent]]></category><category><![CDATA[ai-agent]]></category><category><![CDATA[ide]]></category><category><![CDATA[idea]]></category><category><![CDATA[jbang]]></category><category><![CDATA[программирование]]></category><category><![CDATA[аналитика]]></category><category><![CDATA[анализ данных]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Агент пишет не то, что нужно? Верните контроль]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1061404/</guid>
      <link>https://habr.com/ru/articles/1061404/?utm_campaign=1061404&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d06/7f4/220/d067f4220d6b05140fb3f07a4d8419ab.jpeg" /><p>Как часто, работая с агентом над новой фичей, вы остаётесь недовольны результатом? То что-то не работает, то качество кода неприемлемо. Вы просите агента ещё раз и ещё раз, пытаетесь подобрать «идеальный» промпт — и всё равно не выходит. Уверен: чем дольше вы работаете с агентом, тем чаще разочаровываетесь. И это неудивительно: агент пишет код очень быстро — и именно поэтому ОЧЕНЬ просто получить ОЧЕНЬ много кода, который вам не нужен. Но код — это как раз простая часть. Настоящая задача инженера — строить системы: надёжные, быстрые и поддерживаемые. Именно за это нам и платят — и вот этого агент пока за нас не делает.</p> <a href="https://habr.com/ru/articles/1061404/?utm_campaign=1061404&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 21 Jul 2026 13:50:02 GMT</pubDate>
      <dc:creator><![CDATA[alexander-shustanov]]></dc:creator>
      
      <category><![CDATA[spec driven development]]></category><category><![CDATA[claude-code]]></category><category><![CDATA[codex]]></category><category><![CDATA[intellijidea]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Origami Framework: автоматизация тестирования на Java]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1061356/</guid>
      <link>https://habr.com/ru/articles/1061356/?utm_campaign=1061356&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/69f/1f9/998/69f1f99982e1bcb301ccbce2905cf805.png" /><p><a href="https://origamiframework.ru/" rel="noopener noreferrer nofollow">Origami Framework</a> —  фреймворк для автоматизации тестирования на Java, созданный с целью упрощения построения тестовой архитектуры и ускорения процессов приёмочного и регрессионного тестирования    </p> <a href="https://habr.com/ru/articles/1061356/?utm_campaign=1061356&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 21 Jul 2026 11:12:29 GMT</pubDate>
      <dc:creator><![CDATA[MrSmile13]]></dc:creator>
      
      <category><![CDATA[origami framework]]></category><category><![CDATA[java]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[qa]]></category><category><![CDATA[autotesting]]></category><category><![CDATA[автоматизация тестирования]]></category><category><![CDATA[testing]]></category><category><![CDATA[test automation]]></category><category><![CDATA[фреймворк]]></category><category><![CDATA[software testing]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Что нового в IntelliJ IDEA 2026.2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1061042/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1061042/?utm_campaign=1061042&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3f6/d20/968/3f6d20968492273c552563a83b05ff64.png" /><p>Несмотря на то, что IntelliJ IDEA уже несколько лет официально недоступна в России, она по-прежнему остаётся одной из самых популярных IDE среди разработчиков. На днях вышла свежая версия 2026.2.</p><p>В релиз вошли новые инструменты для работы с ИИ-агентами, изменения в отладчике и автоматизация ряда повседневных операций. Также появилась поддержка Java 27, Kotlin 2.4, TypeScript 7, будущего Gradle 10 и обновления для Spring, Terraform и Docker Compose.</p><p>В статье пройдемся по основным изменениям.</p> <a href="https://habr.com/ru/articles/1061042/?utm_campaign=1061042&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 20 Jul 2026 15:07:33 GMT</pubDate>
      <dc:creator><![CDATA[befayer (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>kotlin</category><category>ide</category><category>intellij</category><category>idea</category><category>intellij idea</category><category>intellijidea</category><category>jetbrains</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[crypto-gost — реализация открытых стандартов (RFC) алгоритмов ГОСТ на Java и Android]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1060744/</guid>
      <link>https://habr.com/ru/articles/1060744/?utm_campaign=1060744&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7f1/2c9/d88/7f12c9d881de4df465041a6165f0d367.png" /><p>Если вы Java-разработчик, которому в личных целях нужно поднять TLS 1.3 на ГОСТ, создать ГОСТ-сертификаты, подписать документ CAdES, создать свой тестовый УЦ, сделать шифрование и подпись на  своем Android — эта статья для вас. Все примеры в этой статье одинаково работают что на JVM 21, что на Android 12+. </p><p><strong><a href="https://gitflic.ru/project/red-stars-systems/crypto-gost" rel="noopener noreferrer nofollow">crypto-gost </a></strong>— &nbsp;&nbsp;криптографическая библиотека алгоритмов ГОСТ на <strong>Java 21+</strong> и <strong>Android 12+</strong>, а также сопутствующая обвязка вокруг них, позволяющая использовать в личных целях алгоритмы и стандарты ГОСТ в инфраструктуре Java. Статья написана в академических целях.</p> <a href="https://habr.com/ru/articles/1060744/?utm_campaign=1060744&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 20 Jul 2026 06:14:49 GMT</pubDate>
      <dc:creator><![CDATA[mikhail_ananev]]></dc:creator>
      
      <category><![CDATA[гост 34.10-2012]]></category><category><![CDATA[шифрование]]></category><category><![CDATA[tls1.3]]></category><category><![CDATA[cades]]></category><category><![CDATA[cms]]></category><category><![CDATA[электронная подпись]]></category><category><![CDATA[ssl-сертификаты]]></category><category><![CDATA[java]]></category><category><![CDATA[cades-x long type 1]]></category><category><![CDATA[csr]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Крашенная и не накрашенная…]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1060688/</guid>
      <link>https://habr.com/ru/articles/1060688/?utm_campaign=1060688&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/27f/951/02f/27f95102f38dc20a3669a929253e2bef.jpg" /><p>Необходимостью любой современной платежной системы является возможность разграничения платежей согласно критериям. Если вам интересно узнать, почему таможенный и родительский контроль - это одно и тоже, а так же почему окрашивание ресурсов не имеет ничего общего с цветом, то добро пожаловать под кат.</p> <a href="https://habr.com/ru/articles/1060688/?utm_campaign=1060688&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Papers, please</a>]]></description>
      
      <pubDate>Sun, 19 Jul 2026 18:04:45 GMT</pubDate>
      <dc:creator><![CDATA[lastrix]]></dc:creator>
      
      <category><![CDATA[анализ и проектирование систем]]></category><category><![CDATA[java]]></category><category><![CDATA[платежные системы]]></category><category><![CDATA[окрашивание]]></category><category><![CDATA[ограничение платежей]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Structured outputs, которые не работают: пять ситуаций, где схема есть, а гарантий нет]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1058384/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1058384/?utm_campaign=1058384&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ab7/9f0/c8e/ab79f0c8e13f03c3ce8f188faa69ac24.png" /><p>Strict‑режим включён, схема валидна, ответ успешно парсится&nbsp;— а&nbsp;в&nbsp;проде всё равно всплывают <code>None</code>, пропавшие ограничения и аргументы инструментов не&nbsp;тех типов. </p><p>В&nbsp;статье разберём пять ситуаций, где Structured Outputs создают ложное ощущение надёжности, и посмотрим, какие проверки действительно стоит добавить в&nbsp;LLM‑пайплайн. </p> <a href="https://habr.com/ru/articles/1058384/?utm_campaign=1058384&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Jul 2026 19:15:16 GMT</pubDate>
      <dc:creator><![CDATA[badcasedaily1 (OTUS)]]></dc:creator>
      
      <category><![CDATA[структурированные ответы]]></category><category><![CDATA[JSON Schema]]></category><category><![CDATA[strict-режим]]></category><category><![CDATA[большие языковые модели]]></category><category><![CDATA[Pydantic]]></category><category><![CDATA[валидация данных]]></category><category><![CDATA[OpenAI API]]></category><category><![CDATA[вызов инструментов]]></category><category><![CDATA[ИИ-агенты]]></category><category><![CDATA[обработка ошибок]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Testcontainers в CI: почему тесты зелёные локально и красные на пайплайне]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1058388/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1058388/?utm_campaign=1058388&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/772/c24/10e/772c2410e95341de2c8b30dca2e7dbaa.png" /><p>Локально Testcontainers запускается за&nbsp;секунды, тесты стабильно зелёные, а&nbsp;в&nbsp;CI тот&nbsp;же набор начинает падать в&nbsp;трёх запусках из&nbsp;ста и каждый раз по&nbsp;новой причине. </p><p>В&nbsp;статье разберём пять типовых источников такого поведения&nbsp;— от&nbsp;плавающих версий образов и неправильного ожидания готовности до&nbsp;конфликтов портов и нехватки памяти&nbsp;— и покажем, как&nbsp;сделать интеграционные тесты воспроизводимыми на&nbsp;пайплайне. </p> <a href="https://habr.com/ru/articles/1058388/?utm_campaign=1058388&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Jul 2026 12:13:12 GMT</pubDate>
      <dc:creator><![CDATA[badcasedaily1 (OTUS)]]></dc:creator>
      
      <category><![CDATA[Testcontainers]]></category><category><![CDATA[интеграционное тестирование]]></category><category><![CDATA[Docker]]></category><category><![CDATA[Java]]></category><category><![CDATA[нестабильные тесты]]></category><category><![CDATA[контейнеры]]></category><category><![CDATA[GitLab CI]]></category><category><![CDATA[параллельные тесты]]></category><category><![CDATA[управление ресурсами]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что вам нужно знать про семантику List и Set в Hibernate]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1059922/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1059922/?utm_campaign=1059922&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3a0/edc/d2f/3a0edcd2fc35d423ca6f7869d835ab22.jpg" /><p>Привет, друзья!</p><p>На связи Михаил Поливаха, технический лидер <a href="https://github.com/axelixlabs/axelix">проекта Axelix</a>.</p><p>В рамках <a href="https://spring-aio.ru/advanced_hibernate">Spring АйО Академии</a> я встречал большое количество похожих вопросов, посвященных правильному дизайну сущностей и другим похожим вопросам.</p><p>Я обещался на все эти вопросы ответить в рамках статьи. На самом деле, одной статьи у меня не вышло, скорее всего, будет серия статей. Надеюсь, будет интересно :)</p> <a href="https://habr.com/ru/articles/1059922/?utm_campaign=1059922&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Jul 2026 14:29:26 GMT</pubDate>
      <dc:creator><![CDATA[mipo256 (Spring АйО)]]></dc:creator>
      
      <category><![CDATA[hibernate]]></category><category><![CDATA[java]]></category><category><![CDATA[orm]]></category><category><![CDATA[sql]]></category><category><![CDATA[spring-data]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Apache Camel: почему аналитик в нём ничего не сделает и при чём тут красивый UI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/mws/articles/1059746/</guid>
      <link>https://habr.com/ru/companies/mws/articles/1059746/?utm_campaign=1059746&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/719/aba/365/719aba3658655d117f3334e0a077865a.jpg" /><p>Привет, Хабр! Меня зовут Александр Бардаш, и я CTO интеграционной платформы <a href="https://mws.ru/dev-tools/octapi/?utm_source=habr.com&amp;utm_medium=owned_media_octapicamel&amp;utm_content=article&amp;utm_term=octapicamel">MWS Octapi</a>. В одной из предыдущих статей я рассказывал, как мы выбирали движок для low-code и почему остановились на Temporal, отказавшись от Apache Camel. С тех пор регулярно получаю один и тот же вопрос — от продактов, аналитиков, а иногда и от коллег-архитекторов: «Подождите, ну сейчас же есть Karavan, Kaoto, нормальные визуальные редакторы. Аналитик там накидает кубики, настроит логику, разве это не cделает Camel доступнее?» Короткий ответ — нет, не cделает. А вот почему, предлагаю разобрать в материале.</p><p><em>Дисклеймер: это мой личный опыт и опыт команды. Тема спорная, у вас может быть своя картина.</em></p> <a href="https://habr.com/ru/articles/1059746/?utm_campaign=1059746&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Jul 2026 14:09:02 GMT</pubDate>
      <dc:creator><![CDATA[aibardash (MWS Cloud, МТС)]]></dc:creator>
      
      <category><![CDATA[apache camel]]></category><category><![CDATA[MWS]]></category><category><![CDATA[MWS Cloud]]></category><category><![CDATA[MWS Octapi]]></category><category><![CDATA[интеграции]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сможет ли DB Client от OpenIDE заменить DataGrip?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1059642/</guid>
      <link>https://habr.com/ru/articles/1059642/?utm_campaign=1059642&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/84f/ed1/407/84fed1407f442916f46d5f3b660455c4.jpg" /><p>Меня заинтересовал новый плагин <strong>DB Client</strong>, который идёт в составе OpenIDE. Давайте посмотрим, может ли он уже на текущий момент стать достойной альтернативой платному DataGrip? Я не предъявляю каких-то узкоспециальных требований к таким инструментам. В основном требуется писать  и оптимизировать sql-запросы, просматривать структуру таблиц и диаграмму связей между ними, просматривать актуальный DDL, выполнять мелкие правки данных “на лету”, а также делать импорт и экспорт данных в различных форматах. Давайте по этим пунктам и пройдёмся.</p> <a href="https://habr.com/ru/articles/1059642/?utm_campaign=1059642&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Jul 2026 10:30:45 GMT</pubDate>
      <dc:creator><![CDATA[devmark]]></dc:creator>
      
      <category><![CDATA[openide]]></category><category><![CDATA[datagrip]]></category><category><![CDATA[db client]]></category><category><![CDATA[java]]></category><category><![CDATA[postgres]]></category><category><![CDATA[idea]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ты уже написал свой Джеймикс, только плохой]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/haulmont/articles/1059692/</guid>
      <link>https://habr.com/ru/companies/haulmont/articles/1059692/?utm_campaign=1059692&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e8e/fa5/af4/e8efa5af445745c49d9694c5fc8bdc6a.png" /><p>Открой свой Spring-проект, которому больше двух лет. Найди пакет&nbsp;<code>common</code>,&nbsp;<code>core</code>&nbsp;или&nbsp;<code>framework</code>&nbsp;— а он там есть, я почти уверен. Загляни внутрь.</p><p>Ты увидишь&nbsp;<code>BaseEntity</code>&nbsp;с&nbsp;<code>id</code>,&nbsp;<code>createdDate</code>&nbsp;и&nbsp;<code>version</code>. Увидишь&nbsp;<code>AbstractCrudController&lt;T, ID&gt;</code>, от которого наследуются все твои контроллеры. Увидишь самодельный слой прав — что-нибудь вроде&nbsp;<code>@CheckPermission</code>&nbsp;поверх&nbsp;<code>PermissionEvaluator</code>. Увидишь свой&nbsp;<code>SoftDeleteRepository</code>&nbsp;и аудит-слушатель на JPA-события.</p><p>Поздравляю: ты написал фреймворк. Свой, внутренний, недокументированный (себя-то не обманывай), поддерживаемый одним человеком (который уже собеседуется в другую компанию). И построил ты его ровно для того, чтобы не брать «тяжёлый и навязчивый» opinionated-фреймворк — ты сделал это «ради контроля».</p><p>Давай честно поговорим про этот контроль.</p> <a href="https://habr.com/ru/articles/1059692/?utm_campaign=1059692&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Jul 2026 07:44:48 GMT</pubDate>
      <dc:creator><![CDATA[Dvasch (Haulmont)]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[jmix]]></category><category><![CDATA[spring]]></category><category><![CDATA[low-code]]></category><category><![CDATA[code-first]]></category><category><![CDATA[haulmont]]></category><category><![CDATA[vaadin]]></category><category><![CDATA[framework]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Аутентификация через биометрию в Kotlin Multiplatform или Koncierge]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1059174/</guid>
      <link>https://habr.com/ru/articles/1059174/?utm_campaign=1059174&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f79/ad3/f6d/f79ad3f6d581aea519035c58c6d4dc78.png" /><p>Наконец-то неплохо продвинувшись в написании своего мультиплатформенного приложения <a href="https://github.com/UCASoft/ModernMoney" rel="noopener noreferrer nofollow">Modern Money</a> мне понадобилась аутентификация для Kotlin Multiplatform.</p><p>Хотелось иметь один API для PIN-кода и биометрии, а под капотом использовать Android Biometric Prompt, Windows Hello, Touch ID.</p><p>Так появился <a href="https://github.com/Scogun/koncierge" rel="noopener noreferrer nofollow">Koncierge</a> — набор KMP-модулей <code>biometric</code>, <code>auth</code> и <code>auth-compose</code></p><p>Казалось бы, задача довольно стандартная: объявить <code>expect</code>-класс и написать несколько <code>actual</code>-реализаций. На Android это примерно так и получилось. А вот Windows Hello, JVM-модуль и публикация всех артефактов заставили немного разобраться в том,</p> <a href="https://habr.com/ru/articles/1059174/?utm_campaign=1059174&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">как Kotlin работает с нативным кодом</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 18:26:44 GMT</pubDate>
      <dc:creator><![CDATA[Scogun]]></dc:creator>
      
      <category><![CDATA[kotlin multiplatform]]></category><category><![CDATA[kotlin]]></category><category><![CDATA[kotlin native]]></category><category><![CDATA[compose multiplatform]]></category><category><![CDATA[native]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Тестовые фикстуры: управление зависимостями в Gradle]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1059130/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1059130/?utm_campaign=1059130&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ded/faa/211/dedfaa211e77471b27c2502e1b880a45.png" /><p>В многомодульных Gradle-проектах рано или поздно появляются вспомогательные классы для тестов: фабрики тестовых данных, билдеры, хелперы. Такие классы не относятся ни к продакшн-коду, ни к обычным тестам. Логично было бы переиспользовать их сразу в нескольких модулях, но классическая модель Gradle этого не позволяет: тестовые артефакты одного проекта нельзя просто так подключить как зависимость в другом.&nbsp;</p><p>На самом деле Gradle умеет решать эту задачу из коробки без вспомогательных проектов и хитрых конфигураций. Начиная с версии 5.6, тестовые фикстуры стали в Gradle полноценной сущностью первого класса, и весь этот пласт боли можно убрать буквально несколькими строчками в build.gradle.</p><p>Плагин java-test-fixtures заводит в модуле отдельный SourceSet, а другие модули подключают эти классы через лаконичный DSL. При публикации Gradle даже собирает отдельный *-test-fixtures.jar для независимых проектов. В статье на примерах показано, как расшарить тестовые хелперы между модулями, избавиться от дублирования и при этом сохранить чистые архитектурные границы. Если вы устали таскать тестовый код из модуля в модуль, то Вам точно пригодится.</p> <a href="https://habr.com/ru/articles/1059130/?utm_campaign=1059130&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 15:21:31 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>gradle</category><category>dependencies</category><category>java</category><category>kotlin</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Сериализация one-nio: от истоков к поддержке JDK 25]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/vk/articles/1058654/</guid>
      <link>https://habr.com/ru/companies/vk/articles/1058654/?utm_campaign=1058654&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b4a/827/492/b4a827492cd88e35a027f0e4ad1f00c9.jpg" /><p>Привет, Хабр! В этой статье я расскажу об эволюции подсистемы сериализации <strong>one-nio</strong> — фреймворка для создания высоконагруженных сервисов, работающего в Одноклассниках с 2012 года. Прошлой осенью я работал над обновлением подсистемы и добавил в нее новый режим работы, совместимый с актуальными версиями JDK.</p><p>Ситуация, с которой мы столкнулись, довольно прозаична. Библиотеке больше десяти лет, и экстремально быстрая сериализация (превращение объекта в последовательность байтов и обратно) с самого начала строилась в ней на внутренних лазейках JVM, к которым обычный прикладной код доступа не имеет. Когда one-nio только писали, это был стандартный паттерн для высоконагруженных фреймворков.</p><p>Сейчас же платформа методично «закручивает гайки»: старые бэкдоры помечаются как устаревшие, а затем безжалостно удаляются. И перед нами встал серьезный вызов: как перевести библиотеку на легальные API вплоть до JDK 25, сохранив производительность и не сломав то, что годами крутится в проде?</p><p>Под катом я расскажу, зачем вообще понадобился еще один фреймворк сериализации и как он устроен, на чём держался старый режим, почему его пришлось менять, что получилось по бенчмаркам и куда движется платформа JVM.</p> <a href="https://habr.com/ru/articles/1058654/?utm_campaign=1058654&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 14:37:12 GMT</pubDate>
      <dc:creator><![CDATA[max_kammerer (VK)]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[jvm]]></category><category><![CDATA[jdk]]></category><category><![CDATA[bytecode]]></category><category><![CDATA[serialization]]></category><category><![CDATA[unsafe]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Spring Security: работа с JWT токенами]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1059086/</guid>
      <link>https://habr.com/ru/articles/1059086/?utm_campaign=1059086&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/2fd/fa7/58b/2fdfa758b5e45225efef0449193bf5ee.jpg" /><p>Всем привет! Данная статья посвящена регистрации и аутентификации с помощью JWT что помогает нам избавиться от тяжёлых сессий и куки и быть более крутыми и современными разработчиками </p> <a href="https://habr.com/ru/articles/1059086/?utm_campaign=1059086&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 13:45:11 GMT</pubDate>
      <dc:creator><![CDATA[Apollon_krd]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[spring boot]]></category><category><![CDATA[spring security]]></category><category><![CDATA[security]]></category><category><![CDATA[безопасность веб-приложений]]></category><category><![CDATA[spring data jpa]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Java в эпоху ИИ. К чему пришли на пятом MTC Web Services Meetup для разработчиков]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ru_mts/articles/1059050/</guid>
      <link>https://habr.com/ru/companies/ru_mts/articles/1059050/?utm_campaign=1059050&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5d5/403/e1c/5d5403e1cbbe14820ab569aec6479ad6.jpg" /><p>Еще несколько лет назад разработчики на Java в основном обсуждали новые инструменты для создания программ, особенности архитектуры приложений и способы сделать сервисы быстрее и надежнее. Сегодня к этим темам добавился еще один важный вопрос — как искусственный интеллект меняет профессию программиста. Именно с этого началась пятая встреча в рамках MTC Web Services Meetup, которая собрала в Москве Java-разработчиков, архитекторов и инженеров.</p><p>Вместо привычной серии докладов организаторы открыли вечер большой дискуссией о том, как меняется современная разработка, чему теперь стоит учиться, какую роль играют ИИ-ассистенты и как их использование влияет на безопасность решений. Обо всем этом — в материале.</p> <a href="https://habr.com/ru/articles/1059050/?utm_campaign=1059050&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 13:19:40 GMT</pubDate>
      <dc:creator><![CDATA[IvanSayHi (МТС)]]></dc:creator>
      
      <category><![CDATA[разработка]]></category><category><![CDATA[Retry Policy]]></category><category><![CDATA[Spring Data JPA]]></category><category><![CDATA[производительность]]></category><category><![CDATA[Quarkus]]></category><category><![CDATA[митап]]></category><category><![CDATA[тренды java]]></category><category><![CDATA[мтс true tech]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[OpenIDE Pro: публичный релиз для всех! Java, Kotlin, Go, TypeScript, Python, PHP и DB-клиент в одном дистрибутиве]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/haulmont/articles/1058604/</guid>
      <link>https://habr.com/ru/companies/haulmont/articles/1058604/?utm_campaign=1058604&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4dc/3a7/99f/4dc3a799f6a65c08a4953d377e5535bf.png" /><p>Прошло больше года с момента публичного релиза первой версии OpenIDE. Сейчас ею пользуются на постоянной основе десятки тысяч разработчиков в сотнях российских компаний.</p><p>И практически с самого первого дня к нам начали обращаться крупные компании, не с просьбой добавить фичу, а с предложением заплатить. Потому что когда организация всерьёз рассматривает IDE для команды в несколько сотен человек, ей важно знать: есть договор, есть SLA, есть кто-то, кто несёт ответственность и завтра никуда не денется. Бесплатный open-source продукт эту уверенность не даёт сам по себе, как бы качественно он ни был сделан.</p><p>И несмотря на то, что изначально запрос шёл со стороны компаний, мы не хотели делать продукт для галочки. Мы постарались закрыть большинство сценариев использования IDE разработчиками самых разных стеков.</p><p>Так появилась OpenIDE Pro.</p> <a href="https://habr.com/ru/articles/1058604/?utm_campaign=1058604&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 12:19:49 GMT</pubDate>
      <dc:creator><![CDATA[honest_niceman (Haulmont)]]></dc:creator>
      
      <category><![CDATA[OpenIDE Pro]]></category><category><![CDATA[российская IDE]]></category><category><![CDATA[IDE для Java]]></category><category><![CDATA[IDE для Kotlin]]></category><category><![CDATA[IDE для Go]]></category><category><![CDATA[IDE для Python]]></category><category><![CDATA[IDE для TypeScript]]></category><category><![CDATA[IDE для PHP]]></category><category><![CDATA[IDE для Spring]]></category><category><![CDATA[IDE с клиентом баз данных]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что означает «контролируемый ИИ-агент»: разбираем 6 уровней контроля]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/veai/articles/1057380/</guid>
      <link>https://habr.com/ru/companies/veai/articles/1057380/?utm_campaign=1057380&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c6a/bdf/1f3/c6abdf1f3beacbb3b749bcd1eadcf86e.jpg" /><p><strong>«Дайте агенту доступ к терминалу и файловой системе,&nbsp;и он сам всё сделает»</strong>&nbsp;звучит привлекательно ровно до первого случая,&nbsp;когда агент вместо тестового файла отредактировал конфиг продакшена,&nbsp;или переписал файл с ключами API,&nbsp;потому что тот&nbsp;«мешал»&nbsp;задаче.&nbsp;После этого в компании обычно появляется вопрос от безопасника или тимлида:&nbsp;а как мы вообще контролируем,&nbsp;что этот агент делает с кодом?</p><p>Проблема в том,&nbsp;что&nbsp;«контроль над агентом»&nbsp;-&nbsp;это не один переключатель в настройках.&nbsp;Это набор независимых механизмов,&nbsp;каждый из которых ограничивает что-то своё:&nbsp;что агент видит,&nbsp;куда может писать,&nbsp;насколько самостоятельно действует и кто проверяет результат.&nbsp;«Разберём эти механизмы по отдельности на примере того, как это устроено в Veai — агенте, который работает и в OpenIDE, и в JetBrains IDE; в статье возьмём плагин для JetBrains IDE, потому что на нём проще показать конкретные экраны и файлы: так проще говорить предметно, а не абстрактно.»</p> <a href="https://habr.com/ru/articles/1057380/?utm_campaign=1057380&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 08:58:57 GMT</pubDate>
      <dc:creator><![CDATA[dirvika (Veai)]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[kotlin]]></category><category><![CDATA[ai]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[ide]]></category><category><![CDATA[idea]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Грегор Кизалес и др. «Аспектно-ориентированное программирование»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1058826/</guid>
      <link>https://habr.com/ru/articles/1058826/?utm_campaign=1058826&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/56f/ece/162/56fece16244c10e42416f89a9cbbb5d2.jpg" /><p>Идеи аспектно-ориентированного программирования до сих пор широко используются в современных языках и фреймворках — достаточно вспомнить их роль в экосистеме Spring. Однако при всей практической востребованности сама парадигма остается как будто в тени. Чтобы немного это исправить, мы публикуем перевод текста Грегора Кизалеса и его коллег из Xerox PARC — первого полноценного манифеста АОП, представленного на конференции ECOOP ’97 и заложившего основы для дальнейших исследований в этой области.</p> <a href="https://habr.com/ru/articles/1058826/?utm_campaign=1058826&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 04:20:34 GMT</pubDate>
      <dc:creator><![CDATA[dm_ptmkn]]></dc:creator>
      
      <category>история it</category><category>анализ и проектирование систем</category><category>ооп</category><category>аоп</category><category>lisp</category><category>java</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Масштабирование Java-систем реального времени]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1058484/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1058484/?utm_campaign=1058484&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/53f/267/e8c/53f267e8c987ce17dd275b60986fc4aa.png" /><p>Событийно-ориентированная архитектура красиво выглядит на схеме — пока не встречается с требованиями реального времени.</p><p>В переводе от команды <a href="https://t.me/+acrI2N6q080wZjM6">Spring АйО</a> разбирается опыт масштабирования Java-платформы контакт-центра: почему локальные кеши начали расходиться, как повторное воспроизведение Kafka-событий почти сделало бесполезным автомасштабирование, откуда взялось получасовое отставание потребителей и почему часть критических путей пришлось вернуть к синхронному взаимодействию.</p><p>Без войны с Kafka и без универсальных рецептов — только архитектурные компромиссы, которые становятся видны под рабочей нагрузкой.</p> <a href="https://habr.com/ru/articles/1058484/?utm_campaign=1058484&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Jul 2026 11:06:53 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>kafka</category><category>java</category><category>kotlin</category><category>system design</category><category>performance</category><category>performance optimization</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Реализация TUN GSO в кастомном VPN-сервере на Java]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1058404/</guid>
      <link>https://habr.com/ru/articles/1058404/?utm_campaign=1058404&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/936/65a/ee0/93665aee072b9e42332a6801a8470a79.png" /><p>Как одна фича сократила число системных вызовов на TUN-интерфейсе моего VPN почти вдвое — а на bulk-трафике до 44 раз.</p><p>В этой статье пойдет речь о том как работает TUN GSO, зачем нужен <code>virtio_net_hdr</code>, какие подводные камни встретились во время реализации и почему эта технология способна заметно снизить нагрузку на VPN-сервер. Статья будет полезна разработчикам VPN серверов и клиентов.</p> <a href="https://habr.com/ru/articles/1058404/?utm_campaign=1058404&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Jul 2026 06:00:50 GMT</pubDate>
      <dc:creator><![CDATA[easyJet]]></dc:creator>
      
      <category><![CDATA[TUN]]></category><category><![CDATA[GSO]]></category><category><![CDATA[virtio_net_hdr]]></category><category><![CDATA[TSO]]></category><category><![CDATA[VPN]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Java]]></category><category><![CDATA[сетевой стек]]></category><category><![CDATA[системные вызовы]]></category><category><![CDATA[оптимизация производительности]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[DOFAMINE JAVA BAR]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1057818/</guid>
      <link>https://habr.com/ru/articles/1057818/?utm_campaign=1057818&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fa7/6e3/244/fa76e324404b6c32bb44d131ea6b1223.jpg" /><p>Я уволился! Все задрало! Поздравляйте! :) Чуть позже расскажу, что да как.</p><p>Работу, ксати, найти не сложно, за 2 недели оффер я себе нашел, денег чуть поменьше,успокоился и пошел во все тяжкие.</p><p> Скатал в Турцию, залез на Эльбрус(весело, чуть позже расскажу,теперь хочу туда заехать на электровеле), достал жену до печёнок, зафигачил забор на даче и замостил всю дачу плиткой. Но экзистенциальная тоска, деградация и декаданс маячат на горизонте.</p><p>Кстати, кому интересно, как дела у моего человека-соседа — никак. Стаья про него тут <a href="https://habr.com/ru/articles/857774/" rel="noopener noreferrer nofollow">https://habr.com/ru/articles/857774/</a>.   Дом так и не пригоден для жилья. Вчера он сказал, что мечтает в нём успеть пожить в этой жизни, но не факт. </p><p>Как дела у меня — я скатываюсь в думскроллинг, промискуитет и алкоголизм.</p><p>И я решил найти себе хобби и увлечения. Чтобы прям глаза горели, нужно преодолевать и веселиться. И это — рассада помидоров!</p><p>Да шучу. Это будет прям альфа-тестостерон-самец-хобби с блестящими глазами и бессонными ночами. Представляете: вы знакомитесь с девушкой, и она спрашивает вас: «А какие у тебя хобби?» — и ты не говоришь там какие-то бег, сноуборд, оверпрайсовые велики или, боже упаси, падл. Ты говоришь: «На прошлой неделе нам с пацанами было скучно, и мы открыли свою пивнуху».</p><p>Да я уже открывал свою пивнуху и ностальгирую по этим моментам. Статья тут <a href="https://habr.com/ru/articles/739630/" rel="noopener noreferrer nofollow">https://habr.com/ru/articles/739630/</a></p><p>Я снова хочу краудфандинговый IT-AI-пивбар. Краудфандинг ведь раньше было модно? Почему можно краудфандинг на всякую хипстерскую фигню типа коллекции наклеечек или модного стула, а на простой банальный пивбар или шаурмяной ларек нельзя?</p> <a href="https://habr.com/ru/articles/1057818/?utm_campaign=1057818&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Вступить в проект &quot;Разгром&quot;</a>]]></description>
      
      <pubDate>Mon, 13 Jul 2026 04:00:44 GMT</pubDate>
      <dc:creator><![CDATA[dididididi]]></dc:creator>
      
      <category><![CDATA[Бар]]></category><category><![CDATA[Мотивация]]></category><category><![CDATA[Выгорание]]></category><category><![CDATA[хобби]]></category><category><![CDATA[обучение]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Свой AI-прокси на Java: как я пытался подключиться к Gemini]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1058206/</guid>
      <link>https://habr.com/ru/articles/1058206/?utm_campaign=1058206&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/096/1a2/55c/0961a255cf76d6525a4e86541376f087.png" /><p>Для разработки одного из моих проектов: документа BDoc (Book Document альтернатива устаревшим закрытым бинарным форматами такими как IDML, INDD или Scribus SLA) потребовалась нейросеть, которая может держать контекст очень долго. На данный момент для это цели идеально подходит Gemini, так как контекстное окно у Gemini в 1 миллион токенов. Но есть одна загвоздка, компания Google заблокировала некоторые регионы. То есть запросы от этих регионов не будут доходить до google. Рассмотрев все за и против, было принято решение написать небольшую программу на java - ai-proxy. То есть прокси для нейросетей.  </p> <a href="https://habr.com/ru/articles/1058206/?utm_campaign=1058206&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 11 Jul 2026 23:03:01 GMT</pubDate>
      <dc:creator><![CDATA[FilipLinx]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[spring boot]]></category><category><![CDATA[spring webflux]]></category><category><![CDATA[reverse proxy]]></category><category><![CDATA[gemini api]]></category><category><![CDATA[openai api]]></category><category><![CDATA[anthropic api]]></category><category><![CDATA[docker]]></category><category><![CDATA[webclient]]></category><category><![CDATA[обход блокировок]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ИИ и автотесты: как поймать ложную зелёную галочку?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1047068/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1047068/?utm_campaign=1047068&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/234/14a/4b8/23414a4b852523fdb611efea4cb62630.png" /><p>ИИ уже умеет генерировать тесты пачками, но&nbsp;зелёный пайплайн по‑прежнему может врать. В&nbsp;статье разбираем на&nbsp;примере Java и JUnit, как&nbsp;отличить тест, который действительно ловит баги, от&nbsp;теста, который просто создаёт иллюзию проверки. </p> <a href="https://habr.com/ru/articles/1047068/?utm_campaign=1047068&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Jul 2026 16:50:49 GMT</pubDate>
      <dc:creator><![CDATA[sproshchaev (OTUS)]]></dc:creator>
      
      <category><![CDATA[автотесты]]></category><category><![CDATA[ИИ в тестировании]]></category><category><![CDATA[юнит-тесты]]></category><category><![CDATA[JUnit]]></category><category><![CDATA[ложноположительные тесты]]></category><category><![CDATA[зелёный пайплайн]]></category><category><![CDATA[покрытие кода]]></category><category><![CDATA[ревью тестов]]></category><category><![CDATA[mutation testing]]></category><category><![CDATA[качество тестов]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[От стримов к вебсокетам: как я боролся с буферизацией и наконец победил]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/beeline_cloud/articles/1057902/</guid>
      <link>https://habr.com/ru/companies/beeline_cloud/articles/1057902/?utm_campaign=1057902&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5fa/ae6/3bd/5faae63bd4ca54cb259360bc3a4885dc.png" /><p>Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ&nbsp;<a href="https://cloud.beeline.ru/?utm_source=owned_media&amp;utm_medium=habr&amp;utm_campaign=beeline_cloud&amp;utm_term=bufer">Beeline Cloud</a>. Продолжаю цикл статей о клиенте для облачного сервиса Ollama.&nbsp;<a href="https://habr.com/ru/companies/beeline_cloud/articles/1031708/">В первой части</a>&nbsp;я рассказал о начале работы над клиентом и оставил пасхалку про сломанный стриминг.&nbsp;<a href="https://habr.com/ru/companies/beeline_cloud/articles/1046111/">Во второй</a>&nbsp;мы переехали с PostgreSQL на MongoDB, добавили анализ проектов с уважением к&nbsp;.gitignore&nbsp;и оптимизировали фронтенд.</p> <a href="https://habr.com/ru/articles/1057902/?utm_campaign=1057902&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Jul 2026 11:49:29 GMT</pubDate>
      <dc:creator><![CDATA[kbooo (Beeline Cloud)]]></dc:creator>
      
      <category><![CDATA[spring ai]]></category><category><![CDATA[spring boot]]></category><category><![CDATA[java]]></category><category><![CDATA[websocket]]></category><category><![CDATA[stomp]]></category><category><![CDATA[server-sent events]]></category><category><![CDATA[sse]]></category><category><![CDATA[ollama]]></category><category><![CDATA[llm]]></category><category><![CDATA[typescript]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мне надоело писать один и тот же код. Поэтому я сделал Featuregen]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1056776/</guid>
      <link>https://habr.com/ru/articles/1056776/?utm_campaign=1056776&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/59a/df5/774/59adf5774ba5e895dfaf7f9600c8c415.png" /><p>Привет, Хабр. Я уже не тот беззаботный парнишка, что собирал 486-й компьютер. Время бежит, я <s>скуф</s> успел поработать с C++, C#, Java и Kotlin, последние 10 лет занимаюсь мобильной разработкой. Программирование я до сих пор люблю <s>потому что больше ничего не умею</s>. Но чем дольше работаешь, тем чаще ловишь себя на мысли, что от некоторых вещей начинает подгорать. Сегодня я расскажу, как я попытался избавиться хотя бы от части таких вещей.</p> <a href="https://habr.com/ru/articles/1056776/?utm_campaign=1056776&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Jul 2026 18:23:17 GMT</pubDate>
      <dc:creator><![CDATA[AWE64]]></dc:creator>
      
      <category><![CDATA[kotlin]]></category><category><![CDATA[java]]></category><category><![CDATA[shell]]></category><category><![CDATA[ai]]></category><category><![CDATA[programming]]></category><category><![CDATA[software development]]></category><category><![CDATA[software engineering]]></category><category><![CDATA[diy]]></category><category><![CDATA[development]]></category><category><![CDATA[tooling]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Самокорректирующийся структурированный вывод в Spring AI 2.0]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1057472/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1057472/?utm_campaign=1057472&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/733/258/884/7332588842eb05b8ab18103a7e9202d9.png" /><p>Софту всё чаще приходится интегрироваться с LLM. И тут быстро всплывает неприятная деталь: модели хорошо пишут текст, но не всегда стабильно возвращают данные в строгой структуре.</p><p>Даже если явно попросить ответ по JSON Schema, модель может добавить пояснение, пропустить поле или вернуть не тот тип. Нативный structured output у части провайдеров есть, но он работает не везде и не одинаково.</p><p>В новом переводе от команды <a href="https://t.me/+acrI2N6q080wZjM6">Spring АйО</a> разбираем, как в Spring AI 2.0 решается эта проблема.</p> <a href="https://habr.com/ru/articles/1057472/?utm_campaign=1057472&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Jul 2026 11:26:56 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>kotlin</category><category>spring</category><category>spring ai</category><category>ai</category><category>spring framework</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Создание харнесса для код-агентов под enterprise-фреймворк на Java]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/haulmont/articles/1057230/</guid>
      <link>https://habr.com/ru/companies/haulmont/articles/1057230/?utm_campaign=1057230&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f56/22e/39a/f5622e39abd7faa0ca8308c279d98399.png" /><p>Вайб-кодинг, или AI-assisted development, отлично работает на уровне прототипа: агент получает текстовое ТЗ и быстро собирает первый рабочий вариант. Но в корпоративной разработке этого мало.</p><p>Проблема начинается там, где нужно не просто написать код, а собрать полноценное корпоративное приложение. В Джеймикс между «экран открылся» и «система действительно работает как надо» лежит пропасть.</p><p>В какой-то момент мы задались вопросом: можно ли научить ИИ-агента проходить этот путь самостоятельно? Можно, если собрать вокруг него <strong>харнесс</strong> (англ. <strong>harness</strong>). Именно о нем статья.</p><p>В Джеймикс мы строим этот мост как инженерный харнесс: набор скиллов, инструментов и проверок, который помогает довести работающий прототип до реально работающей системы. Для его строительства мы используем агентную платформу <a href="https://kodacode.ru/?utm_source=jmixarticle&amp;utm_medium=jmixhabr&amp;utm_campaign=jmix">KodaCode</a> (далее — Koda) в собственной разработке на Джеймикс и регулярно гоняем ее на бенчмарках. Если оценивать по делу, Jmix-задачи агент решает уверенно. Разброс от сессии к сессии есть, мы видим его в собственных прогонах, и строгие pass/fail-бенчмарки его даже преувеличивают. Поэтому ставка не на идеального агента: обвязка и контроль не дают этому разбросу попасть в ваш продакшен. Это <a href="http://SKILLS.md">SKILLS.md</a> под Джеймикс, преднастроенные инструменты и проверки на выходе.&nbsp;</p><p>Ниже разберем шесть составляющих такого харнесса. Мы собрали их в KodaCode для Jmix-проектов: пакет навыков, преднастроенные инструменты и проверки на выходе. Это можно собрать самостоятельно, но на практике такой путь занимает месяцы проб и ошибок.</p> <a href="https://habr.com/ru/articles/1057230/?utm_campaign=1057230&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Jul 2026 07:00:13 GMT</pubDate>
      <dc:creator><![CDATA[KartonDev (Haulmont)]]></dc:creator>
      
      <category><![CDATA[harness]]></category><category><![CDATA[harness engineering]]></category><category><![CDATA[ai]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[haulmont]]></category><category><![CDATA[jmix]]></category><category><![CDATA[kodacode]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы подружили динамические тесты JUnit 5 с Госуслугами]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/rtlabs/articles/1056672/</guid>
      <link>https://habr.com/ru/companies/rtlabs/articles/1056672/?utm_campaign=1056672&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/95d/7a2/acc/95d7a2accfde9498b26e8f6f57d4ddc9.png" /><p><strong><br></strong>Привет, Хабр! На связи Максим Кацал, руководитель направления автоматизированного тестирования в РТЛабс. </p><p>Мы с командой на Госуслугах тестируем огромное количество услуг. В каждой из них — тысячи, миллионы сценариев. Писать автотесты руками — безумие, а поддерживать их очень больно.</p><p>В статье расскажу, как мы научились генерировать тесты прямо из JSON-схемы услуги. JUnit 5 + @TestFactory + рекурсивный обход графа маршрутов. Фреймворк, который сам прокладывает путь пользователя по приложению-конструктору, а потом проигрывает его в браузере.</p><p>Ниже раскрою архитектуру, код, подводные камни, опишу плюсы и минусы такого подхода.</p> <a href="https://habr.com/ru/articles/1056672/?utm_campaign=1056672&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2026 15:00:11 GMT</pubDate>
      <dc:creator><![CDATA[mkatsal (РТЛабс)]]></dc:creator>
      
      <category><![CDATA[тестирование]]></category><category><![CDATA[динамические тесты]]></category><category><![CDATA[автотесты]]></category><category><![CDATA[low-code]]></category><category><![CDATA[allure]]></category><category><![CDATA[junit 5]]></category><category><![CDATA[selenide]]></category><category><![CDATA[json-схема]]></category><category><![CDATA[pageobject]]></category><category><![CDATA[госуслуги]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Разбираемся с лицензией Redis. И что выбрать продуктовой команде]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1056598/</guid>
      <link>https://habr.com/ru/articles/1056598/?utm_campaign=1056598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e56/477/ca2/e56477ca2a3e7fe78ffe8759f99c2207.jpg" /><p>Redis долго был понятным выбором: BSD-лицензия, можно использовать почти где угодно. После смены лицензии в 2024 году всё стало сложнее: RSAL, SSPL, AGPLv3, Valkey, форки и вопросы к юристам.</p><p>В статье рассматриваю этот вопрос со стороны обычных продуктовых команд, а не облачных провайдеров. Если Redis у вас внутри как кеш, очередь или для сессий, что реально меняется, где начинаются риски и что сегодня разумнее выбрать - Redis 8, Valkey или другой Redis-compatible вариант.</p> <a href="https://habr.com/ru/articles/1056598/?utm_campaign=1056598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2026 09:49:15 GMT</pubDate>
      <dc:creator><![CDATA[rurikovich]]></dc:creator>
      
      <category><![CDATA[Redis]]></category><category><![CDATA[Valkey]]></category><category><![CDATA[AGPLv3]]></category><category><![CDATA[SSPL]]></category><category><![CDATA[RSAL]]></category><category><![CDATA[BSD]]></category><category><![CDATA[open source]]></category><category><![CDATA[keydb]]></category><category><![CDATA[лицензия]]></category><category><![CDATA[osi]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Reflection замедляет ваш Java-код. Почему?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1056734/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1056734/?utm_campaign=1056734&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/09b/022/59c/09b02259cb937740d4937eaec11fbaa4.png" /><p>Сколько раз вы слышали тезис о том, что в <strong>Java Reflection тормозит, и лучше его избегать</strong>. Насколько это правда?</p><p>В новом переводе от команды <a href="https://t.me/+acrI2N6q080wZjM6">Spring АйО</a> рассмотрим, почему производительность reflection-а имела проблемы.</p> <a href="https://habr.com/ru/articles/1056734/?utm_campaign=1056734&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2026 09:23:32 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>kotlin</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Когда может пригодиться экзотика в ООП: миксины/трейты/аспекты]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1056780/</guid>
      <link>https://habr.com/ru/articles/1056780/?utm_campaign=1056780&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e1b/f90/473/e1bf9047340f1f334897331201833e11.png" /><p>Когда может пригодиться экзотика. Я много раз обращался к использованию множественного наследования в языках программирования  и платформах. Но как правило это обращение было больше теоретическим. Я не видел в его применении значительных преимуществ, способных превзойти альтернативные подходы, с учётом рисков его применения. Но в это раз случай представился. И я покажу этот пример.</p> <a href="https://habr.com/ru/articles/1056780/?utm_campaign=1056780&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2026 02:59:26 GMT</pubDate>
      <dc:creator><![CDATA[mahairod]]></dc:creator>
      
      <category><![CDATA[миксины]]></category><category><![CDATA[аспекты]]></category><category><![CDATA[трейты]]></category><category><![CDATA[ооп]]></category><category><![CDATA[адаптер]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Spring Security: аутентификация через REST]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1056696/</guid>
      <link>https://habr.com/ru/articles/1056696/?utm_campaign=1056696&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3a7/32f/e2e/3a732fe2ee18f55fed049fcb7680e5e5.jpg" /><p>В данной статье мы научились реализовывать аутентификацию при помощи Spring Security и протестировали её же.</p> <a href="https://habr.com/ru/articles/1056696/?utm_campaign=1056696&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Jul 2026 16:48:15 GMT</pubDate>
      <dc:creator><![CDATA[Apollon_krd]]></dc:creator>
      
      <category><![CDATA[security]]></category><category><![CDATA[docker-compose]]></category><category><![CDATA[безопасность веб-приложений]]></category><category><![CDATA[spring]]></category><category><![CDATA[spring data jpa]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Veai + TMS: как подключить Allure TestOps и Test IT к ИИ-агенту в IDE и чинить упавшие автотесты]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/veai/articles/1056438/</guid>
      <link>https://habr.com/ru/companies/veai/articles/1056438/?utm_campaign=1056438&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e9d/d70/ec1/e9dd70ec1bd16a0dff3098d5f7c98e55.jpg" /><p>Автотесты падают,&nbsp;а разбор занимает время:&nbsp;нужно открыть отчёт в системе управления тестами,&nbsp;понять причину падения,&nbsp;залезть в репозиторий,&nbsp;найти нужный тест и решить,&nbsp;где ошибка:&nbsp;в самом тесте или в приложении.&nbsp;Veai умеет забирать эту рутину на себя.&nbsp;Агент подключается к TMS&nbsp;(Test Management System),&nbsp;читает данные о падении по ссылке и предлагает правку прямо в открытом проекте.</p><p>В статье разберём,&nbsp;что такое <strong>TMS в контексте Veai,&nbsp;как подключить Allure TestOps и Test IT</strong>,&nbsp;и как агент разбирает причину падения автотеста:&nbsp;от инфраструктуры до флаков.</p> <a href="https://habr.com/ru/articles/1056438/?utm_campaign=1056438&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Jul 2026 11:10:26 GMT</pubDate>
      <dc:creator><![CDATA[dirvika (Veai)]]></dc:creator>
      
      <category><![CDATA[программирование]]></category><category><![CDATA[java]]></category><category><![CDATA[idea]]></category><category><![CDATA[ide]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[openide]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[ии и машинное обучение]]></category><category><![CDATA[ии-ассистент]]></category><category><![CDATA[ии-модель]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Java Digest #37: что нового в JDK 27, Spring Boot 4.1 и Hibernate 8.0]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/tbank/articles/1055892/</guid>
      <link>https://habr.com/ru/companies/tbank/articles/1055892/?utm_campaign=1055892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/91a/a06/230/91aa062305a3fe4fc4b8e228ba038517.jpg" /><p>Всем привет! 👋👋👋👋👋Мы — Java-разработчики Т-Банка: <a href="https://habr.com/ru/users/evertimes/">Андрей</a>, <a href="https://habr.com/ru/users/MuonKvark/">Арсений</a>, <a href="https://habr.com/ru/users/roma00712/">Роман</a>, <a href="https://habr.com/ru/users/maximovkl/">Константин</a> и <a href="https://habr.com/ru/users/kpolshchikov/">Константин.</a> Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.</p><p>В этом выпуске о том, что Java наконец-то делает шаг в будущее: value-классы впервые выходят в preview, а в JDK 27  по умолчанию включаются компактные заголовки объектов и G1. Наблюдаем сдвиг платформы в сторону производительности, безопасности и удобства.</p> <a href="https://habr.com/ru/articles/1055892/?utm_campaign=1055892&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 06 Jul 2026 13:29:29 GMT</pubDate>
      <dc:creator><![CDATA[kpolshchikov (Т-Банк)]]></dc:creator>
      
      <category><![CDATA[java]]></category><category><![CDATA[jdk27]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
