Библиотека джависта | Java, Spring, Maven, Hibernate
Все самое полезное для Java-разработчика в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
Show more📈 Analytical overview of Telegram channel Библиотека джависта | Java, Spring, Maven, Hibernate
Channel Библиотека джависта | Java, Spring, Maven, Hibernate (@javaproglib) in the Russian language segment is an active participant. Currently, the community unites 22 436 subscribers, ranking 6 067 in the Technologies & Applications category and 30 003 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 22 436 subscribers.
According to the latest data from 09 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -81 over the last 30 days and by -13 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 8.55%. Within the first 24 hours after publication, content typically collects 5.09% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 919 views. Within the first day, a publication typically gains 1 142 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 12.
- Thematic interests: Content is focused on key topics such as джависта, навигация, jooq, corejava, hibernate.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для Java-разработчика в одном канале.
Список наших каналов: https://t.me/proglibrary/9197
Для обратной связи: @proglibrary_feeedback_bot
По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4”
Thanks to the high frequency of updates (latest data received on 10 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
• Understand Anything — граф знаний по коду и зависимостям. • DeepTutor — open-source платформа для персонализированного обучения. • Superpowers — набор практик для системной разработки с ИИ. • Awesome Agent Skills — коллекция навыков для ИИ-агентов.📚 Ключевые работы по LLM:
• Attention Is All You Need (2017) — архитектура Transformer. • GPT-1 (2018) — начало эпохи GPT. • GPT-2 (2019) — решение новых задач без дообучения. • GPT-3 (2020) — обучение на примерах из запроса. • InstructGPT (2022) — RLHF и современные чат-боты.На курсе Роман выступает консультантом программы: помогает формировать содержание уроков с опорой на актуальные инженерные практики». Занять свое место на потоке: 👉 Курс «Разработка ИИ-агентов»
curl -C - -O https://example.com/dump.sql.gz
— С прогресс-баром: curl -C - -# -O https://example.com/large-file.tar.gz
— Ограничить скорость: curl --limit-rate 10M -O https://example.com/file.iso
— В конкретный файл: curl -C - -o backup.tar.gz https://example.com/backup
— С авторизацией: curl -C - -u user:pass -O https://repo.example.com/artifact.jar
💡 Заверни в цикл для автоматического ретрая: while ! curl -C - -O https://example.com/dump.sql.gz; do sleep 5; done — скрипт будет пытаться докачать, пока не получится.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterpriseimport org.apache.fory.Fory;
import org.apache.fory.config.Language;
Fory fory = Fory.builder()
.withLanguage(Language.JAVA)
.requireClassRegistration(true)
.build();
fory.register(Order.class);
byte[] bytes = fory.serialize(order);
Order copy = (Order) fory.deserialize(bytes);
Это drop-in замена JDK / Kryo / Hessian — со 100% совместимым API (writeObject/readObject, Externalizable и т.д.), только в разы быстрее. Корректно тащит shared- и циклические ссылки, умеет schema evolution (можно добавлять/удалять поля независимо на двух концах), поддерживает GraalVM native image через AOT без рефлексии. А режим xlang сериализует один и тот же объект между Java, Python, C++, Go, Rust, JS, Scala, Kotlin и TypeScript.
Идеален для высоконагруженного RPC, кэшей, передачи данных между сервисами и кросс-язычных пайплайнов, где сериализация — это узкое место.
📱 Репозиторий
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise14-лет в разработке. Занимается AI-адопшеном в команде Yandex Cloud, проводит мастер-классы и продвигает лучшие практики для повышения эффективности разработчиков.🟣 Техлид Sourcecraft Code Assistant
С сильным практическим бэкграундом принимал участие как технический лид в создании мощного AI-расширения для VS Code.🟣 Создатель полезного Open Source
Разрабатывает утилиты, которые позволяют быстро начать эксперименты с инференсом и агентами в локальном окружении: например, набор скриптов vllm-setup для быстрого запуска окружения и mini-proxy — минималистичный прокси для OpenAI API провайдеров.🟣 Автор интерактивных ML-визуализаций
Объясняет сложные концепции наглядно. Создал серию залипательных обучающих материалов, где можно вживую пощупать работу сетей Хопфилда, машин Больцмана и VC-размерности.Роман регулярно делится инженерными наработками, инсайтами и экспертизой в своем авторском Telegram-канале На курсе Роман выступает консультантом программы: он помогает формировать содержание уроков с опорой на актуальные инженерные практики и жесткие требования индустрии. Узнать больше о программе и разработке автономных систем: 👉 Курс «Разработка ИИ-агентов» Так, продолжаем знакомить вас с командой? 👍 — Да, ждем новых лиц 🔥 — Жду полезные материалы от Романа
@PostMapping("/payments")
public PaymentResult pay(
@RequestHeader("Idempotency-Key") String key,
@RequestBody PaymentRequest request) {
// Ваша реализация
}
📋 Требования
— Повторный запрос с тем же ключом возвращает результат первого вызова и НЕ выполняет списание заново.
— Разные ключи → разные операции.
— Конкурентные запросы с одним ключом (двойной клик / параллельные ретраи) не должны привести к двойному выполнению.
— Ключ хранится с TTL (например, 24 часа).
Ставьте → 🔥, если нравится формат. Если нет → 🌚
💬 Решения под спойлер. Сравним, какое будет лучше.
🐸 Библиотека собеса по Java
#practiseimport com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.lang.ArchRule;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
@Test
void controllers_must_not_touch_repositories() {
var imported = new ClassFileImporter().importPackages("com.myapp");
ArchRule rule = classes()
.that().resideInAPackage("..controller..")
.should().onlyDependOnClassesThat()
.resideOutsideOfPackage("..repository..");
rule.check(imported);
}
🔹 Из коробки:
→ проверка слоёв (layered) и onion-архитектуры одним fluent-вызовом;
→ поиск циклических зависимостей между пакетами;
→ контроль неймингов и аннотаций.
Работает с любым тест-фреймворком — JUnit, TestNG, без разницы. Для легаси есть «заморозка»: фиксируешь текущие нарушения как baseline и блокируешь только новые, разгребая старые постепенно. Можно даже задавать правила PlantUML-диаграммой и проверять код на соответствие картинке.
Версия 1.4.2, поддержка вплоть до Java 26. Идеален, когда в команде больше трёх человек и архитектуру хочется не объяснять на словах, а зафиксировать в коде.
📱 Репозиторий
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterpriseconnections = (core_count * 2) + effective_spindle_count
Для 8 ядер + SSD это ~17 коннекшенов. И помни про реплики: 5 подов по 20 = 100 коннекшенов к одной базе только от этого сервиса, а у Postgres max_connections обычно 100–200. Перешагнул → FATAL: sorry, too many clients already.
Прежде чем раздувать пул, загляни в pg_stat_activity. В 9 из 10 случаев там медленные запросы без индекса, idle in transaction или локи. Больше коннекшенов = больше параллельных медленных запросов.
2️⃣ minimumIdle = maximumPoolSize, а не половине
Туториалы любят min-idle: 5 / max: 20 → «в холостом держим 5, в пик расширяемся». Звучит экономно, а на деле каждый новый коннекшн — это TCP + TLS + auth + инициализация сессии = 30–100 мс сверху на первые запросы при расширении. Спайк на старте дня → красивый пик p99 → ложный инцидент.
HikariCP проектировался как фиксированный пул. Дефолт minimumIdle == maximumPoolSize, и автор прямо просит не трогать. Хочешь экономить — уменьшай maximumPoolSize, а не разноси его с minimumIdle.
3️⃣ maxLifetime: всегда меньше любого внешнего таймаута
Дефолт 30 минут. Проблема: если что-то в инфраструктуре закроет коннекшн раньше, чем HikariCP его «состарит», ловишь Connection is closed.
А закрыть может многое:
▪️ AWS NLB — idle TCP через 350 сек
▪️ AWS ALB — 60 сек
▪️ корпоративный фаервол — 5–15 мин, без логов
▪️ PgBouncer server_idle_timeout — 600 сек
▪️ Postgres idle_in_transaction_session_timeout — нередко 10 мин
Ставь с запасом 30–60 сек меньше самого короткого внешнего таймаута. Не видишь внешних таймаутов — 300000 (5 мин) разумный дефолт.
4️⃣ keepaliveTime: чтобы коннекшн не протух в idle
Дефолт 0 → выключено. В средах с агрессивным conntrack или короткими idle-таймаутами файрвола соединение тихо рвётся, и следующий клиент получает Broken pipe / Connection reset на первом же запросе.
Включаешь — и HikariCP раз в N мс гоняет SELECT 1 по простаивающим коннекшенам.
spring.datasource.hikari: keepalive-time: 30000 # 30 сек max-lifetime: 300000 # keepalive ОБЯЗАТЕЛЬНО меньшеМинимум — 30 сек, меньше HikariCP проигнорит. Нагрузка копеечная: 20 коннекшенов = 40 пингов в минуту. 5️⃣ connectionTimeout: это твой SLA Дефолт 30 сек — почти всегда абсурд. Если API должно отвечать за 500 мс, клиент через 30 сек уже давно получил 504 от ingress. А бэкенд продолжает копить запросы, потоки висят в ожидании коннекшна, сервис застревает на минуты. Лучше fail fast:
spring.datasource.hikari.connection-timeout: 2000 # 2 секПул исчерпан → быстрый 503, очередь не растёт, алерт срабатывает сразу. Сверху можно навесить circuit breaker (Resilience4j). ⚠️ И отдельно про Actuator: /actuator/health/db дёргает базу. При исчерпанном пуле он тоже встаёт в очередь → DOWN → k8s liveness рестартит под → нагрузка переезжает на соседей → каскад. Лечится коротким connectionTimeout + liveness, который не трогает базу вообще. И главное помни: HikariCP — это просто пул. Если в сервисе медленные запросы без индексов, ни твики таймаутов, ни раздувание пула не помогут — получишь больше параллельных медленных запросов, и база встанет ещё быстрее. Сначала pg_stat_activity, pg_stat_statements, EXPLAIN ANALYZE — потом настройка пула. ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #Enterprise
docker compose up -d --no-deps api
— Пересобрать и запустить: docker compose up -d --no-deps --build api
— Посмотреть логи только одного: docker compose logs -f api
— Рестарт без пересоздания: docker compose restart api
— Масштабировать: docker compose up -d --scale worker=3
💡 restart не подхватывает изменения в docker-compose.yml или Dockerfile, для этого нужен up -d. Если обновили env-переменные или порты — только up -d применит изменения.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS com.squareup.okhttp3:okhttp:4.12.0
//JAVA 21+
import okhttp3.*;
public class fetch {
public static void main(String[] args) throws Exception {
var client = new OkHttpClient();
var req = new Request.Builder()
.url("https://api.github.com/repos/jbangdev/jbang")
.build();
try (var resp = client.newCall(req).execute()) {
System.out.println(resp.body().string());
}
}
}
jbang fetch.java — и всё работает. Никакого pom.xml, никакого build-шага, никакой структуры папок.
Что ещё умеет:
— запускать скрипты прямо по URL или из GitHub Gist (jbang https://.../script.java);
— генерить нативные бинарники через GraalVM;
— ставить скрипт как системную команду (jbang app install);
— экспортить в полноценный Maven/Gradle-проект, когда прототип дорос до проекта.
Поддерживает .java, .jsh, .kt, .groovy и даже .md. А если на машине нет JDK, скачает сам.
Идеален для CLI-тулзов, автоматизации, обучения и тех моментов, когда писать Python только потому что «на Java долго» — обидно.
📱 Репозиторий
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise
Available now! Telegram Research 2025 — the year's key insights 
