Telegram Web
👑 Фишка 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👍94
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
15%
Посмотреть ответ
👍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
👍9🔥3👏1
👀 Задача с собеса: проверка на палиндром (jun)

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

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

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

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

▪️ Решение:

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

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

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

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥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
👍65🔥2🥱2
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом

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

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

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

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

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

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


👉 Пройти тест
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 Путешествие URL: что происходит, когда вы вводите адрес сайта

Каждый раз, когда вы набираете https://example.com в браузере — за кулисами запускается целая цепочка событий 👇

1️⃣ Разбор адреса

Браузер делит URL на части:

▪️ https — протокол
▪️ example.com — домен
▪️ /page — путь к ресурсу

2️⃣ Поиск IP

Если IP не сохранён в кеше, браузер спрашивает DNS-сервер: «Где живёт example.com

3️⃣ Установление соединения

Создаётся TCP-соединение с сервером по IP и порту (80 для HTTP, 443 для HTTPS).

4️⃣ Запрос ресурса

Браузер отправляет HTTP-запрос: GET /page HTTP/1.1

5️⃣ Ответ сервера

Сервер возвращает HTML, CSS, JS и статус-код (например, 200 OK или 404 Not Found).

6️⃣ Рендеринг страницы

Браузер обрабатывает HTML, применяет стили и выполняет JavaScript.

7️⃣ Шифрование

Если сайт работает по HTTPS, соединение шифруется через SSL/TLS.

8️⃣ Кеширование

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

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

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥4
⚡️ Просто о сложном: как JIT делает код быстрее

Вы когда-нибудь задумывались, как JIT умеет так ловко оптимизировать код в реальном времени?

Сегодня разберём, какие именно суперспособности JIT даёт вашему коду.

🔹 Инлайнинг методов

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

Пример:
int sum(int a, int b) {
return a + b;
}

int result = sum(5, 10);


Стало:

int result = 5 + 10; // JIT инлайнит код метода sum


🔹 Удаление мертвого кода

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

🔹 Оптимизация циклов

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

🔹 Параллельная компиляция

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

🔹 Использование final переменных

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

🔹 Удаление лишних проверок

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

🔹 Классификация горячих и холодных методов

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

🔹 Слияние и удаление дубликатов

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

Пример:
int a = 5;
int b = 5;
int c = a + b;
int d = a + b; // Дублирование


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

💬 Пишите в комменты, какие инструменты ещё разобрать.

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

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥2
🚀 Java Roadmap 2025

В 2025 году Java продолжает развиваться, и вот на что стоит обратить внимание в учёбе. Роадмапа на картинке, ниже ключевые моменты.

1️⃣ Основы и ООП

Фокус на record классы (Java 16+), абстракция и полиформизм.

2️⃣ Коллекции и потоки

Основной тренд — использование Streams API (Java 8+) и неизменяемых коллекций (Java 9+).

3️⃣ Многозадачность

Project Loom и виртуальные потоки (Java 21) упростят многозадачность и повысит производительность.

4️⃣ Функциональное программирование

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

5️⃣ Web и микросервисы

Активное использование Spring Boot, Spring Cloud, Swagger/OpenAPI для документации.

6️⃣ Тестирование и сборка

JUnit 5, Mockito, Testcontainers и инструменты сборки Maven и Gradle для автоматизации.

7️⃣ Базы данных и ORM

Знания JDBC, Hibernate, JPA для создания надежных и масштабируемых систем.

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥52🥱1
🎲 Мы не только учим, но и играем!

На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.

‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.

👉 Записаться на курс
This media is not supported in your browser
VIEW IN TELEGRAM
Создавайте технологии, которые меняют мир

В команду Яндекса нужны бэкенд-разработчики с опытом от 3 лет на C++, Python, Java/Kotlin, Go — строить полезные сервисы для миллионов пользователей.

Как получить офер за неделю?

• До 12 ноября оставить заявку на участие и пройти предварительный этап.
• 15–16 ноября решить задачи на технических секциях.
• 17–21 ноября прийти на финальную встречу.

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

Читайте подробности и оставляйте заявку на сайте.

Реклама. ООО "Яндекс". ИНН 7736207543
🛡 Circuit Breaker & Resilience4j

В микросервисах падение одного сервиса может уронить всю систему — эффект «домино». Circuit Breaker помогает изолировать сбои и держать SLA под контролем.

📝 Промпт:
Generate a Spring Boot 3 configuration with Resilience4j Circuit Breaker.

— Configure Circuit Breaker around external HTTP calls (e.g. RestTemplate/WebClient).
— Add Retry policy with exponential backoff.
— Add Rate Limiter and Bulkhead isolation (thread pool separation).
— Provide fallback methods (graceful degradation).
— Enable metrics collection with Micrometer and Prometheus.
— Expose actuator endpoints for circuit state monitoring.
— Add chaos testing scenario: simulate latency and failures.


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

— Настройте TimeLimiter для защиты от зависаний.
— Интегрируйте с Spring Cloud Gateway для глобальных политик.
— Добавьте Grafana dashboards для визуализации отказоустойчивости.

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
Недавно мы анонсировали старт нового курса «Математика для Data Science».

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

Спикеры курса:

👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.

👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.

👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.

Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.

🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!

👉 Записаться на курс
👍1😁1
2025/10/17 15:17:25
Back to Top
HTML Embed Code: