Java библиотека
31.7K subscribers
2.39K photos
82 videos
9 files
2.15K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
🔍Тестовое собеседование на Middle Java-разработчика завтра

14 мая(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Константин Лесняк, Java-разработчик с большим опытом проведения собесов, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Костя будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Косте

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. 

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwZ6XvC
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2🎅1
Как маппить объекты

Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.

1️⃣ Ручной маппинг

Простой, но не очень масштабируемый.
public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}

public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}


2️⃣ MapStruct

Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

UserDto toDto(User user);
User toEntity(UserDto dto);
}


3️⃣ ModelMapper

Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);


4️⃣ Record + Java 17

Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}

UserDto dto = new UserDto(user.getId(), user.getName());


5️⃣ Stream API для маппинга коллекций

Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());


Какой способ используете в проектах?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥94
Forwarded from Java News
JForge: Создаем свою мини-IDE на Java Swing с нуля (с темной темой и подсветкой синтаксиса!)

Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.

Читать статью
👍84🔥3
📢 JSON — это удобно. До тех пор, пока всё не ломается.

Гибкий формат без схем кажется спасением, но на масштабе превращается в источник ошибок, конфликтов и головной боли.

🔍 Schema Registry — это способ вернуть контроль. На открытом уроке 19 мая в 19:00 МСК разберём:
— В чём слабые места JSON без схем;
— Как Schema Registry помогает валидации и версионированию;
— Когда всё-таки можно обойтись без схем;
— Какие инструменты реально работают (Avro, Protobuf, JSON Schema).

📊 Урок будет полезен разработчикам, дата-инженерам, архитекторам и PM, которые сталкиваются с интеграциями и масштабируемыми системами.

👉 Регистрируйтесь и получите скидку на программу обучения «Apache Kafka»: https://vk.cc/cLVFMI

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍32🔥2😁1
🧑‍💻 Универсальный инструмент рефакторинга в IntelliJ IDEA

Знакомы с отдельными сочетаниями клавиш для рефакторинга, такими как Shift + F6 или Ctrl + Alt + V?
Сочетание Ctrl + Alt + Shift + T открывает перед вами целый спектр возможностей рефакторинга в одном окне.

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

— Открывает меню, предоставляющее доступ к различным видам рефакторинга, таким как переименование, перемещение, изменение сигнатуры, извлечение метода, переменной, константы и другие. ​
— В зависимости от выделенного фрагмента, IntelliJ IDEA предложит только те варианты рефакторинга, которые применимы к текущему элементу кода.​

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

1. Выделите часть кода, которую хотите рефакторить (например, переменную, метод или класс).​
2. Нажмите Ctrl + Alt + Shift + T.​
3. Выберите необходимый тип рефакторинга из появившегося меню с помощью стрелок → Enter.​
4. Следуйте дальнейшим инструкциям IDE для завершения процесса рефакторинга.​

Знали о таком?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥64
Производительность и наблюдаемость бэкенда. Поиск проблем в продакшене

Признак мастерства бэкендера — глубокое понимание своего стека и того, как работает код в продакшене. Недаром во многих бигтех-компаниях принят подход “you build it, you run it”. Хороший программист не только умеет запилить фичи, но и знает, как работает в проде его софт, и может разобраться, почему его сервис тормозит. Для этого нужно знать особенности рантаймов, инфраструктуры и современные подходы к сбору телеметрии.

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

🌐 В программе курса:

🤩 Архитектура бэкенд-серверов (Golang, Java, PHP и др) и её особенности: модели обработки запросов и параметры конфигурации, влияющих на производительность
🤩 Zero-code instrumentation на разных языках программирования
🤩 Open Telemetry: основы технологии и применение на примере SigNoz
🤩 Суб-real-time телеметрия поверх UDP c PINBA и “промстэком” (Grafana/Prometheus)

🥸 Кто мы: R&D-центр Devhands. Автор курса — Михаил Курмаев, эксперт по сложным распределённым системам. Долгое время строил платформу в Badoo/Bumble, сейчас в Т-банке развивает дата-платформу.

🗓 Старт курса: 3 июня, 4 недели обучения.
Изучить программу и записаться можно здесь.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqv6iJ7v
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥4
🖥 Git-команда для особого случая

Случайно удалили ветку, а в ней была недоделанная фича или рабочий хотфикс? Паника близко?

💡 Команда спасения
git reflog


📌 Что делает

Показывает историю всех действий в Git — коммиты, переключения веток, ребейзы и даже force-push’и. Идеально, чтобы вернуть ветку из забвения или откатиться на стабильное состояние.

Например:
git checkout -b restore-branch HEAD@{3}

Создаёт новую ветку с того момента, где были 3 действия назад.

Использовали раньше?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥318👍7
🖥 fastjson2 — очень быстрая библиотека Java для работы с JSON

<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.51</version>
</dependency>


Особенности fastjson2:

— скорость работы fastjson2 намного больше, чем у других популярных JSON библиотек, включая jackson/gson/org.json, бенчмарки тут

— fastjson2 поддерживает новые возможностей JDK, включая JDK 11/JDK 17, имеется поддержка Record, поддержка GraalVM Native-Image

— fastjson2 поддерживает JSONPath, поддерживает синтаксис SQL:2016 JSONPath

🟡 Доки
🖥 GitHub

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥3
👩‍💻 SpELые приложения на Spring

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

🗓 21 мая в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework».

О чём поговорим:
✔️Разоберем, для чего нужен SpEL.
✔️Рассмотрим, в каких проектах Spring его можно встретить.

Кому будет интересно:
Spring-разработчикам, Java-бэкенд-инженерам, архитекторам ПО, IT-специалистам и студентам, заинтересованным в технологиях Spring.

В результате урока:
Узнаете, для чего нужен SpEL и где его можно применять.

🔗 Ссылка на регистрацию: https://vk.cc/cLXMWD

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
Media is too big
VIEW IN TELEGRAM
🖥 Изучаешь Java - создай проект. Перезагрузка.

Выпуск 4. Делаем начальный вариант ГРН на Spring Boot.

В
этом выпуске мы посмотрим, как просто можно сформировать начальный вариант web-приложения на Spring Boot.

🌐🗣СМОТРЕТЬ VKVIDEO

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183🔥3
Лайфхаки визуального сторителлинга 😉

Рассказываем, почему это полезно и как его построить, чтобы было понятно всем: и менеджерам, и разработчикам, и дизайнерам

И да, вы справитесь, даже если не умеете рисовать! Александр Зинченко, СТО Яндекс 360, поделился инструментами для быстрых и удобных скетчей. А ещё рассказал про сложности передачи идей в проектных командах, которые можно решить с помощью визуального сторителлинга 😎

Больше интересной и полезной информации в канале от команды Яндекс 360
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥2