Telegram Web
⚡️ Просто о сложном: JIT-компилятор

Чтобы ускорить работу приложения, JVM включает в дело Just-In-Time (JIT) компилятор.

Он превращает часто выполняемый байткод в нативные машинные инструкции прямо во время исполнения.

🔹 Как это работает


— При старте приложения JVM интерпретирует байткод.

— Когда видит, например, что метод вызывается часто (т.н. hot method), — JIT компилирует его в машинный код.

— В следующий раз этот метод исполняется уже как нативный, без интерпретации.

— Всё это происходит «на лету» — поэтому Java-программы разгоняются после первых секунд работы.

🔹 Зачем нужен JIT

Он сочетает плюсы интерпретации и компиляции:

— Быстрый старт приложения (интерпретация).
— Высокая производительность после разогрева (JIT).

🔹 Что он умеет оптимизировать

— Inlining: подставляет код мелких методов прямо в место вызова.

— Escape Analysis: определяет, можно ли объект хранить на стеке вместо heap.

— Loop unrolling: разворачивает циклы для ускорения.

— Dead code elimination: выбрасывает ненужные операции.

— И другие алгоритмы.

⚙️ Как посмотреть, что делает JIT

Включите флаг:
-XX:+PrintCompilation


И увидите, какие методы компилируются во время исполнения.

Интересно почитать про алгоритмы JIT подробнее → ставь 👾

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

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👾27👍4🔥3
Какие планы на свободное время субботу и воскресенье?)

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

#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13🔥4😢4👍2💯2
🛰 Event-Driven Architecture с Apache Kafka

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

📝 Промпт:
Generate a Spring Boot 3 microservice architecture example with Apache Kafka event-driven communication.

— Configure Kafka producer and consumer with Spring Kafka.
— Use JSON Schema/Avro for message serialization and schema validation.
— Implement a domain event publisher (e.g. OrderCreatedEvent).
— Add event listener services that react asynchronously (e.g. notification service, billing service).
— Implement idempotency strategy for consumers (deduplication of events).
— Use Kafka Transactions for exactly-once semantics.
— Add Dead Letter Queue (DLQ) handling for failed messages.


💡 Расширения:

— Настройте Kafka Streams для real-time агрегатов.
— Интегрируйте с Schema Registry для версионирования событий.
— Добавьте Observability: trace event flow with OpenTelemetry.

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2👏1
🆕 Java Digest: JUnit 6, Amplicode и Kotlin

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

1️⃣ JUnit 6

Крупное обновление фреймворка. Теперь требуется Java 17+, все модули объединены в единую версию, устаревшие API удалены, добавлены аннотации JSpecify для строгой null-безопасности.

2️⃣ Amplicode для IntelliJ IDEA

Мощное расширение IDE для Spring-проектов. Позволяет генерировать CRUD-код, миграции, OpenAPI и управлять сущностями прямо из IDE.

3️⃣ Kotlin для QA-автоматизации

Статья о том, почему стоит смотреть в сторону Kotlin: меньше шаблонного кода, выше читаемость и меньше ошибок. Kotlin даёт прирост скорости и лаконичности, особенно для команд, уставших от громоздкости Java.

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

#News
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏2👍1
✔️ Java-тест: Docker edition

Продолжаем тестить новый формат. Представим задачу 👇

У вас есть Spring Boot-приложение. Нужно собрать Docker-образ, который:
1. Основан на официальном JDK 21
2. Поддерживает порт 8080
3. Настраивает часовой пояс контейнера на Москву (Europe/Moscow)


📦 Задание:

Составьте Dockerfile, который корректно запускает приложение в контейнере по условиям выше.

Ставьте →🔥, если зашёл формат. Если нет, то → 🤔

💬 Скидывайте Dockerfile в комментарии, главное прячьте под спойлер.

🐸 Библиотека собеса по Java

#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍3👏1😁1
Как подготовиться к первому собеседованию джуна?

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

Я изучаю Java уже около полугода, сделал небольшой pet-project на Spring Boot, немного HTML/CSS/JS. Сейчас ищу первую работу джуном. Хочу понять, как лучше подготовиться к интервью: на какие темы стоит сделать упор, какие вопросы чаще всего задают и что вообще ожидают от кандидата на стартовую позицию?


🔹 Что думаете?

— Какие темы реально спрашивали у вас на собеседовании джуна
— Что чаще всего «проваливают» начинающие (и как этого избежать)
— Какой совет вы бы дали себе в тот момент, когда шли на первое интервью

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

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

#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩72👍1🔥1😁1
☕️ Java && Coffee

Выходные прошли, надеюсь все успели отдохнуть. Наблюдал сегодня красивое закатное небо 😍

Как прошли ваши выходные?

Отправляйте фото в комментарии👇🏻

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

#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3😍2
👑 Фишка IntelliJ IDEA: Jump to Last Edit Location

Когда IDE открыта часами, вкладок — десятки, а вы пытаетесь вспомнить, "где же я правил этот метод", эта комбинация спасает от паники.

🔹 Что делает

— Мгновенно возвращает курсор к последнему месту, где вы редактировали код
— Работает даже после навигации по проекту, переходов в другие файлы или классы
— Поддерживает “историю изменений” — можно нажимать несколько раз, чтобы двигаться назад по правкам

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

— Экономит время при переключениях между файлами
— Полезно при дебаге или анализе кода, когда IDE уводит вас по ссылкам вглубь проекта
— Убирает хаос при работе с большим количеством вкладок

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

