🔹 Demystifying Spring Boot With Spring Debugger
Обзор плагина Spring Debugger от JetBrains. Этот плагин позволяет удобнее дебажить Spring-приложения, а еще наглядно показывает, какие бины загружены в контекст, какие свойства какими значениями проинициализированы и какая транзакция активна на момент той или иной точки остановки.
🔹 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1
Перевод доклада Мацея Валковяка Performance oriented Spring Data JPA & Hibernate, сделанный командой Spring АйО. Это первая из трех частей, и она сконцентрирована на управлении коннектами к БД.
🔹 Premature Design Is Not Design
В статье автор рассказывает о том, как преждевременное переусложенение дизайна приложений может привести к проблемам. Приводятся два примера: использование RBAC и DRY.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом запуска кода и обращения к /orders?
Anonymous Quiz
10%
RuntimeException
61%
Ошибка компиляции
5%
4хх Ошибка
6%
5хх Ошибка
19%
Посмотреть ответ
😁9👍6❤2👏1
Java-разработчик — 250 000 — 450 000 ₽ — гибрид (Москва, Санкт-Петербург, Екатеринбург, Новосибирск, Казань)
Java-разработчик (Система непрерывной интеграции и развёртывания) — 250 000 — 450 000 ₽ —гибрид (Москва, Санкт-Петербург, Екатеринбург, Новосибирск, Казань)
Java разработчик (продукт «Справочники») — от 200 000 до 300 000 ₽ —гибрид (Москва)
Java Developer — 280 000 — 320 000 ₽ —гибрид (Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2
Apache Kafka — это распределённая система обработки потоковых данных, которая часто используется для обработки больших объёмов сообщений в реальном времени. В этом посте мы разберём пошаговое подключение Kafka к проекту.
Для начала вам нужно добавить зависимости.
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
ИЛИ
implementation 'org.apache.kafka:kafka-clients:3.0.0'
Убедитесь, что у вас установлен Apache Kafka и Zookeeper, или используйте сервисы, такие как Confluent Cloud.
KafkaProducer используется для отправки сообщений в Kafka. Вот пример создания продюсера, который будет отправлять сообщения в топик Kafka.
Шаг 1. Создайте конфигурацию продюсера:
public class KafkaProducerConfig {
public KafkaProducer<String, String> createProducer() {
Properties properties = new Properties();
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
return new KafkaProducer<>(properties);
}
}
Шаг 2. Отправка сообщения:
public class KafkaMessageSender {
public void sendMessage(String topic, String message) {
KafkaProducer<String, String> producer = new KafkaProducerConfig().createProducer();
ProducerRecord<String, String> record = new ProducerRecord<>(topic, message);
try {
producer.send(record, (metadata, exception) -> {
if (exception != null) {
exception.printStackTrace();
} else {
System.out.println("Сообщение отправлено в " + metadata.topic());
}
});
} catch (Exception e) {
e.printStackTrace();
} finally {
producer.close();
}
}
}
Шаг 1. Создайте конфигурацию консюмера:
public class KafkaConsumerConfig {
public KafkaConsumer<String, String> createConsumer() {
Properties properties = new Properties();
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
properties.put(ConsumerConfig.GROUP_ID_CONFIG, "consumer-group");
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
return new KafkaConsumer<>(properties);
}
}
Шаг 2. Чтение сообщений:
public class KafkaMessageReceiver {
public void receiveMessages(String topic) {
KafkaConsumer<String, String> consumer = new KafkaConsumerConfig().createConsumer();
consumer.subscribe(Arrays.asList(topic));
try {
while (true) {
var records = consumer.poll(1000);
for (ConsumerRecord<String, String> record : records) {
System.out.println("Получено сообщение: " + record.value());
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
consumer.close();
}
}
}
Запустите сервер Kafka и Zookeeper (если используете локальную установку).
▪️ Включите продюсер:
public class Main {
public static void main(String[] args) {
KafkaMessageSender sender = new KafkaMessageSender();
sender.sendMessage("my_topic", "Привет, Kafka!");
}
}
▪️ Запустите консюмер для получения сообщений:
public class Main {
public static void main(String[] args) {
KafkaMessageReceiver receiver = new KafkaMessageReceiver();
receiver.receiveMessages("my_topic");
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥2👾1
Последний шанс залутать курсы Proglib Academy с выгодой 40% и пожизненным доступом.
До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.
Выбираем и забираем 👈
P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.
Выбираем и забираем 👈
P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
🧠 Вайб-кодинг: что это и как это влияет на разработку
Вайб-кодинг — это когда разработчик описывает задачу на естественном языке, а AI генерирует код. Это ускоряет процесс, но важно контролировать качество.
🚧 Проблема: сгенерированный код может быть неэффективным или иметь дыры в безопасности.
🎯 Что нужно учитывать при использовании вайб-кодинга:
— Быстрое создание прототипов
— Доступность для людей без технического образования
— Риски качества и безопасности кода
🔗 Подробнее о вайб-кодинге в статье
🐸 Библиотека джависта #буст
Вайб-кодинг — это когда разработчик описывает задачу на естественном языке, а AI генерирует код. Это ускоряет процесс, но важно контролировать качество.
🚧 Проблема: сгенерированный код может быть неэффективным или иметь дыры в безопасности.
🎯 Что нужно учитывать при использовании вайб-кодинга:
— Быстрое создание прототипов
— Доступность для людей без технического образования
— Риски качества и безопасности кода
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🌚4❤3👍1
JOL — это инструмент от тех же разработчиков, что и JMH, и он помогает понять, как Java хранит объекты в памяти. Особенно полезен при оптимизации производительности и снижении потребления памяти.
📌 Что умеет JOL:
— Показывает внутреннюю структуру объектов Java (поля, пэддинг, смещения)
— Помогает исследовать выравнивание, заполнение и особенности layout'а объектов в разных JVM
— Учитывает влияние флагов типа -XX:ObjectAlignmentInBytes
— Есть аннотации и API для анализа объектов прямо из кода
— Поддерживает анализ "на месте" без запуска внешнего инструмента
🧠 Особенно актуально, если вы работаете с большим количеством данных, кастомными структурами или high-load системами. Понимание того, что реально занимает память, помогает сократить её расход без магии.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16💯4❤1👍1
Наш подписчик спрашивает:
Я только начинаю работать с обработкой исключений. В учебниках часто приводят примеры с try-catch, но в реальных проектах я не встречал их так часто. Насколько часто в реальных проектах используется обработка исключений? И в каких случаях она действительно необходима?
🔹 Как вы используете обработку исключений в своих проектах?
— В каких ситуациях вы предпочитаете использовать try-catch?
— Какие ошибки чаще всего приходится обрабатывать?
— Какие подходы к обработке исключений сработали для вас лучше всего?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1👾1
Когда проект обрастает модулями, библиотеками и зависимостями, легко потерять нить. Dependency Analyzer помогает навести порядок в зависимостях и избавить проект от хлама.
🔹 Что делает
— Показывает все зависимости (включая транзитивные) в виде дерева
— Помогает обнаружить дублирующиеся зависимости, неиспользуемые библиотеки и конфликты версий
— Даёт рекомендации по удалению или замене
🔹 Зачем это нужно
— Упрощает анализ pom.xml или build.gradle — не нужно гадать, откуда взялась та или иная версия
— Помогает оптимизировать сборку и ускорить CI
— Снижает риски уязвимостей за счёт удаления неиспользуемых библиотек
🔹 Как использовать
— Откройте окно Maven/Gradle
— Нажмите кнопку Analyze Dependencies.
— IDEA покажет дерево с путями, версиями и проблемами
— Можно быстро перейти к конфигурации и исправить
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1🔥1