This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😁39⚡7👍4❤3👎2
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Экосистема Spring, секьюрность Docker, как не уронить базу из-за кеша | Spring АйО Подкаст №50
– Стань частью Spring АйО × JPoint
– HotSpot AOT-кэш: стартуем быстрее, греемся меньше
– Программирование, ориентированное на данные, для Java: за пределами record-классов
– Java продолжает готовиться к удалению finalize()
– Amplicode: Ctrl+C → Ctrl+V на стероидах
– Joker 2025: Федор Сазонов, Илья Сазонов — «От антипаттерна к инструменту: скрытая польза открытой сессии»
– Axiom JDK на Snow One
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥4
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18⚡4❤2😁2🔥1🤯1
Forwarded from OpenIDE
Reksoft ❤🔥 OpenIDE
В прошлом году Reksoft перевёл Kotlin/Java-команды на OpenIDE с Amplicode из-за ограничений лицензий JetBrains.
Тестировали Eclipse, VS Code и GigaIDE. Первые два потребовали много ручной настройки и уступали по навигации и поддержке Spring/Kotlin. GigaIDE оказалась близка к IntelliJ Community, но до Dev Experience IntelliJ Ultimate не дотянула.
OpenIDE с Amplicode закрыла ключевые требования: генерация CRUD и тестов, docker-compose из интерфейса, встроенный HTTP-клиент, reactive debugger и интеграция с Git.
В итоге почти все JVM-команды в Reksoft сейчас используют OpenIDE.
📚 Подробнее в блоге компании Reksoft на Habr: История одного безальтернативного переезда. Почему мы выбрали OpenIDE
В прошлом году Reksoft перевёл Kotlin/Java-команды на OpenIDE с Amplicode из-за ограничений лицензий JetBrains.
Тестировали Eclipse, VS Code и GigaIDE. Первые два потребовали много ручной настройки и уступали по навигации и поддержке Spring/Kotlin. GigaIDE оказалась близка к IntelliJ Community, но до Dev Experience IntelliJ Ultimate не дотянула.
OpenIDE с Amplicode закрыла ключевые требования: генерация CRUD и тестов, docker-compose из интерфейса, встроенный HTTP-клиент, reactive debugger и интеграция с Git.
В итоге почти все JVM-команды в Reksoft сейчас используют OpenIDE.
📚 Подробнее в блоге компании Reksoft на Habr: История одного безальтернативного переезда. Почему мы выбрали OpenIDE
🔥26👍16😁5❤4🤔3🤯1
Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)
Records и pattern matching сделали чтение вложенных данных в Java удобным. Но обновить поле глубоко внутри неизменяемой структуры все еще больно: чтобы поменять одну строку (street у адреса менеджера отдела), приходится вручную пересобирать каждый record по пути. В примере это около 25 строк с каскадом копирующих конструкторов и риском ошибки на каждом уровне.
Потенциально новые методы
Оптики закрывают этот разрыв: это типобезопасные, компонуемые пути доступа, которые позволяют один раз описать маршрут и дальше читать/писать по нему. Базовая оптика - Lens (ровно 1 цель), есть Prism (0/1 вариант sealed), Affine (0/1 без построения), Traversal (0..many для коллекций). Скомпонованные линзы сами выполняют промежуточную реконструкцию, и обновление превращается в одно простое выражение.
📚 Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1001066/
Records и pattern matching сделали чтение вложенных данных в Java удобным. Но обновить поле глубоко внутри неизменяемой структуры все еще больно: чтобы поменять одну строку (street у адреса менеджера отдела), приходится вручную пересобирать каждый record по пути. В примере это около 25 строк с каскадом копирующих конструкторов и риском ошибки на каждом уровне.
Потенциально новые методы
withX() в record помогают мало: обновленное значение все равно нужно протаскивать назад через Address -> Employee -> Department -> Company. Даже JEP 468 (with для records, preview в JDK 25) упрощает один уровень, но не поддерживает вложенное обновление, поэтому получаются цепочки with на каждом слое.Оптики закрывают этот разрыв: это типобезопасные, компонуемые пути доступа, которые позволяют один раз описать маршрут и дальше читать/писать по нему. Базовая оптика - Lens (ровно 1 цель), есть Prism (0/1 вариант sealed), Affine (0/1 без построения), Traversal (0..many для коллекций). Скомпонованные линзы сами выполняют промежуточную реконструкцию, и обновление превращается в одно простое выражение.
📚 Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1001066/
🔥18🤯11❤8👍4🤔1
Соблюдение определённой структуры пакетов или архитектуры крайне важно. Особенно в Java, где для корректной работы некоторые элементы должны быть
public или действительно доступны за пределами своего пакета. В новом переводе от команды Spring АйО рассмотрим библиотеку с открытым исходным кодом ArchUnit, которая помогает в тех случаях, когда одного компилятора недостаточно.
📚 Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1001486/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍17🔥10❤5
В одном и том же
null часто прячут разные смыслы: “нет значения”, “неизвестно”, “неинициализировано”. Потом это всплывает в NPE и в кривой логике исполнения.В Ceylon эту проблему решают через типовую систему, через Union типы. Подробнее, в переводе от Spring АйО.
Комментарий от Михаила Поливаха:
Статья достаточно старая, написанная Лукасом Едером (автор Jooq) про реализацию nullability Ceylon.
Конечно, Ceylon довольно старый язык, мёртвый на данный момент. Его дизайнером кстати когда-то выступал сам Gavin King (тот самый автор Hibernate).
Тем не менее, это единственный относительно известный на моей памяти язык поверх JVM, который поддерживал Union типы (не считая Scala 3), через которые и была сделана реализация nullable типов в Ceylon.
Статья больше призвана расширить Ваш кругозор и призвать Вас к осмысленной дискуссии. Приятного чтения.
📚Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1001982/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13❤10👍9⚡1
TechMeetup #11: Spring АйО x МТС Банк
Осталось 5 дней...
В программе:
Доклады от экспертов Spring АйО:
👤 Евгений Сулейманов: HTTP Service Clients + API Versioning в Spring Boot 4: типобезопасный REST без зоопарка клиентов (и без боли при эволюции API);
👤 Павел Кислов: Тренды в Spring. Куда мы движемся и что поменялось в Spring Framework за 2025 год.;
👤 Михаил Поливаха: Встречайте Axelix: Спецназ для вашей Spring Boot экосистемы;
👥 Дискуссия "Мы видим перед собой последнее поколение разработчиков?" со взглядом бизнеса, менеджмента и разработки:
• Федор Сазонов, CEO OpenIDE;
• Павел Кислов, Developer Advocate Amplicode;
• Марат Рахимов, Директор по AI-трансформации МТС Банка;
🗓 Когда: 26 февраля 2026, с 19:00 до 22:30 GMT+03:00 (онлайн и офлайн);
📍 Где (офлайн): Москва, м. Технопарк. Проспект Андропова 18, корпус 1. (Здание с вывеской МТС Банк, Медиарум);
💻 Онлайн трансляция будет на странице мероприятия
требуется регистрация на формат посещения "Онлайн"
👍 Участие: бесплатно
🎉 Нетворкинг: бесценно
⭐ Регистрация продолжается до 23-го февраля на странице мероприятия
Количество мест ограничено, успей забронировать место
Spring АйО | МТС Банк
---
Рассылка подтверждений будет до 24-го февраля включительно.
Не забудь проверить свою почту, включая папку «Спам» и «Промо».
TechMeetup | CFP: Подать доклад | Общалка и вопросы | Записи
Осталось 5 дней...
В программе:
Доклады от экспертов Spring АйО:
• Федор Сазонов, CEO OpenIDE;
• Павел Кислов, Developer Advocate Amplicode;
• Марат Рахимов, Директор по AI-трансформации МТС Банка;
требуется регистрация на формат посещения "Онлайн"
Количество мест ограничено, успей забронировать место
Spring АйО | МТС Банк
---
Рассылка подтверждений будет до 24-го февраля включительно.
Не забудь проверить свою почту, включая папку «Спам» и «Промо».
TechMeetup | CFP: Подать доклад | Общалка и вопросы | Записи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤8🔥4
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Java без Spring`а, это ИИ подкаст, HotSpot AOT-кэш | Spring АйО Подкаст №51
– Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)
– Руководство по ArchUnit — как модульно тестировать архитектуру
– Ceylon и NULL: как сделать null нормальным
– TechMeetup #11: Spring АйО x МТС Банк
– OpenIDE: Reksoft & OpenIDE
– AxiomJDK: Java Rock Star Meetup
– Amplicode: Создание JPA/JDBC сущностей из таблиц базы данных
– OpenIDE: АНДРЕЙ КАРПАТЫЙ ПЕРЕПИСАЛ GPT | OPENCLAW ОБЪЯВИЛ ВОЙНУ | TELEGRAM СНОВА БЛОКИРУЮТ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥2
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤9👍8⚡1
Forwarded from OpenIDE
⚡️ Haiku обошла Opus | Claude слил $1.78 млн | Нейросеть впаяли в кремний
Второй выпуск еженедельных IT-новостей от OpenIDE.
В этот раз: вайбкодер случайно получил доступ к 7 000+ пылесосам, вышли Sonnet 4.6 и Gemini 3.1 Pro, Haiku со скиллами обошла Opus без них, Claude Code Security и потеря $1,78 млн из-за кода от Claude.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Второй выпуск еженедельных IT-новостей от OpenIDE.
В этот раз: вайбкодер случайно получил доступ к 7 000+ пылесосам, вышли Sonnet 4.6 и Gemini 3.1 Pro, Haiku со скиллами обошла Opus без них, Claude Code Security и потеря $1,78 млн из-за кода от Claude.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🔥10👍6❤5
JVM в первую очередь процесс операционной системы. Но важно понимать, что требования к этому процессу на production отличатся от требований на workstation-е разработчика.
Если для разработчику важно, чтобы IDE работала быстро и не потребляла всю возможную память на машине, то для серверных JVM важно потреблять максимальный предоставленный ресурс и работать предельно быстро.
В новом переводе от команды Spring АйО разберем, какие существуют базовые настройки кучи, GC и CPU помогают синхронизировать JVM с лимитами контейнера и не переплачивать за простаивающие ресурсы.
Комментарий от Михаила Поливаха:
Все оптимизации в статье применимы не только к ARM-овым CPU, но и к x86. Это важно, потому что большая часть Ваших серверных workload-ов, даже если Вы об этом не знаете, они бегут на x86_64. Поэтому, статья для Вас тоже актуальна.
📚Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/1003602/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤9🔥4⚡1
❗️Spring АйО на Java Rock Stars meetup ❗️
Друзья, по традиции, эксперты Spring АйО выступят на ближайшем Java Rock Stars meetup.
5 марта. Москва. Лофт Casa Picassa на Бауманской.
💬 В программе:
– Илья и Фёдор Сазоновы расскажут о том, как обычные проекты внезапно начинают задыхаться при масштабировании, хотя пользователей и данных там не так много. Узнаем о причине проблем с производительностью и главном правиле работы с реляционными БД, которое регулярно нарушают.
– Александр Ланцов покажет, как работа со строками и произвольным Unicode в Java может поставить в тупик даже опытного разработчика, и разберёт типичные ошибки на примерах.
Для участия нужна только регистрация.
Друзья, по традиции, эксперты Spring АйО выступят на ближайшем Java Rock Stars meetup.
5 марта. Москва. Лофт Casa Picassa на Бауманской.
💬 В программе:
– Илья и Фёдор Сазоновы расскажут о том, как обычные проекты внезапно начинают задыхаться при масштабировании, хотя пользователей и данных там не так много. Узнаем о причине проблем с производительностью и главном правиле работы с реляционными БД, которое регулярно нарушают.
– Александр Ланцов покажет, как работа со строками и произвольным Unicode в Java может поставить в тупик даже опытного разработчика, и разберёт типичные ошибки на примерах.
Для участия нужна только регистрация.
🔥21❤11👍9⚡1
Forwarded from Amplicode
🔥 Тестирование API простыми словами + практика | Postman, Connekt
В новом видео разбираем тестирование API с нуля: что такое API, как работает HTTP, и переходим к практике в двух инструментах — Postman и Connekt.
В части про Postman: создаём GET и POST запросы, импортируем коллекции из Swagger, cURL и браузера, перехватываем трафик и настраиваем переменные окружения.
Дальше — то же самое в Connekt: импорт из Postman, работа с эндпоинтами Spring-приложения, все основные HTTP-методы, авторизация, работа с файлами, assertions и сложные сценарии с цепочками запросов.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
В новом видео разбираем тестирование API с нуля: что такое API, как работает HTTP, и переходим к практике в двух инструментах — Postman и Connekt.
В части про Postman: создаём GET и POST запросы, импортируем коллекции из Swagger, cURL и браузера, перехватываем трафик и настраиваем переменные окружения.
Дальше — то же самое в Connekt: импорт из Postman, работа с эндпоинтами Spring-приложения, все основные HTTP-методы, авторизация, работа с файлами, assertions и сложные сценарии с цепочками запросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18🔥13❤9
✈️ Когда использовать параллельный стрим в Java?
Параллельные стримы работают через
Где параллельные стримы реально полезны:
📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1005180/
parallelStream() не всегда быстрее: в бенчмарке sum(1..100) в параллели занял ~35 476 нс/оп против ~68 нс/оп в последовательном.Параллельные стримы работают через
ForkJoinPool.commonPool (кол-во потоков: ядра CPU - 1). Порядок обработки элементов не фиксирован, а некорректный reduce может дать неверный итог: identity прибавляется в каждом worker`е (например, reduce(5, sum)).Где параллельные стримы реально полезны:
– Большой объем данных и много вычислений на элемент (так называемая модель NQ: чем больше N*Q, тем выше шанс ускорения; для тривиального суммирования эмпирически N > 10 000).
– Источник легко и равномерно делится: массивы иArrayList. На 1 000 000 элементовArrayListв бенчмарке быстрее в параллели (~2.0 мс vs ~5.4 мс).
– Дешевая операция объединения результатов: reduce/sum обычно выигрывают. Например, сумма наArrayListбыстрее в параллели (~2.07 мс vs ~5.51 мс).
– Хорошая локальность данных. Например, массив примитивов (int[]) даёт больший выигрыш, чем массив ссылок (Integer[]), потому что меньше скачков по памяти.
– Есть I/O с большим числом объектов: поиск по 1500 текстовым файлам черезFiles.walkв параллели быстрее (~10.8 мс vs ~13.3 мс).
📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1005180/
2👍22❤6🔥5⚡1
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤8👍5😁1
Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена.
Сервисы пишут события, стримы обрабатываются в реальном времени, данные реплицируются по датацентрам. И почти в каждом таком сценарии возникает фундаментальный вопрос:
Как понять, что произошло раньше, а что позже, если глобального времени не существует?
Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах.
📚 Подробнее тут: https://habr.com/ru/companies/spring_aio/articles/1005934/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍8❤5