— Нажмите Ctrl+Shift+Backspace (Windows/Linux) или ⌘+Shift+Backspace (macOS)
— IDEA вернёт вас туда, где вы последний раз редактировали код
— Повторите комбинацию несколько раз — и вы пройдёте “назад по следам” своих правок

💡 Работает даже после перезапуска IDEA — история правок сохраняется между сессиями.

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍93
This media is not supported in your browser
VIEW IN TELEGRAM
В proglib.academy — Глобальная распродажа знаний ‼️

💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.

Курсы с практикой, без воды и пафоса.
Просто берёшь и делаешь апгрейд.


👉 Успей забрать свой курс на proglib.academy
😁41🤔1
Практикум, который снимет боль про микросервисы, о которой все молчат.

Sync vs Async: что убьёт ваш проект, а что спасёт?

15 октября, 19:00 — практический вебинар для разработчиков, архитекторов и девопсеров от OTUS. Работаем вместе с Олегом Голенищевым, Senior .NET-разработчиком Directum, преподавателем Microsoft.

Приходи, если хочешь:
✍️Понимать, где Sync — мастхэв, а где Async — единственный шанс выжить
✍️Получить FANG-уровня чек-лист по интеграции (и бонус — шаблоны конфигов Spring Boot для Kafka и RabbitMQ)
✍️Забрать 7% скидку на любой курс OTUS (именно так, просто за регистрацию)
✍️Не попасть в “клуб тех, кто строил микросервисы по учебнику, а теперь переписывает всё с нуля”

Запишись, чтобы не чинить то, что можно не ломать.
Запись, подарки и скидка — только для своих. Лови шанс — кликай на регистрацию: https://tglink.io/fffa463834a3

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFJ1VxwA
Вы случайно сделали коммит с ошибкой. Как быстро изменить коммит, не создавая новый?
Anonymous Quiz
48%
git commit --amend
22%
git reset HEAD~1
12%
git revert HEAD
3%
git stash
14%
Посмотреть ответ
👍8🔥51
⚙️ Spring Boot + Flyway: пошаговая настройка миграций базы данных

Когда проект живёт дольше полугода — ручное обновление схемы БД превращается в хаос.

Flyway решает эту проблему: управляет версионированием схемы и миграциями через SQL-скрипты прямо из вашего приложения.

Для настройки:

1️⃣ Добавляем зависимость
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>

ИЛИ

implementation("org.flywaydb:flyway-core")


Также добавляет драйвер для вашей БД.

2️⃣ Создаём структуру для миграций

По умолчанию Flyway ищет скрипты в:
src/main/resources/db/migration/


Пример:
db/migration/
├─ V1__init_schema.sql
├─ V2__add_users_table.sql
└─ V3__add_index_email.sql


Имена файлов важны — Flyway сортирует их по версии (V1, V2, ...).

3️⃣ Пример SQL-миграции

— V1__init_schema.sql

CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL
);

— V2__add_users_table.sql

CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT now()
);


4️⃣ Настройки Flyway в application.yml

spring:
datasource:
url: jdbc:postgresql://localhost:5432/app
username: app
password: secret
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration


Flyway выполнит все миграции, которых ещё нет в таблице flyway_schema_history.

5️⃣ Команды и интеграция

▪️ Локально:
./mvnw flyway:migrate


или просто запустите Spring Boot — миграции применятся автоматически.

▪️ Для CI/CD:

— Используйте flyway:validate перед деплоем.
— Добавляйте новые SQL-файлы при изменении схемы.
— Не редактируйте старые версии (они уже зафиксированы).

6️⃣ Полезные практики

— Используйте R__-скрипты (repeatable migrations) для справочников, триггеров, процедур.
— Версионируйте миграции в Git вместе с кодом.
— Проверяйте миграции на чистой базе перед мержем.
— Совмещайте с Testcontainers для автоматической проверки миграций в CI.

💡 Преимущество Flyway — прозрачная история эволюции базы. Можно воспроизвести схему любой версии, не ломая прод.

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3👏1
👀 Задача с собеса: проверка на палиндром (jun)

Дана строка, нужно определить, является ли она палиндромом.

Палиндром — это строка, которая читается одинаково слева направо и справа налево. Пробелы, знаки препинания и регистр букв при этом не учитываются.

💡 Ключевые моменты:

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

▪️ Решение:

Эффективное реализация может включать два указателя, движущихся навстречу друг другу от начала и конца строки.

💬 Делитесь своими решениями в комментариях (прячьте под спойлер)

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

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥21
🧪 JUnit 6 — уже почти

JUnit официально двигается дальше: версия 6 уже в RC3. Минимальная поддерживаемая Java теперь — 17, архитектура переосмыслена, и наконец-то все модули (Platform, Jupiter, Vintage) получили единый номер версии.

Но если честно — революции не случилось. Да, API заметно подчистили, выкинули старые модули вроде junit-platform-runner, добавили встроенную интеграцию с Java Flight Recorder и улучшили поддержку Kotlin (suspend-тесты теперь можно писать нативно).

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

🔗 Полные release notes

💬 Оставляйте ваше мнение в комменты

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

#News
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2🥱2
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом

В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.

В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;

🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября

👉 Записаться на курс
1
🧐 Хочешь в Data Science, но не знаешь, с чего начать?

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

Всего пару минут — и ты поймёшь, куда двигаться дальше.


👉 Пройти тест
2025/10/15 14:48:06
Back to Top
HTML Embed Code: