Библиотека джависта | Java, Spring, Maven, Hibernate

Библиотека джависта | Java, Spring, Maven, Hibernate

@javaproglib

Все самое полезное для Java-разработчика в одном канале.Учиться у нас: clc.to/AATM8wДля обратной связи: @proglibrary_feeedback_botПо рекламе: @proglib_advРКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4

22 339подписчиков
Ежедневно🇷🇺

Похожие каналы

Все →

Последние посты

Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🐸Библиотека джависта#DevLife

18 июн. 2026 г.1 720В Telegram

⏰ Уже сегодня в 19:00 (МСК) стартует открытый урок!Тема:«Мультиагентные системы: почему большинство архитектур переусложнены»🔥 За 90 минут разберёмся, когда действительно стоит строить мультиагентную систему, а когда она только добавляет сложность, расходы и новые точки отказа.Поговорим о критериях выбора архитектуры, типичных ошибках и ограничениях современных ИИ-агентов, которые важно учитывать ещё до внедрения в продукт.🎙️ Спикер — Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru.🎁 Для всех участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов».👉 Успей присоединиться к уроку

18 июн. 2026 г.1 590В Telegram

👾 Collectors.toMap падает там, где HashMap.put молчитПривычка к map.put() подводит при переходе на стримы:Map<String, User> byEmail = users.stream() .collect(Collectors.toMap(User::email, u -> u));Здесь сразу две мины:1. Дубликаты ключей → IllegalStateException. Map.put тихо перезаписал бы значение, а toMap без merge-функции бросает «Duplicate key». Фикс — третий аргумент:.collect(Collectors.toMap(User::email, u -> u, (a, b) -> b)); // оставить последний2. null в значении → NullPointerException. Под капотом toMap использует Map.merge, который по контракту не допускает null-значение. HashMap сам по себе null-значения разрешает, поэтому баг ловится не на ровной коллекции, а на «редких» данных в проде:.collect(Collectors.toMap(User::email, User::nickname)); // nickname == null -> NPEЕсли значение может быть null, собирай вручную в HashMap через forEach/reduce или фильтруй заранее. Стоит держать в голове: toMap строже, чем тот Map, который он создаёт.══════ Навигация ══════Вакансии • Задачи • Собесы🐸 Библиотека джависта #CoreJava

17 июн. 2026 г.1 920В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🐸Библиотека джависта#DevLife

16 июн. 2026 г.1 810В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🪤 «Потом отрефакторим» = «никогда»Разраб с 5+ годами опыта собрал 5 вещей, которые он хотел бы услышать в свой первый год, но услышал гораздо позже и гораздо дороже.Казалось бы, материал для джунов. Но самое неприятное в том, что половину пунктов мидлы и сеньоры узнают как свои текущие грабли, а не как воспоминание:— тот самый общий модуль, который «у всех меняется одинаково» — ревью в стиле «так писать нельзя» без единого «почему» — почему бесполезные тесты хуже, чем их отсутствиеБез занудства и пафоса, на живых рабочих историях (включая ту, где «красивое ТЗ с картинками» оказалось указано не на тот участок проекта).Хороший повод сверить часы: что из этого вы уже передаёте своим джунам, а что всё ещё откладываете сами.🔗 Подробнее══════ Навигация ══════Вакансии • Задачи • Собесы🐸 Библиотека джависта #CoreJava

16 июн. 2026 г.2 060В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

⌛ Сохраняйте шпаргалку по Kubernetes🐸 Библиотека джависта #CoreJava

15 июн. 2026 г.1 820В Telegram

🔍 Магия awkЛоги сервера в plain text, нужно быстро подсчитать количество запросов по HTTP-статусам? awk — ваш Swiss Army Knife для обработки текстовых данных прямо в терминале.🔹 Зачем это нужно— Мгновенная агрегация данных из логов без загрузки в БД или Python.— Работает с любым текстовым форматом.— Есть на каждом сервере.🔹 Как использовать— Подсчёт по статусам (nginx access.log): awk '{print $9}' access.log | sort | uniq -c | sort -rn— Среднее время ответа: awk '{sum+=$NF; n++} END {print sum/n}' access.log— Только 5xx ошибки: awk '$9 ~ /^5/' access.log— Топ-10 IP по количеству запросов: awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10— Вывести конкретные поля: awk -F',' '{print $1, $3}' data.csv═══════ Навигация ══════Вакансии • Задачи • Собесы🐸 Библиотека джависта #Enterprise

