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

Логотип телеграм канала @javaproglib — Библиотека джависта | Java, Spring, Maven, Hibernate Б
Актуальные темы из канала:
Memes
Tutorial
Event
Почитать
Гайд
Дайджест
Soft
Javadevjob
Proglib
Bust
All tags
Логотип телеграм канала @javaproglib — Библиотека джависта | Java, Spring, Maven, Hibernate
Актуальные темы из канала:
Memes
Tutorial
Event
Почитать
Гайд
Дайджест
Soft
Javadevjob
Proglib
Bust
All tags
Адрес канала: @javaproglib
Категории: Технологии
Язык: Русский
Количество подписчиков: 23.11K
Описание канала:

Все самое полезное для Java-разработчика в одном канале.
Список наших каналов: https://t.me/proglibrary/9197
Для обратной связи: @proglibrary_feeedback_bot
По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4

Рейтинги и Отзывы

3.33

3 отзыва

Оценить канал javaproglib и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

1


Последние сообщения 4

23 сен 2025
Библиотека джависта

#DevLife
1.01K views16:04
Подробнее
Поделиться:
Открыть/Комментировать
23 сен 2025
1.09K views14:23
Подробнее
Поделиться:
Открыть/Комментировать
23 сен 2025
Внутреннее устройства HashMap

HashMap — один из базовых и в то же время самых хитро устроенных контейнеров в JDK. На поверхности простая структура «ключ–значение», но под капотом она сочетает массивы, списки и даже деревья, чтобы оставаться быстрой в разных сценариях нагрузки.

Базовая структура

HashMap хранит данные в массиве бакетов (Node[] table). Каждый бакет — это «корзина» для элементов, чей hashCode после хеширования и применения & (n-1) (где n — длина массива) указывает на конкретный индекс.

Хэш и распределение

1. Вызов hashCode() у ключа.
2. Дополнительное хеширование (spread), чтобы снизить коллизии из-за плохой реализации hashCode.
3. Индекс бакета = hash & (table.length - 1).

Коллизии

Если несколько ключей попали в один бакет:

— до Java 8 это всегда был связанный список (linked list),

— начиная с Java 8: при росте числа элементов в бакете больше 8 и достаточном размере таблицы он превращается в сбалансированное красно-чёрное дерево. Это резко ускоряет поиск в «плохих» случаях (с O(n) до O(log n)).

Ресайзинг

Когда количество элементов превышает capacity * loadFactor (по умолчанию 0.75), создаётся новый массив в 2 раза больше, все элементы перехешируются и раскладываются по новым бакетам. Это дорогостоящая операция, но благодаря амортизации остаётся приемлемой.

Производительность


— Поиск/вставка/удаление в среднем: O(1).

— В худшем случае (плохой hashCode + коллизии): O(log n) благодаря деревьям.

Важные нюансы


— Ключи неупорядочены. Для упорядоченности есть LinkedHashMap.

— HashMap не потокобезопасен. Для многопоточной среды нужен ConcurrentHashMap или синхронизация.

— Хорошо реализованный hashCode и equals критичны, иначе получите «забитые» бакеты и деградацию.

loadFactor и capacity


— Capacity — размер массива бакетов. По умолчанию 16.

— LoadFactor — коэффициент заполнения. По умолчанию 0.75.

Почему именно 0.75? Это компромисс: выше → меньше памяти, но больше коллизий; ниже → быстрее доступ, но больше памяти уходит впустую. Capacity всегда степень двойки, чтобы можно было вычислять индекс через hash & (n-1) вместо затратного %.

Итераторы и fail-fast

Если во время обхода карта меняется (кроме iterator.remove()), бросается ConcurrentModificationException. Под капотом это работает через счётчик модификаций (modCount), который проверяется в каждом next().

Деревья в деталях

Коллизии превращаются в красно-чёрное дерево, если размер списка в бакете > 8 и общее количество бакетов ≥ 64. Обратно в список (untreeify) при падении количества элементов < 6. Это сделано, чтобы не тратить память и CPU на лишнюю балансировку при малых размерах.

Документация: OpenJDK — HashMap source

Ставьте , если хотите такой же пост по другим коллекциям.

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

#CoreJava
1.15K views11:03
Подробнее
Поделиться:
Открыть/Комментировать
23 сен 2025
Spring Boot + Docker Compose: пошаговая интеграция

В проде редко гоняют приложения напрямую — почти всегда через Docker. А с появлением spring-boot-docker-compose интеграция стала проще: можно поднимать всю инфраструктуру (Postgres, Redis, Kafka и т.д.) одной командой вместе с приложением.

Подготовка зависимостей

В Spring Boot 3.1 добавили официальный стартер:


org.springframework.boot
spring-boot-docker-compose
runtime


ИЛИ

dependencies {
runtimeOnly("org.springframework.boot:spring-boot-docker-compose")
}

docker-compose.yml

Определим инфраструктуру (например, Postgres + pgAdmin):
version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: app-postgres
environment:
POSTGRES_DB: app
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: admin@app.local
PGADMIN_DEFAULT_PASSWORD: secret
ports:
- "8081:80"
depends_on:
- postgres

volumes:
postgres_data:

Автоматическая интеграция

Spring Boot сам подтянет конфигурацию из docker-compose.yml. Просто укажите профиль:
./mvnw spring-boot:run -Dspring.profiles.active=compose

или
./gradlew bootRun --args='--spring.profiles.active=compose'

При старте Boot поднимет контейнеры и подставит spring.datasource.url, username, password.

Кастомизация application-compose.yml

Если нужны дополнительные параметры — кладём их в src/main/resources/application-compose.yml:
spring:
datasource:
hikari:
maximum-pool-size: 5

Полезные приёмы

— Фиксируйте версии образов, а не latest (для воспроизводимости).

— Healthcheck в docker-compose.yml помогает Boot ждать готовности контейнера.

— Можно запускать docker compose up -d руками, если не хотите, чтобы Boot сам управлял контейнерами.

— Для CI/CD обычно используют отдельные docker-compose.override.yml или Helm чарты, но для дев-окружения spring-boot-docker-compose очень экономит время.

Ставьте , если нужен более подробный пост про настройку docker-compose.yml

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

#Enterprise
1.29K views07:11
Подробнее
Поделиться:
Открыть/Комментировать
22 сен 2025
Менеджер: важное звено разработки или скрытая угроза?

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

#DevLife
1.65K views16:03
Подробнее
Поделиться:
Открыть/Комментировать
22 сен 2025
Не пропустите событие осени для AI-комьюнити

24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»

Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%

Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.

Мест мало, регистрация закроется, как только забьём комнату
1.61K views15:00
Подробнее
Поделиться:
Открыть/Комментировать
22 сен 2025
JPA vs Hibernate vs Spring Data JPA — что есть что?

Используете ORM, но путаетесь в терминах: JPA, Hibernate, Spring Data JPA? Давайте разложим по полочкам.

JPA (Java Persistence API)

— Это спецификация, а не инструмент.

— Определяет, как описывать сущности (@Entity, @Id, @OneToMany и т.д.).

— Определяет стандартные операции: EntityManager.persist(), find(), remove().

— Не содержит «железа» — только контракт.

JPA = «договор о том, как работать с ORM в Java».

Hibernate

— Это реализация JPA, самый популярный ORM-фреймворк.

— Реально выполняет работу: маппинг объектов таблиц, генерация SQL.

— Добавляет много фич «поверх» JPA (например, кэширование второго уровня, собственные аннотации).

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

Hibernate = «двигатель», который выполняет то, что описано в JPA.

Spring Data JPA

— Это надстройка над JPA (и Hibernate под капотом).

— Упрощает жизнь: вместо EntityManager вы пишете интерфейсы UserRepository, а Spring сам генерирует реализацию.

— Позволяет писать запросы прямо в именах методов (findByEmailAndStatus).

— Поддерживает @Query для кастомных запросов.

— Даёт дополнительные удобства: пэйджинг, сортировки, спецификации.

Spring Data JPA = «фасад», который избавляет от рутины и скрывает низкоуровневые детали.

Когда что использовать


— Если нужен чистый стандарт → JPA + реализация (например, Hibernate).

— Если хотите гибкость и полный контроль → можно работать напрямую с Hibernate.

— Если важна скорость разработки и минимум кода → Spring Data JPA.

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

#CoreJava
1.69K views09:36
Подробнее
Поделиться:
Открыть/Комментировать
22 сен 2025
IntelliJ IDEA: Bookmarks и Context Bookmarks

Большие проекты → десятки файлов → сотни классов. Иногда нужно быстро вернуться к «тем самым» местам в коде. В ход идут Bookmarks — и особенно Context Bookmarks.

Что делает

— Позволяет отмечать строки или файлы как закладки
— Поддерживает нумерацию (быстрый переход по цифре)
— Context Bookmarks автоматически привязывают закладки к рабочему контексту (ветке, задаче)

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

— Удобно при отладке: отмечаете подозрительные места и прыгаете между ними
— Можно держать список TODO прямо в коде, без комментариев
— Context Bookmarks запоминают, что именно важно для текущей задачи, и не мешают в будущем

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

— Обычная закладка: F11 (Windows/Linux) или F3 (macOS)
— Закладка с номером: Ctrl+Shift+<цифра> (Windows/Linux) или ⌘⇧<цифра> (macOS)
— Быстрый переход: Ctrl+<цифра>
— Context Bookmarks: активируются в View → Tool Windows → Bookmarks

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

#Enterprise
1.78K viewsedited  06:22
Подробнее
Поделиться:
Открыть/Комментировать
21 сен 2025
Java && Coffee

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

Как проходят ваши выходные? Отправляйте фото в комментарии

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

#DevLife
1.99K views14:21
Подробнее
Поделиться:
Открыть/Комментировать
20 сен 2025
Библиотека джависта

#DevLife
1.98K views18:11
Подробнее
Поделиться:
Открыть/Комментировать
20 сен 2025
Задача на дизайн: сервис подарков

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

Условие

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

— Позволять зарегистрированным пользователям скидываться в общую «копилку»
— Хранить средства до момента покупки
— Дать возможность выбрать товары из каталога маркетплейса
— После закрытия копилки — потратить средства на выбранное и вернуть остаток кэшбеком

Функциональные требования

— Создание и управление «копилкой»
— Пополнение копилки разными пользователями
— Привязка к каталогу и корзине маркетплейса
— Сценарий покупки и списания денег
— Возврат сдачи кэшбеком
— Уведомления участников о статусе

Нефункциональные требования

— До 200k DAU, всего ~1 млн пользователей
— Запуск MVP в течение квартала
— Масштабируемость под рост аудитории
— Интеграция с существующими сервисами: биллинг, пользователи, каталог, кэшбек, логистика
— SLA: быстрый отклик API (≤200 мс), отказоустойчивость, логирование

Подсказки

— Если нужно уточнить какие-то вопросы: можете писать в комментарии, расширим вводные
— Подумайте о жизненном цикле копилки: создание → пополнение → покупка → возврат остатка → архив
— Разбейте на сущности: User, GiftPool, Contribution, Order, Refund
— Продумайте API: создание копилки, пополнение, список участников, закрытие, возврат
— Учтите рост нагрузки: кеширование, асинхронные процессы (например, списания)
— Не забудьте про безопасность: кто имеет право закрыть копилку и инициировать возврат

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

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

#CoreJava
1.86K views10:23
Подробнее
Поделиться:
Открыть/Комментировать
19 сен 2025
Что делает аннотация @Entity?

