Your trial period has ended!
For full access to functionality, please pay for a premium subscription
JA
Библиотека джависта | Java, Spring, Maven, Hibernate
https://t.me/javaproglib
Channel age
Created
Language
Russian
15.7%
ER (week)
6.82%
ERR (week)

Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
😮 Топ-вакансий для джавистов за неделю

Java-разработчик в Маркет — от 180 000 до 350 000 ₽, офис (Москва, Санкт-Петербург, Нижний Новгород)

Java-разработчик — от 100 000 ₽, гибрид (Москва)

Руководитель команды разработки / Team Lead (Java/Kotlin) — от 300 000 ₽, гибрид (Москва)

Java разработчик — до 500 000 ₽, гибрид (Москва, Санкт-Петербург)

➡️ Еще больше топовых вакансий — в нашем канале Java jobs
04/28/2025, 17:41
t.me/javaproglib/6607 Link
🆕 Java Digest: подборка материалов

🔹 Как работает память в JVM

Глубокий анализ архитектуры памяти Java Virtual Machine и особенностей управления памятью. Уникальная информация для улучшения производительности ваших Java-приложений.

🔹 Ускорение Spring REST API на 200%

Spring удобен, но его абстракции могут замедлять работу API. Рассмотрите способы избавиться от ненужных накладных расходов и значительно увеличить производительность API.

🔹 Caffeine анализ кода

Статья описывает Caffeine с использованием алгоритма TinyLFU. Рассматриваются структуры данных, методы и старение данных для поддержания актуальности кэша.
04/27/2025, 20:20
t.me/javaproglib/6604 Link
❓ Пора ли перейти на Quarkus или Micronaut вместо Spring Boot?

Java постоянно развивается: новые фичи появляются, сборки становятся умнее, а в продакшене до сих пор царит Spring Boot. Да, он мощный, универсальный, но медленный старт, гигантский оверхед, живёт по инерции.

Quarkus и Micronaut стартуют быстрее, кушают меньше памяти, заточены под облака и serverless. Всё вроде бы красиво — но если что-то сломается, вместо «гугли решение» услышишь «пиши ишью на GitHub, может через полгода поправят».

💬 Вопрос к вам:

— Стоит ли бросать Spring Boot в 2025 ради Quarkus или Micronaut?
— Или проверенная тяжеловесная классика всё ещё надёжнее молодой крови?

🐸 Библиотека джависта #междусобойчик
04/26/2025, 20:15
t.me/javaproglib/6603 Link
❓ Как и где Spring ищет бины?

Spring ищет бины с помощью сканирования классов в указанных пакетах, используя аннотации (@Component, @Service, @Repository, @Controller и кастомные с @Component внутри).

Сканирование начинается с пакета, переданного в @ComponentScan или (по умолчанию) из того, где находится @SpringBootApplication (которая включает @ComponentScan).

Если бин не помечен аннотацией, его можно зарегистрировать вручную через @Bean в @Configuration-классе, BeanDefinitionRegistry или XML-конфиг.

🐸 Библиотека собеса по Java
04/26/2025, 16:31
t.me/javaproglib/6602 Link
💃 Как Java выглядят в стиле Гибли

Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.

Как вам образ? Расскажите в комментариях ↓

😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib
04/25/2025, 15:23
t.me/javaproglib/6599 Link
😩 Лучшие материалы по Java в одной подборке

Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.

Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!

1. Quartz уже не тот? Современные альтернативы для планирования задач

2. Как JVM обрабатывает исключения

3. @Subselect в Hibernate: разберись с хитростями

4. JOOQ против Hibernate: что выбрать для вашего проекта?

5. Инструменты командной строки, которые стоит знать

6. «Распределенные системы: принципы и парадигмы»

7. Что такое @Transactional в Spring?
04/25/2025, 13:00
t.me/javaproglib/6598 Link
❓ Делитесь вопросами, которые не дают покоя

Если вы сталкивались с неочевидной утечкой памяти, странным поведением GC или приложением, которое «ест 8 ГБ, а делает ничего» — делитесь в комментариях.

Пора перестать страдать молча. Давайте объединим комьюнити и будем разбирать реальные кейсы:

— Что утекло?
— Где GC не справился?
— Почему слабая ссылка вдруг стала сильной?
— Чем Map хуже WeakHashMap (а может — наоборот)?

P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

🐸 Библиотека джависта #междусобойчик
04/25/2025, 01:56
t.me/javaproglib/6597 Link
📺 Что посмотреть — Java Tutorial for Beginners

📅 Опубликовано: около 2 лет назад​
👀 Просмотров: более 3 миллионов​
🎓 Автор: Naveen Reddy (Telusko)​
🕒 Длительность: 12,5 часов