15 июн. 2026 г.1 840В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🐸Библиотека джависта#DevLife

14 июн. 2026 г.1 890В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🎥 До открытого урока — несколько дней. Подготовили небольшую подборку материалов от нашего спикера Дмитрия Юдина.Дмитрий руководит AI/ML-направлением в Сloud․ru и развивает Evolution AI Factory — среду для работы с GenAI: от инфраструктуры обучения LLM до внедрения интеллектуальных агентов.С чего начать:📺 AI-инструменты для разработчиков — как код, автотесты и ассистенты меняют рутину инженера.📺 AI-эволюция бизнеса в эпоху генеративных моделей — агентные системы в реальных продуктах.📺 Разработка мертва? — дискуссия о будущем профессии и роли AI в ней.📖 Применение LLM в бизнесе — статья Дмитрия о практике внедрения и роли облака.Одна из ключевых тем Дмитрия — практическое применение агентных систем и их ограничения.Именно об этом — бесплатный урок 18 июня в 19:00: «Мультиагентные системы: почему большинство архитектур переусложнены» 🔥🎁 Для участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов».👉 Успей занять место на открытом уроке

14 июн. 2026 г.1 770В Telegram

✔️ Java-тест: задачка с реального собесаНаш подписчик прислал реальную задачу с собеса в Яндекс. Сможете решить? 👇📦 Задание Реализуйте банкомат и тесты к нему. Инициализируется набором купюр, умеет выдавать купюры под заданную сумму либо отвечать отказом. При выдаче купюры списываются с баланса./** * Банкомат. * Инициализируется набором купюр, выдаёт купюры под сумму либо отказывает. * При выдаче купюры списываются с баланса. * * Номиналы: * - 50, 100, 500, 1000, 5000 ₽ * - 20, 100, 500 EUR * * Валюты обрабатываются раздельно, обмен не поддерживается. * Банкомат может использоваться многопоточно (резервирование выдачи). * Поддержку многопоточности можно вынести в отдельную итерацию. */public class ATM { public ??? withdraw(???) { // TODO }}📋 Требования — Сами определите, что withdraw принимает и что возвращает. — Валюты считаются раздельно, обмена нет. — Сумму, которую нельзя собрать имеющимися купюрами, отклоняем (частичная выдача недопустима). — Покройте решение тестами. — Бонус: сделайте безопасным для вызова из нескольких потоков.Ставьте → 🔥, если нравится формат. Если нет → 🌚💬 Решения под спойлер. Сравним, какое будет лучше.🐸 Библиотека собеса по Java#practise

13 июн. 2026 г.1 620В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

💻 3 курса по цене одного — собери стек для оффера в топовую IT-компаниюДля следующего карьерного шага мало писать код. Работодатели ждут не только знания языка, но и понимания архитектуры, алгоритмов, автоматизации, AI-инструментов и агентных систем.Одно направление закрывает только часть задачи.Поэтому сейчас мы предлагаем освоить сразу несколько востребованных навыков — выбери любой курс и получи доступ еще к двум бесплатно 🔥Собери стек навыков под свою цель:🔹 подготовка к сильным компаниям (алгоритмы, архитектура);🔹 переход в AI-направление (ИИ-агенты, AgentOps);🔹 развитие в ML и Data Science (математика, основы ML);🔹 новый оффер и рост дохода.Полученные знания применяешь в работе уже во время обучения.⏳ Акция действует 48 часов — 13 и 14 июня.👉 Переходи на сайт, выбирай курсы и оставляй заявку — за 10 минут поможем собрать комплект под твою цель.

13 июн. 2026 г.1 650В Telegram

🗃 Transactional Outbox: как не потерять событие между БД и брокеромКлассическая ситуация: в одном запросе надо сохранить заказ в БД и отправить OrderCreated в Kafka. Выглядит элементарно:orderRepository.save(order);kafkaTemplate.send("orders", event); // 💥Но это dual write — два независимых внешних действия без общей транзакции. И любой сбой ломает консистентность: ▪️ БД закоммитилась, приложение упало до отправки → событие потеряно, соседние сервисы не узнали о заказе▪️ Событие ушло, а транзакция откатилась → фантомное событие про заказ, которого нет▪️ Распределённые транзакции (2PC/XA) тут — дорога в ад: медленно, хрупко, Kafka их толком не тянет.📌 Идея паттернаНе пишем в брокер напрямую. В той же транзакции БД, что и бизнес-данные, кладём событие в табличку outbox:INSERT INTO orders (...);INSERT INTO outbox (id, aggregate, type, payload, created_at) (...);COMMIT;Обе вставки в одной локальной транзакции → они атомарны. Либо есть и заказ, и событие, либо ничего. Dual write исчезает: остаётся один источник правды.🔍 Кто доставляет в Kafka?Отдельный процесс — message relay. Два подхода:1️⃣ Polling Publisher — фоновый воркер периодически читает новые строки из outbox, шлёт в брокер, помечает отправленными (или удаляет). Просто и прозрачно, но есть лаг поллинга и нагрузка на БД.2️⃣ CDC (Debezium) — читаем не таблицу, а WAL/binlog базы. Debezium ловит инсерты в outbox и стримит почти в реалтайме. Сложнее в инфре, зато без поллинга и лишних запросов.Outbox превращает ненадёжный dual write в один атомарный коммит + асинхронную доставку. Платите за это дубликатами (лечатся идемпотентностью) и eventual consistency.

12 июн. 2026 г.1 710В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🐸Библиотека джависта#DevLife

12 июн. 2026 г.1 850В Telegram
Библиотека джависта | Java, Spring, Maven, Hibernate — пост в ТГ канале

🔥 Строишь ИИ-агентов? Руководитель AI/ML-направления Сloud․ru покажет, где большинство архитектур ломаются, и как этого избежать.18 июня в 19:00 совместно с Сloud․ru проведём открытый урок «Мультиагентные системы: почему большинство архитектур переусложнены».Спикер — Дмитрий Юдин, эксперт по масштабированию и оптимизации вычислительных ресурсов для ML. Под его руководством развивается Evolution AI Factory — цифровая среда для работы с GenAI. Он занимается развитием сервисов генеративного ИИ, инфраструктуры для обучения больших языковых моделей и внедрением интеллектуальных агентов.Что получишь на уроке:— критерии выбора между одним агентом и мультиагентной системой;— разбор популярных архитектурных ошибок;— реальные ограничения современных ИИ-агентов;— практические рекомендации по проектированию агентных систем.🎁 Для участников урока подготовили промокод на скидку 10 000 ₽.🗓️ Когда: 18 июня, 19:00 (МСК)👉 Занять место на открытом уроке

12 июн. 2026 г.1 780В Telegram

▶️ Запись Mobius конференцииАнна Жаркова, лид мобильной разработки ГК «Юзтех», выступила на конференции с докладом о том, как Swift и Kotlin учатся говорить друг с другом, и что из этого выходит на практике. В докладе:🔹 прямой экспорт Kotlin/Native в Swift от JetBrains и что это меняет для кроссплатформенной разработки;🔹 инструмент SwiftJava от Apple — конвертация кода между языками без KMP;🔹 как и когда использовать каждое из решений в реальных iOS и Android-приложениях;🔹 натив vs кроссплатформа: плюсы, минусы и лучшие практики.🎬 Смотреть══════ Навигация ══════Вакансии • Задачи • Собесы🐸 Библиотека джависта #CoreJava

11 июн. 2026 г.1 880В Telegram

😮 Топ-вакансий для джавистов за неделю Junior Backend Developer — от 120 000 до 200 000 ₽ — гибрид (Москва)JAVA-разработчик — от 170 000 ₽ — удалёнкаSenior Java Developer — от 320 000 ₽ — удалёнка➡️ Еще больше топовых вакансий — в нашем канале Java jobs

11 июн. 2026 г.2 010В Telegram