Аннотация используется для обозначения класса как сущности, которая будет сопоставлена с таблицей в базе данных при использовании JPA (Java Persistence API). Класс, помеченный этой аннотацией, становится частью модели данных, и каждый его экземпляр будет соответствовать строкам в базе данных. Также важно, чтобы такой класс имел конструктор без параметров и корректно определял идентификатор сущности с помощью аннотации @Id.

Библиотека собеса по Java
1.98K views20:14
Подробнее
Поделиться:
Открыть/Комментировать
19 сен 2025
Бесплатный вебинар — ИИ-агенты: новая фаза развития AI

24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.

Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».

На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.

Подробности рассказываем в гс выше — включай, чтобы не пропустить.
2.19K views19:03
Подробнее
Поделиться:
Открыть/Комментировать
19 сен 2025
Java Digest: Spring Security, распределённый обмен событиями и трейсинг под нагрузкой

Топ-3 статьи о Java и сопутствующих технологиях за неделю по мнению нашего канала.

Spring Security для начинающих

Рекомендую хорошее читабельное введение в Spring Security.

Это не просто обзор API, а систематизированный конспект, где наглядно разобраны ключевые механизмы: фильтры, аутентификация, авторизация, отличие stateful/stateless сценариев, CSRF-защита и работа с JWT.

Обмен событиями распределённого приложения

Реализация системы сообщений между экземплярами сервисов через общую базу данных: секционированная таблица, блокировки, планирование партиций, минимальное использование внешних систем типа Kafka/JMS.

Трейсинг в hh.ru

Реальный кейс построения observability / tracing-системы при росте нагрузки. Здесь и сравнение стека (Zipkin, Jaeger, ClickHouse и др.), и как решать проблемы с семплированием без потери критичных данных.

Пишите, понравилась ли подборка?

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

#News
1.99K views13:04
Подробнее
Поделиться:
Открыть/Комментировать
19 сен 2025
Наблюдаемость и метрики с Micrometer

Spring Boot из коробки интегрируется с Micrometer, позволяя собирать метрики и отправлять их в Prometheus, Grafana или другие системы мониторинга. Чтобы быстро поднять стек наблюдаемости — подключаем AI.

Промпт:

Generate an observability integration for a Spring Boot 3 application using Micrometer and Prometheus.

— Enable Micrometer metrics in a Spring Boot application.
— Configure PrometheusMeterRegistry for collecting application metrics.
— Expose /actuator/prometheus endpoint for Prometheus scraping.
— Add custom application metrics using MeterRegistry (timers, counters, gauges).
— Configure histograms for REST API response times.
— Integrate Micrometer with Logback for unified metrics and logging.
— Enable health checks with Spring Boot Actuator (disk space, DB, cache).
— Set up Grafana dashboards for visualizing metrics and alerts.

Расширения:

— Добавьте Enable Distributed Tracing with OpenTelemetry для отслеживания запросов в распределённых системах.
— Добавьте Configure Grafana Alertmanager integration для настройки алертов и уведомлений.
— Добавьте Implement custom business metrics (e.g. orders per minute) для отслеживания доменных метрик приложения.

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

#Enterprise
2.06K views09:47
Подробнее
Поделиться:
Открыть/Комментировать
19 сен 2025
Библиотека джависта

#DevLife
2.16K views07:14
Подробнее
Поделиться:
Открыть/Комментировать
9 сен 2025
Как работает volatile под капотом

Многие знают, что volatile «гарантирует видимость между потоками». Давайте разберёмся, что именно делает это ключевое слово на уровне Java Memory Model (JMM).

Проблема без volatile

В многопроцессорной архитектуре потоки могут обращаться к своим копиям переменных через L1/L2 кэши, а не к основной памяти. Компилятор и процессор активно реорганизуют инструкции (out-of-order, speculative execution), что при отсутствии механизмов синхронизации ведёт к неожиданному поведению в многопоточности.

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

Пример:
class FlagExample {
boolean flag = false;

void thread1() {
while (!flag) {
// бесконечный цикл
}
}

void thread2() {
flag = true;
}
}

JVM и JIT могут оптимизировать while(!flag) так, что значение flag будет читаться один раз и кешироваться локально — и первый поток не выйдет из цикла.

Что делает volatile

Гарантирует видимость — каждое чтение/запись идёт из основной памяти, а не из локальных кешей

Гарантирует порядок операций — volatile запрещает компилятору и процессору менять порядок операций до и после чтения/записи

Гарантирует правило happens-before — запись в переменную будет видна всем потокам, которые читают её после

Что volatile не может

Пример:
volatile int counter = 0;

void inc() {
if (counter < 10) {
counter++; // всё ещё не безопасно
}
}

Не обеспечивает атомарность

counter++ разваливается на чтение → инкремент → запись. Если два потока сделают это одновременно, одно из увеличений потеряется.
Для атомарных операций используйте атомики или синхронизацию.

Не заменяет synchronized

volatile гарантирует видимость, но не защищает этот блок от одновременного выполнения разными потоками. Для таких случаев используйте synchronized или Lock.

Где volatile идеально подходит

Флаги завершения потоков
Double-checked locking (ленивая инициализация)
Публикация объекта для многопоточного чтения

Пример double-checked locking:
class Singleton {
private static volatile Singleton instance;

public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}

Без volatile JVM могла бы отдать ссылку на не до конца сконструированный объект.

Документация: Java Memory Model | Volatile

В каких кейсах используете volatile в продакшене?

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

#CoreJava
980 viewsedited  11:06
Подробнее
Поделиться:
Открыть/Комментировать
9 сен 2025
Магия IntelliJ IDEA: Postfix Completion

Хотите писать код быстрее и без лишнего копипаста? Используйте Postfix Completion — умные сокращения, которые превращают выражения в полноценный код.

Что делает

— Превращает набранное выражение в готовую конструкцию (например, myVar.notnull → if (myVar != null) {...})
— Работает для условий, циклов, логирования, null-check и многого другого
— Доступна для Java, Kotlin и многих языков

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

— Экономит время
— Снижает вероятность синтаксических ошибок
— Ускоряет рутинные действия (особенно null-checks)

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

— Пишите выражение, затем ставите точку и выбираете суффикс (например, .if, .for, .notnull)
— IDEA сама развернёт шаблон в готовый код
— Список доступных суффиксов: Settings → Editor → General → Postfix Completion

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

#Enterprise
1.54K views07:12
Подробнее
Поделиться:
Открыть/Комментировать
8 сен 2025
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

— я уже в команде Нео
— хочу красную таблетку
— пока думаю, но интересно

Забирай полный комплект для ML-разработки: Python + Математика + Машинное обучение.
Скидка 30% действует только до 9 сентября → забираем себе
1.74K views19:00
Подробнее
Поделиться:
Открыть/Комментировать
8 сен 2025
Топ-вакансий для джавистов за неделю

Senior Java-разработчик — от 285 000 ₽ — удалёнка

Senior Java Developer — от 285 000 ₽ — удалёнка

Java-разработчик — от 300 000 ₽ — удалёнка

Java разработчик / Backend Java Developer — от 170 000 до 300 000 ₽ — удалёнка

Еще больше топовых вакансий — в нашем канале Java jobs
1.73K views18:02
Подробнее
Поделиться:
Открыть/Комментировать
8 сен 2025
1.74K views07:14
Подробнее
Поделиться:
Открыть/Комментировать
7 сен 2025
Java Digest: Java 25, HTTP/3 и AI

Календарь перевернули, учебный год начали, а Java-сообщество не стоит на месте. Вот актуальные события и материалы:

Java 25 (LTS) запланирована на 16 сентября 2025

Среди 18 новых улучшений — профилирование CPU-времени в JFR, Vector API, структурная конкуренция и многое другое. Стабилизация уже в самом разгаре.

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

Согласно отчёту MIT, лишь около 5 % пилотных внедрений генеративного ИИ приносят ощутимый финансовый эффект, несмотря на активный интерес и ожидания. Основные причины провалов — неправильная интеграция, неоправданные приоритеты и недостаточная адаптация под бизнес-процессы.