Чем интересно:

— Подходит для начинающих, объясняет все основы Java простым и понятным языком.
— Покрывает ключевые темы: переменные, циклы, массивы, ООП, исключения и многое другое.
— Преподаватель делится практическими примерами и советами из реального опыта.​
— Видео отлично подходит, чтобы освежить знания.

🔗 Смотреть

🐸 Библиотека джависта #буст
04/24/2025, 14:05
t.me/javaproglib/6596 Link
🐸 Библиотека джависта #развлекалово
04/24/2025, 00:05
t.me/javaproglib/6595 Link
⚙️ JFR + JMC — встроенный профилировщик для JVM-приложений

🔹 Что это

— Java Flight Recorder (JFR) — низкоуровневый инструмент для профилирования, встроенный в JVM начиная с Java 11.
— Java Mission Control (JMC) — утилита для визуального анализа и работы с результатами JFR-записей.

🔹 Возможности

— Сбор информации о производительности с минимальным overhead.
— Анализ CPU, памяти, событий GC, блокировок, Thread dumps и других внутренних событий JVM.
— Отслеживание аллокаций, задержек, пауз и узких мест в приложении.
— Подходит для использования как в разработке, так и в продакшене.

🔹 Как использовать

1. Запустите приложение с параметрами, активирующими запись:
java -XX:StartFlightRecording=duration=60s,filename=recording.jfr ...

2. После завершения записи, откройте файл .jfr в JMC.
3. Используйте интерфейс для анализа производительности и поиска узких мест.

🔹 Преимущества

— Нативная поддержка в JVM.
— Низкий overhead (подходит для продакшн-сценариев).
— Не требует внешних агентов или дополнительных библиотек.
— Удобный интерфейс для анализа.

🐸 Библиотека джависта #буст
04/23/2025, 16:03
t.me/javaproglib/6594 Link
Когда сроки горят, а разработчиков не хватает

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

Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!

Что мы предлагаем:

• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA) 

• Полноценная разработка проектов под ключ 

• Гибкое масштабирование команды под потребности клиента 

• Прозрачная коммуникация и регулярная отчетность

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

Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
04/23/2025, 13:19
t.me/javaproglib/6593 Link
📈 Как «ленивая разработка» захватывает IT-рынок

Пока мы выстраиваем архитектуру, пишем тесты и спорим о лучших практиках, рынок всё активнее обживают те, кто вообще не пишет код. Low-code и no-code решения не просто живы — они становятся нормой для бизнеса.

Порог входа минимальный, скорость разработки — бешеная, а заказчику всё равно, написано ли это на Java или накликано в визуальном редакторе. Вопрос: как долго останется актуальной классическая разработка?

🔗 Подробнее в статье

🐸 Библиотека джависта
04/23/2025, 00:04
t.me/javaproglib/6592 Link
❓ Как бы вы оптимизировали запрос с JOIN?

— Создание индексы на колонках, которые используются для соединений. Это ускорит поиск строк, особенно если соединяемые таблицы большие.

— Если возможно, уменьшить размер данных, участвующих в соединении. Для этого можно использовать подзапросы или фильтровать данные до соединения.

— Использование правильного типа JOIN.

— EXPLAIN для анализа выполнения запроса и выявления узких мест. Это покажет, как именно СУБД обрабатывает запрос и на каких этапах происходят замедления.

— Если запросы с JOIN используются часто, создать материализованные представления для хранения результатов, что снизит нагрузку на базу данных при повторных обращениях.

— Рассмотреть варианты изменения структуры БД (например, денормализация).

🐸 Библиотека собеса по Java
04/22/2025, 15:13
t.me/javaproglib/6591 Link
😮 Топ-вакансий для джавистов за неделю

Java-разработчик (junior+/middle) — от 200 000 до 250 000 ₽, гибрид (Москва, Санкт-Петербург)

Java-разработчик (Платёжная инфраструктура) — 300 000 —‍ 370 000 ₽, гибрид (Москва, Санкт-Петербург)

Senior Java Developer — от 400 000 ₽, удалёнка (Москва, Астрахань, Екатеринбург)

Java разработчик с нуля (стажер) — от 70 000 до 80 000 ₽, удалённо (Москва, Астрахань, Екатеринбург)

Java разработчик (middle) — от 270 000 до 300 000 ₽, удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Java jobs
04/22/2025, 00:02
t.me/javaproglib/6590 Link
🆕 Java Digest: подборка материалов

🔹 10 Java-инструментов, которые стоит освоить в 2025 году

Отличная подборка свежих тулов от команды JavaRevisited. Автор рассказывает, почему IntelliJ IDEA по-прежнему топ, как Maven и Gradle делят рынок сборщиков, зачем подключать SonarQube к CI/CD, и как JaCoCo помогает не пускать баги в прод.

