Spring использует
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1👏1
Хештег с темой вопроса:
🔥 — Супер, удобно
😁 — Неудобно, верните как было
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21😁3
Нагрузочное тестирование — это проверка поведения системы
Обычно проверяем:
—
—
—
—
Используем инструменты типа
#tests
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4❤1⚡1
Напишите метод для production-кода 👇
📦 Задание
Реализуйте метод для безопасного получения значения из вложенной Map с default-значением:
public class MapUtils {
public static <T> T getNestedValue(Map<String, Object> map,
String path,
T defaultValue) {
// Ваша реализация
}
}Требования
— Путь задается через точку: "user.address.city"
— Если любой уровень вложенности null или отсутствует → вернуть defaultValue
— Обработать пустой путь → вернуть defaultValue
— Обработать null в параметрах → вернуть defaultValue
Примеры использования
Map<String, Object> data = Map.of(
"user", Map.of(
"name", "John",
"age", 30,
"address", Map.of(
"city", "Moscow"
)
)
);
String city = getNestedValue(data, "user.address.city", "Unknown");
// → "Moscow"
Integer age = getNestedValue(data, "user.age", 0);
// → 30
String country = getNestedValue(data, "user.address.country", "Russia");
// → "Russia" (не найдено)
Ставьте → 🔥, если нравится формат. Если нет → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍3❤1🤔1
🔹 Статическое связывание (или раннее связывание) — это связывание метода с
—
—
—
—
Решение принимается на основе типа
🔹 Динамическое связывание (или позднее связывание) — это связывание метода с
—
—
Решение принимается на основе
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤2👏1
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
В Kafka существует три уровня гарантий доставки сообщений:
Выбор зависит от задачи: для логов подойдет
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1👏1
Spring Profiles — это механизм в Spring, который позволяет
С их помощью можно
Типичный пример —
Профиль можно указать:
—
—
—
Это обеспечивает чистое разделение конфигураций и снижает риск ошибок при деплое.
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1
Ежемесячный опрос по грейдам. Растём вместе 💪🏻
Ваш грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34😁27🔥23❤19
@Transactional на классе задаёт
Аннотация на методе
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
Представим задачу 👇
У вас есть Spring Boot-приложение с PostgreSQL. Нужно написать конфиг application.yml, который:
— настраивает подключение к БД;
— включает Hibernate DDL auto-update в dev-режиме;
— настраивает логирование SQL-запросов;
— устанавливает максимальный размер пула соединений = 10.
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1👏1🤔1
🔹 shutdown() делает следующее:
—
—
—
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3👏1
Strategy — это
Когда использовать:
—
—
—
Преимущества:
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤩2❤1🔥1💯1
Media is too big
VIEW IN TELEGRAM
🔥 Закрой пробелы в математике за 8 недель
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
Singleton — это
🔹 Основные характеристики:
—
—
—
🔹 Когда использовать:
—
—
—
—
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2💯1
Adapter (Адаптер) — это
🔹 Когда использовать:
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1👏1
Factory Method —
🔹 Когда использовать:
🔹 Как работает:
🔹 Плюсы:
—
—
—
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1👏1
Моё отношение к постам:
🔥 — Интересно, полезно
🤔 — Нейтрально
😁 — Не понравилось, напишу что
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38🤔6❤1
Abstract Factory — это
Простыми словами:
▪️ Пример:
// Абстрактные продукты
interface EmailSender {
void send(String to, String message);
}
interface SmsSender {
void send(String phone, String message);
}
// Абстрактная фабрика
interface NotificationFactory {
EmailSender createEmailSender();
SmsSender createSmsSender();
}
// AWS реализация
class AwsEmailSender implements EmailSender {
public void send(String to, String message) {
System.out.println("Отправка через AWS SES: " + to);
}
}
class AwsSmsSender implements SmsSender {
public void send(String phone, String message) {
System.out.println("Отправка через AWS SNS: " + phone);
}
}
class AwsNotificationFactory implements NotificationFactory {
public EmailSender createEmailSender() {
return new AwsEmailSender();
}
public SmsSender createSmsSender() {
return new AwsSmsSender();
}
}
// Аналогично FirebaseNotificationFactory...
// Использование
NotificationFactory factory = new AwsNotificationFactory();
EmailSender email = factory.createEmailSender();
SmsSender sms = factory.createSmsSender();
// Гарантия: оба сервиса работают через AWS
▪️ В чем отличие от Factory Method
— Factory Method создает
— Abstract Factory создает
▪️ Когда использовать
▪️ Минус
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤2
Prototype — это
Простыми словами: вместо создания объекта с нуля через конструктор, вы клонируете уже существующий экземпляр.
▪️ Пример:
// Прототип
abstract class Report implements Cloneable {
protected String template;
protected DatabaseConnection dbConnection;
protected Map<String, Object> settings;
// Сложная инициализация
public Report() {
this.dbConnection = new DatabaseConnection(); // затратная операция
this.settings = loadDefaultSettings(); // загрузка из файла
}
@Override
public Report clone() {
try {
Report cloned = (Report) super.clone();
// Глубокое копирование для изменяемых полей
cloned.settings = new HashMap<>(this.settings);
return cloned;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
abstract void generate();
}
class SalesReport extends Report {
void generate() {
System.out.println("Генерация отчета по продажам");
}
}
// Использование
Report prototype = new SalesReport(); // долгая инициализация
// Быстрое создание копий
Report report1 = prototype.clone();
Report report2 = prototype.clone();
report2.settings.put("period", "Q2"); // изменяем только нужные параметры
▪️ Когда использовать
—
—
—
▪️ Важно: Shallow vs Deep Copy
Shallow copy — копируются только примитивы, ссылки на объекты остаются теми же
Deep copy — создаются копии вложенных объектов
▪️ Альтернативы clone()
— Copy constructor: new Report(original)
— Статический метод: Report.copy(original)
— Сериализация: для очень сложных объектов
▪️ Минус
#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1👏1