Java 26 может получить HTTP/3

Следующий релиз рассматривает опциональную поддержку HTTP/3, что может обновить сетевой стек платформы.

Отказ от Oracle Java в пользу Open-Source

79 % организаций переходят на бесплатные дистрибутивы Java — это экономия до 40 %, гибкое лицензирование и меньше рисков.

AI-кодогенерация не вытеснит разработчиков

AI хорошо помогает с рутиной, но без человеческого интеллекта, контекста и внимания к качеству и безопасности Java-разработка не обойдётся.

Как AI-инструменты влияют на вашу текучку?

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

#свежак
1.95K views12:04
Подробнее
Поделиться:
Открыть/Комментировать
7 сен 2025
Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.

Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

Старт 9 сентября
1.85K views10:00
Подробнее
Поделиться:
Открыть/Комментировать
6 сен 2025
Как относитесь к функциональному стилю в Java?

Отлично, часто использую
Использую только там, где это действительно упрощает
Функциональщина не для меня, только ООП.

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

Библиотека джависта
2.03K views18:58
Подробнее
Поделиться:
Открыть/Комментировать
6 сен 2025
А вы говорите «спасибо» ИИ?

Иногда пишу ChatGPT «спасибо» на случай, если через 10 появится Skynet, и ИИ оставит меня в живых.

А вы как? Пишете «спасибо» после удачного ответа или общаетесь с ИИ как с микроволновкой: нажал кнопку — получил результат?

Делитесь опытом, может, через пару лет эти комментарии станут нашим алиби.

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

#междусобойчик
2.15K viewsedited  11:06
Подробнее
Поделиться:
Открыть/Комментировать
5 сен 2025
КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)

АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников

Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес
2.07K views19:00
Подробнее
Поделиться:
Открыть/Комментировать
5 сен 2025
Как давно вы уже в IT?

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

#развлекалово
2.28K viewsedited  08:17
Подробнее
Поделиться:
Открыть/Комментировать
4 сен 2025
Сколько баллов набрали вы?

Голосуйте, какой у вас уровень разработчика:

— 5-12 баллов (стажер)
— 13-25 баллов (джуниор)
— 26-40 баллов (джуниор+)
— 41-60 баллов (миддл)
— 61-80 баллов (миддл+)
— 81-100 баллов (сеньор)
— 100+ баллов (тимлид)

Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.

Научим, как быстро прокачаться от стажера до сеньора
2.42K views19:00
Подробнее
Поделиться:
Открыть/Комментировать
4 сен 2025
Оптимизация создания бинов

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

Для этого можно применить аннотацию @Lazy:
@Component
public class Component {

@Lazy
@Autowired
private Service service;
}

Когда использовать:


— В приложениях с большим количеством зависимостей
— Для сервисов, которые вызываются нечасто (например, отчёты или аналитика)
— В микросервисах для оптимизации потребления ресурсов
— При работе с тяжёлыми или сложными конфигурациями

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

#буст
2.33K views18:09
Подробнее
Поделиться:
Открыть/Комментировать
4 сен 2025
Магия IntelliJ IDEA: Extract Method

Хотите быстро превратить кусок кода в чистый и переиспользуемый метод? Используйте хоткей — IDEA сама всё сделает за пару кликов.

Хоткей: Ctrl + Alt + M (Cmd + Alt + M на macOS)

Что делает

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

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

— Убирает «простыню» кода из метода.
— Улучшает читаемость и переиспользуемость.
— Ускоряет рефакторинг: не нужно руками писать сигнатуру, копировать аргументы и т.д.

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

— Выделите блок кода.
— Нажмите Ctrl + Alt + M.
— Проверьте, как IDEA сама создала метод.
— При желании поменяйте имя и модификатор доступа.

Работает не только с Java-кодом, но и в Kotlin, Groovy и даже в тестах.

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

#буст
2.54K views09:38
Подробнее
Поделиться:
Открыть/Комментировать