🔹 16 лучших инструментов для анализа покрытия кода в Java

LambdaTest собрали отличную коллекцию тулов для code coverage. JaCoCo, Cobertura, Emma и другие инструменты с реальными примерами, плюс — рекомендации, как интерпретировать отчёты и не уплыть в графиках.

🔹 Spring Tools 4.29.0: новые возможности

В марте вышел свежий релиз Spring Tools с обновлённой поддержкой Spring Boot 3.x, быстрой навигацией и улучшенной автоподстановкой. Плюс, разработчики поработали над интеграцией с IDE (включая Eclipse и VS Code).

🐸 Библиотека джависта #свежак
04/20/2025, 19:03
t.me/javaproglib/6587 Link
💼🚫 Собес провален? 8 советов, как извлечь пользу из каждого отказа

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

Однако отказ — это всего лишь один из этапов в поиске работы и не стоит воспринимать его как конец света.

➡️ Читать статью

🐸 Библиотека программиста
04/19/2025, 19:14
t.me/javaproglib/6586 Link
🐸 Библиотека джависта #развлекалово
04/19/2025, 15:02
t.me/javaproglib/6585 Link
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике

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

Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.

➡️ Читать статью

🐸Библиотека шарписта
04/18/2025, 23:55
t.me/javaproglib/6584 Link
👑 Магия IntelliJ IDEA

Надоело тратить время на создание шаблонных тестов вручную? IntelliJ IDEA поможет и с этим. С помощью Ctrl + Shift + T можно сгенерировать структуру тестов для классов и методов.

🔹 Зачем это нужно

— Вместо того, чтобы вручную писать шаблон тестов, IDEA сгенерирует базовую структуру тестов для классов или методов.
— Особенно полезно, когда проект растет, а тестов слишком много, чтобы каждый раз выдумывать тестовую структуру с нуля.

🔹 Как использовать

— Поместите курсор на класс или метод, для которого нужен тест.
— Нажмите Ctrl + Shift + T (на Windows/Linux) или Cmd + Shift + T (на macOS).
— Выберите, какой тестовый фреймворк использовать (JUnit, TestNG и т.д.), и IDEA предложит создать тестовый класс с нужной структурой.

IDE автоматически создаст тестовый класс с методами для проверки каждого (или выбранного) публичного метода.

🐸 Библиотека джависта #буст
04/18/2025, 13:46
t.me/javaproglib/6583 Link
➕ От многомерности к сути: чему нас учит PCA

На собеседовании важно уметь выделить главное — свои сильные стороны, мышление и ценности. Это помогает справляться со стрессом, неожиданными вопросами и субъективной оценкой.

⏩ В машинном обучении есть похожий подход — PCA (метод главных компонент). Он сокращает размерность данных, устраняя шум и второстепенные детали, и помогает сфокусироваться на самом важном.

✅ В новой статье мы разберём:
• Как работает PCA
• Зачем он нужен
• Как применять его на практике — например, для анализа доходностей акций S&P 500

🐸 Подробнее: https://proglib.io/sh/uXsDlt75MY

Библиотека питониста
04/18/2025, 00:24
t.me/javaproglib/6582 Link
⚙️ Ускоряем отладку кода с помощью AI

Устали копаться в логах или ловить баги методом “на авось”? Попробуйте вот этот промпт — он сэкономит вам часы мучений:

📝 Промпт:

Debug the following code and identify potential issues or anti-patterns. Suggest fixes, explain the root cause of errors, and recommend tools or techniques to prevent such bugs in the future.

// Вставьте глючный код сюда

💡 Дополнительные возможности:

— Добавьте Simulate expected vs actual output behavior если не понимаете, почему оно работает не так, как вы думаете
— Добавьте Point out hidden performance issues or memory leaks если подозреваете, что код ест больше, чем должен
— Добавьте Suggest logging or monitoring strategies чтобы ловить баги ещё до того, как они вас поймают

💬 А как вы находите баги в коде?

🐸 Библиотека джависта #буст
04/17/2025, 13:57
t.me/javaproglib/6581 Link
🐸 Библиотека джависта #развлекалово
04/17/2025, 00:17
t.me/javaproglib/6580 Link
Залетай на стажировку в Kaspersky ⚡️

Если ты хорошо знаешь Java или Kotlin и хочешь освоить новые скиллы, весенняя стажировка от «Лаборатории Касперского» — для тебя. Мы ищем студентов на направление SDET Android — работа на стыке мобильной разработки и автотестирования.

Если ты учишься в вузе в Москве/МО на любом курсе, кроме выпускного, или в Школе 21 и готов(а) работать от 20 часов в неделю — присоединяйся к нам и начинай карьеру еще до окончания учебы 😎

☕️ Во время стажировки ты будешь получать зарплату и компенсацию питания, пользоваться сауной и игровыми комнатами в офисе 😇

☕️ Границы только в голове! Теперь время играет на тебя, действуй и регистрируйся здесь: https://kas.pr/3krn?erid=2W5zFJUGNe4

Реклама. Рекламодатель АО «Лаборатория Касперского» ИНН 7713140469
04/16/2025, 20:59
t.me/javaproglib/6579 Link
🎯 Как быстро настроить распределённую трассировку в Spring Boot с OpenTelemetry

Дебажить без трейсинга — как ловить баги с завязанными глазами. Но Spring Boot и тут не подвёл: подключаем, настраиваем — и уже можно видеть, что происходит внутри сервиса (и между сервисами тоже).

1️⃣ Добавляем зависимости

io.opentelemetry.instrumentation
opentelemetry-spring-boot-starter
2.1.0


ИЛИ

implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:2.1.0'

Плюс агент (нужно будет передать при запуске JAR-а):
-javaagent:opentelemetry-javaagent.jar

2️⃣ Настраиваем экспорт в Jaeger / Zipkin / OTEL Collector

Добавляем конфигурацию в application.yml:
otel:
exporter:
otlp:
endpoint: http://localhost:4317
resource:
attributes:
service.name: my-service
instrumentation:
spring-web:
enabled: true
jdbc:
enabled: true

Можно слать трейсинг напрямую в Jaeger или Zipkin, или в OTEL Collector для гибкости.

3️⃣ Автоматическая трассировка веб-запросов и JDBC

Ничего руками писать не нужно. Всё, что проходит через @RestController и JdbcTemplate — уже обвешано спанами. Нужно только запустить приложение с агентом:
java -javaagent:opentelemetry-javaagent.jar -jar myapp.jar

Сразу работают:

— Спаны на все входящие HTTP-запросы
— Спаны на SQL-запросы
— Привязку логов к трейсам (если логгер поддерживает traceId)

4️⃣ Кастомные спаны

Нужно залезть в середину метода и обернуть свою логику? Без проблем:
@Autowired
private Tracer tracer;

public void doSomething() {
Span span = tracer.spanBuilder("custom-operation").startSpan();
try (Scope scope = span.makeCurrent()) {
// какая-то магия
} finally {
span.end();
}
}

5️⃣ Визуализация трассировок

Установите Jaeger UI или Zipkin — и смотрите в реальном времени, что делает сервис и как долго.

💬 Что вы используете для трейсинга?

🐸 Библиотека джависта #буст
04/16/2025, 13:59
t.me/javaproglib/6578 Link
☕️ Java-челлендж: 10 вопросов, которые заставят мозг кипеть

Уверены, что знаете Java на отлично? Проверьте себя на этих 10 каверзных вопросах, которые могут встретиться на собеседовании или просто сломать код.

Пройдите тест и узнайте, насколько знаете тонкости языка.

🔗 Пройти тест
04/16/2025, 00:05
t.me/javaproglib/6577 Link
⌛ Сохраняйте шпаргалку по командам docker

🐸 Библиотека джависта #буст
04/15/2025, 13:59
t.me/javaproglib/6576 Link
😮 Топ-вакансий для джавистов за неделю

Java-разработчик
— от 220 000 ₽, удалёнка (Москва)

Java Tech Lead — от 400 000 ₽, удаленно (Москва)

Java разработчик (middle) — от 270 000 до 300 000 ₽, удалёнка (Москва)

Java разработчик (команда Supermarket) — от 350 000 ₽, гибрид (Москва)

Java Developer with AWS Cloud Expertise — от $2000, удалёнка (Сербия)

➡️ Еще больше топовых вакансий — в нашем канале Java jobs
04/15/2025, 03:41
t.me/javaproglib/6575 Link
⚡️Конспекты «кабанчика» теперь в Telegram!

Женя Янченко, java-разработчик и тимлид, делает регулярные конспекты самой популярной книги по архитектуре систем — «Высоконагруженные приложения» Мартина Клеппмана (книга с кабанчиком). Подробные разборы репликации, шардирования, транзакций:

— Оглавление постов «кабанчика»

Разбирает и другие технические темы:

— CAP-теорема простыми словами
— Сравнение Kafka и RabbitMQ
— Зачем нужны микросервисы
— Чек-лист: что проверить перед интеграцией

В феврале Женя объявила челлендж по решению алгоритмов — хочет решить 300 задач за год 😱

— Отчет по алгозадачам за февраль
— Отчет по алгозадачам за март

Еще в канале есть истории из опыта, рекомендации по собесам и ответы на вопросы подписчиков:

— Про манипуляции менеджеров
— Зачем компаниям алгособесы
— Как бороться с неуверенностью в себе

📝 и ещё 100+ полезных технических и жизненных постов.

Подписывайтесь, чтобы не потерять полезный канал @jane_yanchenko


Реклама. Янченко Евгения Юрьевна, ИНН 312335648680. Erid 2VtzqwMK6hw
04/14/2025, 15:00
t.me/javaproglib/6574 Link
Что будет результатом кода?

👍🏼 — Parent
🔥 — Child
👾 — ParentChild
⚡️ — RuntimeException

🐸 Библиотека задач по Java
04/14/2025, 13:45
t.me/javaproglib/6573 Link
🆕 Java Digest: что нового в мире Java

🔹 JavaOne 2025
С 18 по 20 марта в Redwood Shores, Калифорния, прошла конференция JavaOne. Среди ключевых тем — релиз Java 24, упрощение синтаксиса и минимизация шаблонного кода. Mala Gupta, Java Champion и представитель JetBrains, поделилась своими впечатлениями и подчеркнула важность сертификации для карьерного роста. ​

🔹 JPoint 2025
3–4 апреля в Москве состоялась конференция JPoint 2025. Среди докладов: оптимизация компилятора javac, микробенчмарки с JMH, расширения Quarkus и CQRS, многопоточная вставка данных в БД с использованием Spring и PostgreSQL. Конференция собрала более 1200 участников и стала площадкой для обсуждения актуальных трендов в Java-разработке. ​

🔹 Рейтинг языков программирования
По данным TIOBE за апрель 2025 года, Java занимает 4-е место в рейтинге языков программирования. Несмотря на конкуренцию со стороны Python, C++ и C, Java сохраняет свою популярность благодаря стабильности и широкому применению в корпоративной разработке.

🐸 Библиотека джависта #свежак
04/13/2025, 18:59
t.me/javaproglib/6572 Link
❓ Нужны ли Java кортежи?

Java, которому более 25 лет, продолжает развиваться — добавлены records, sealed classes, улучшен switch, появилась структурная деструкция… Но встроенных tuples (кортежей) по-прежнему нет.

Если вы хотите вернуть из метода два значения — создавайте Pair, Map.Entry, или пишите собственный класс. Три значения? Добро пожаловать в ад. А в других языках это давно решено.

💬 Вопрос к вам:

— Почему, по-вашему, в Java до сих пор нет встроенной поддержки кортежей?
— Нужны ли они вообще в Java?

🐸 Библиотека джависта #междусобойчик
04/12/2025, 19:42
t.me/javaproglib/6571 Link
🤨 ТОП-7 стран для айтишников в 2025 году

Как найти страну, где работа в IT приносит не только достойный доход, но и удовольствие от жизни? В этой статье Ксения Кравченко собрала семь лучших направлений для релокации айтишников в 2025 году — от стабильных хабов до быстрорастущих техноцентров.

Что в статье:

➡️ Средняя зарплата IT-специалистов в каждой стране

➡️ Уровень налогов и наличие льгот для техсектора

➡️ Иммиграционные программы и условия въезда

➡️ Развитость IT-экосистемы и перспективы в индустрии

➡️ Плюсы и минусы жизни в каждом регионе

Если вы задумываетесь о переезде или просто хотите знать, где IT-навыки особенно ценны — самое время заглянуть в подборку 🔗
04/12/2025, 02:29
t.me/javaproglib/6569 Link
🎧 Что послушать — #подкаст

🔹 Javaswag #76
Дата выпуска: 24 февраля 2025
Ведущий: Дмитрий Волыхин
Гость: Сергей Куксенко
Продолжительность: 2 часа 3 минуты

Выпуск для тех, кто хочет понимать Java «до винтиков». Сергей Куксенко — инженер из Oracle и ветеран в области производительности Java — рассказывает, как устроены компиляторы, зачем Java нужно тестировать бенчмарками, и почему проект Loom может перевернуть представление об асинхронности.

🔹 Ключевые темы выпуска

00:04:39 — Опыт Сергея в Excelsior и старте с Java
00:10:47 — Работа с компиляторами в Intel
00:15:13 — Производительность Java в Oracle
00:26:01 — Почему случаются регрессии
00:39:50 — Как собрать бенчмарки, которые действительно работают
00:52:12 — Асинхронщина и проект Loom
01:03:08 — Теория очередей и производительность
01:09:42 — Loom: плюсы и минусы
01:24:43 — Полугодовые релизы и их влияние
01:50:10 — Kotlin vs Java
02:00:00 — Острые мнения про Agile

🔗 Слушать выпуск

🐸 Библиотека джависта #буст
04/11/2025, 13:11
t.me/javaproglib/6568 Link
❓ Нужно ли джунам учить CI/CD?

Наш подписчик спрашивает:

Я только начал писать на Java, учу Spring Boot. Постоянно слышу про CI/CD, GitHub Actions, Jenkins… Но мне бы просто научиться делать CRUD нормально. Это вообще сейчас для меня? Или потом?

🔹 Что скажете?

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

💬 Делитесь в комментариях:

— Когда вы впервые столкнулись с CI/CD в своей карьере?
— Что нужно знать джуну про автоматизацию сборки и деплоя?
— Какие инструменты вы используете и почему именно их?

P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

🐸 Библиотека джависта #междусобойчик
04/11/2025, 01:09
t.me/javaproglib/6567 Link
📦 Главные проблемы распределенных систем (и способы их решения)

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

➡️ В этой статье мы рассмотрим четыре ключевых вызова в разработке таких систем и эффективные методы их преодоления.

🐸 Библиотека программиста
04/10/2025, 13:23
t.me/javaproglib/6566 Link
🐸 Библиотека джависта #развлекалово
04/10/2025, 00:01
t.me/javaproglib/6565 Link
🔍 Git-команда для особого случая

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

💡 Команда спасения
git bisect

🔹 Что делает

Используется для поиска конкретного коммита, который привел к багу или проблеме. Это словно бинарный поиск среди всех ваших коммитов, который помогает быстро и точно найти тот, который сломал ваш код.

🔹 Пример

1. Запустите команду
git bisect start

2. Укажите, какой коммит был рабочим (good), а какой с ошибкой (bad):
git bisect good <хэш коммита с рабочим кодом>
git bisect bad <хэш коммита с багом>

3. Git автоматически переключит вас на средний коммит. Протестируйте его и ответьте, был ли он хорошим или с багом.

💬 Использовали раньше?

🐸 Библиотека джависта #буст
04/09/2025, 13:11
t.me/javaproglib/6564 Link
💼⌛️ ТОП-5 причин, почему программист не может долго найти работу

Почему некоторые разработчики остаются "между работами" месяцы?

Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.

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

🔗 Подробнее в статье

🐸 Библиотека джависта
04/09/2025, 00:12
t.me/javaproglib/6563 Link
Джависты!

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

➡️Поддержать канал: https://t.me/boost/javaproglib
04/08/2025, 20:31
t.me/javaproglib/6562 Link
🎯 Как быстро настроить кеширование в Spring Boot

Писать кеш руками через HashMap или страдать с вручную настроенными TTL — скучно, долго и ненадёжно. В Spring Boot всё уже готово: включаем, настраиваем, и поехали!

1️⃣ Добавляем зависимость


org.springframework.boot
spring-boot-starter-cache


ИЛИ

implementation 'org.springframework.boot:spring-boot-starter-cache'

2️⃣ Включаем кеширование

Добавляем простую аннотацию над главным классом приложения (или конфиг классом):
@SpringBootApplication
@EnableCaching
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

3️⃣ Кешируем методы сервисов

Используем аннотацию @Cacheable на тех методах, которые часто выполняются и редко меняются:
@Service
public class UserService {

@Cacheable(value = "users", key = "#id")
public User getUserById(Long id) {
simulateSlowService();
return userRepository.findById(id).orElseThrow();
}

private void simulateSlowService() {
Thread.sleep(3000);
}
}

Теперь при повторном вызове метода с тем же параметром ответ прилетит мгновенно.

4️⃣ Настройка TTL и конфигурация кеша

В Spring Boot по умолчанию используется простой ConcurrentMap (без TTL). Если хочешь TTL и прочие плюшки, подключайте Caffeine:

spring:
cache:
type: caffeine
caffeine:
spec: maximumSize=500,expireAfterAccess=10m

Кеш будет жить максимум 10 минут и не разрастаться до бесконечности.

5️⃣ Очистка кеша

Если нужно принудительно почистить кеш после обновления данных, используем @CacheEvict:
@CacheEvict(value = "users", key = "#id")
public void updateUser(Long id, User updatedUser) {
userRepository.save(updatedUser);
}

💬 Хранили когда-нибудь кеш в мапе?

🐸 Библиотека джависта #буст
04/08/2025, 13:03
t.me/javaproglib/6561 Link
🤦‍♂️ Я забил на споры о микросервисах с архитекторами, и вот почему

С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.

Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно

➡️ Читать статью

💬 Как вы относитесь к микросервисам? Использовали ли вы их в своих проектах? Ждём ваши комментарии 👇

🐸Библиотека devops'a
04/08/2025, 01:41
t.me/javaproglib/6560 Link
⚙️ Какой инструмент вы используете, а другие — нет?

Есть ли у вас в арсенале библиотека, тулза или приём, который вы стабильно используете, но редко видите в чужом коде? Что-то, что реально экономит время или упрощает жизнь/спасает прод, но почему-то не на слуху.

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

🐸 Библиотека джависта #междусобойчик
04/07/2025, 17:05
t.me/javaproglib/6559 Link
❓ Что такое JIT-компилятор?

JIT (Just-In-Time) компилятор — это компонент JVM, который компилирует байт-код в машинный код непосредственно во время выполнения программы, а не до старта приложения. Его задача — улучшить производительность, оптимизируя код, исходя из реальных условий работы программы.

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

🐸 Библиотека собеса по Java
04/07/2025, 13:00
t.me/javaproglib/6558 Link
😺🐙🧼 Сам себе GitHub: как работать с чистым Git-репозиторием

Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.

➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.

🐸 Библиотека программиста
04/06/2025, 19:25
t.me/javaproglib/6557 Link
🐸 Библиотека джависта #развлекалово
04/05/2025, 13:41
t.me/javaproglib/6556 Link
🖥 Метрики эффективности сотрудника

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

Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.

Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.

🔗 Подробности в статье

🐸 Библиотека джависта
04/05/2025, 00:14
t.me/javaproglib/6555 Link
🐳 Магия Docker CLI

Многие продолжают вручную вытаскивать логи и конфиги из Docker-контейнеров через кучу лишних движений. А ведь есть команда, которая делает это за секунду — docker cp.

🔹 Зачем это нужно

— Позволяет копировать файлы внутрь или наружу контейнера без томов и перезапуска.
— Удобно для быстрой отладки, логов или правки конфигов в рантайме.
— Работает даже с остановленными контейнерами.

🔹 Как использовать

— Забрать файл: docker cp container_id:/path/in/container ./local/path
— Закинуть файл: docker cp ./my.conf container_id:/etc/my.conf
— Можно использовать имена контейнеров, относительные пути и даже в CI/CD пайплайнах.

💬 Использовали раньше?

🐸 Библиотека джависта #буст
04/04/2025, 13:11
t.me/javaproglib/6554 Link
❓ Исключения: инструмент надёжности или источник хаоса?

Некоторые утверждают, что checked исключения повышают надёжность системы, вынуждая явно обрабатывать потенциально нестабильные участки кода. Такой подход позволяет контролировать поток ошибок и уменьшать вероятность неожиданных сбоев на проде.

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

💬 Вопрос к вам:

— Где для вас проходит граница между оправданным использованием исключений и архитектурным перегибом?
— Используете ли вы checked exceptions в бизнес-логике? Или предпочитаете более гибкий подход с кастомными unchecked-исключениями и централизованной обработкой?

🐸 Библиотека джависта #междусобойчик
04/04/2025, 01:27
t.me/javaproglib/6553 Link
🔍 Как валидировать входные данные

Проверять данные вручную через if-ы — больно, скучно и не масштабируется.
Bean Validation (javax.validation) позволяет валидировать красиво и декларативно, не превращая код в болото.

1️⃣ Добавляем зависимости

implementation("org.springframework.boot:spring-boot-starter-validation")

ИЛИ


org.springframework.boot
spring-boot-starter-validation


2️⃣ Аннотации в DTO
public class UserRequest {

@NotBlank(message = "Имя не должно быть пустым")
private String name;

@Email(message = "Некорректный email")
private String email;

@Min(value = 18, message = "Возраст должен быть 18+")
private int age;

// геттеры и сеттеры
}

3️⃣ Включаем валидацию в контроллере
@PostMapping("/users")
public ResponseEntity createUser(@Valid @RequestBody UserRequest request) {
userService.save(request);
return ResponseEntity.ok().build();
}

Без @Valid перед DTO ничего не сработает.

4️⃣ Глобальный обработчик ошибок
@RestControllerAdvice
public class ExceptionHandlerController {

@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidationErrors(MethodArgumentNotValidException ex) {
List errors = ex.getBindingResult().getFieldErrors().stream()
.map(err -> err.getField() + ": " + err.getDefaultMessage())
.toList();

return ResponseEntity.badRequest().body(errors);
}
}

Теперь ошибки приходят красиво и читаемо в JSON.

5️⃣ Кастомные валидаторы

Если нужно что-то особенное — например, проверка страны:
@Constraint(validatedBy = CountryValidator.class)
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidCountry {
String message() default "Страна не поддерживается";
}

public class CountryValidator implements ConstraintValidator {
private final List allowed = List.of("RU", "US", "DE");

public boolean isValid(String value, ConstraintValidatorContext ctx) {
return allowed.contains(value);
}
}

💬 Всё ещё пишете if (dto.getName() == null)?

🐸 Библиотека джависта #буст
04/03/2025, 14:26
t.me/javaproglib/6552 Link
🐸 Библиотека джависта #развлекалово
04/03/2025, 00:11
t.me/javaproglib/6551 Link
JavaRocks - канал доказывающий что Java-рулит.

Собираем лучшие посты со всего русскоязычного телеграм + пишем свои собственные мнения, фишки и трюки языка.

- основы
- трюки и фишки языка
- тесты на проверку знаний
- паттерны проектирования на Java

Подпишись и изучай Java. Никакой воды. @javarocks

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqxRoh1S
04/02/2025, 21:05
t.me/javaproglib/6550 Link
⚙️ Улучшаем процесс разработки с помощью AI

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

📝 Промпт:

Analyze the following code snippet and suggest improvements for faster development. Identify areas for simplification, recommend reusable components, and provide best practices for making the code more maintainable.

// Вставьте ваш код здесь

💡 Дополнительные возможности:

— Добавьте Suggest refactor strategies to improve readability and maintainability, если ваш код слишком сложный.
— Добавьте Recommend using design patterns to structure the solution, если ищете элегантное решение.
— Добавьте Provide alternatives for reducing code duplication, если вам нужно сделать код более универсальным.

💬 Какие инструменты или подходы вы используете для ускорения процесса разработки?

🐸 Библиотека джависта #буст
04/02/2025, 13:33
t.me/javaproglib/6549 Link
📣 Программисты, нужен ваш совет

Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!

Какой ноут спасает вас в кодинге и почему?

Расскажите все:

🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется

Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.

💬 Делитесь в комментах
04/02/2025, 00:16
t.me/javaproglib/6548 Link
👑 Магия IntelliJ IDEA

Все знают Ctrl + P (подсказка параметров метода), но мало кто юзает Shift + Ctrl + I → быстрый просмотр определения.

🔹 Зачем это нужно

— Позволяет посмотреть реализацию метода/класса/интерфейса без перехода в другой файл.
— Работает с любыми символами: методами, переменными, константами, даже SQL-мэпперами в MyBatis.
— Незаменимо, если не хочешь терять контекст текущего кода.

🔹 Как использовать

— Наведи курсор на метод, поле или класс, нажми Ctrl + Shift + I — появится всплывающее окно с реализацией.
— Работает и в дебаге, и при просмотре внешних библиотек (если есть исходники).

🐸 Библиотека джависта #буст
04/01/2025, 16:03
t.me/javaproglib/6547 Link
🎭 Dev Memes: 1 апреля, а баги всё те же

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

👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»

🐸 Библиотека джависта
04/01/2025, 13:01
t.me/javaproglib/6541 Link
🔖 IT-календарь: предстоящие конференции

🔹 JPoint 2025
📅 Даты: 3–4 апреля 2025 года
📍 Место проведения: Москва, Россия

JPoint — крупнейшая Java-конференция в России, собирающая опытных разработчиков для обсуждения современных практик Java-разработки, новых функций языка, нюансов работы с Spring, а также тем, связанных с JVM, Kotlin и Scala. ​

🔹 JavaLand 2025
📅 Даты: 1–3 апреля 2025 года
📍 Место проведения: Нюрбург, Германия

JavaLand — ежегодная конференция для Java-разработчиков, проходящая в уникальной обстановке парка развлечений. Мероприятие предлагает множество докладов, воркшопов и возможностей для нетворкинга с международным сообществом.​

🔹 GeeCON 2025
📅 Даты: 14–16 мая 2025 года
📍 Место проведения: Краков, Польша

GeeCON — одна из крупнейших европейских конференций, посвященных Java и JVM-технологиям. В программе — выступления ведущих экспертов, обсуждение современных трендов и практик разработки.​

💬 Собираетесь на какое-либо мероприятие?

🐸 Библиотека джависта #свежак
04/01/2025, 00:09
t.me/javaproglib/6540 Link
Что будет результатом кода?

👍🏼 — true true
🔥 — true false
👾 — false true
⚡️ — false false

🐸 Библиотека задач по Java
03/31/2025, 19:45
t.me/javaproglib/6539 Link
⌛ Сохраняйте шпаргалку по командам git

🐸 Библиотека джависта #буст
03/31/2025, 13:06
t.me/javaproglib/6538 Link
💻🧩 Когда HR требует LeetCode Hard: почему компании стреляют себе в ногу

Когда твоя компания не Google, но хочет отбирать кандидатов как Google — получается дорогой фейл и текучка талантов. Разбираемся в трендах IT-рекрутинга, которые выглядят как выстрел в ногу.

➡️ Читать статью

🐸 Библиотека программиста
03/30/2025, 14:48
t.me/javaproglib/6537 Link
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria