Знаете, что в Java можно не писать отдельный класс с полями, конструктором, геттерами и toString() вручную?
Например, для DTO часто создают обычный класс:
Но если объект нужен просто для хранения данных, можно использовать record:
Java сама создаст конструктор, методы доступа, equals(), hashCode() и toString().
Обращение к полям выглядит немного иначе:
record хорошо подходит для DTO, ответов API, событий, команд, настроек и небольших неизменяемых объектов.
Например, можно удобно вернуть данные из REST-контроллера:
Важно помнить: record по смыслу должен быть простым носителем данных. Если внутри начинает появляться много бизнес-логики, сложных состояний и изменяемых полей, лучше подумать об обычном классе.
Так код становится короче, понятнее и меньше засоряется шаблонными методами.
👉 Java Ready | #совет
Например, для DTO часто создают обычный класс:
public class UserDto {
private final Long id;
private final String name;
private final String email;
public UserDto(Long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
}Но если объект нужен просто для хранения данных, можно использовать record:
public record UserDto(
Long id,
String name,
String email
) {}
Java сама создаст конструктор, методы доступа, equals(), hashCode() и toString().
Обращение к полям выглядит немного иначе:
user.name()
user.email()
record хорошо подходит для DTO, ответов API, событий, команд, настроек и небольших неизменяемых объектов.
Например, можно удобно вернуть данные из REST-контроллера:
return new UserDto(1L, "Alex", "alex@mail.com");
Важно помнить: record по смыслу должен быть простым носителем данных. Если внутри начинает появляться много бизнес-логики, сложных состояний и изменяемых полей, лучше подумать об обычном классе.
Так код становится короче, понятнее и меньше засоряется шаблонными методами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3
В ней ты узнаешь:
• Как продумать структуру микросервиса
• Как разделить проект на слои
• Как описывать API понятнее
• Как работать с DTO и моделямиПродолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥3
Знаете, что в Java лучше проверять строки через isBlank(), а не только через isEmpty()?
Но строка из пробелов для него уже не пустая:
А вот
Это удобно для валидации имён, логинов, комментариев, форм и любых пользовательских данных.
Так код становится надёжнее, потому что строка из пробелов больше не проходит как нормальное значение.
👉 Java Ready | #совет
isEmpty() проверяет только длину строки:"".isEmpty()
Но строка из пробелов для него уже не пустая:
" ".isEmpty()
А вот
isBlank() учитывает пробелы, табы и переносы строк:" ".isBlank()
Это удобно для валидации имён, логинов, комментариев, форм и любых пользовательских данных.
Так код становится надёжнее, потому что строка из пробелов больше не проходит как нормальное значение.
isBlank() это простой способ аккуратнее проверять текст в Java.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍6🔥4
С помощью этого ты можешь добавлять и убирать элементы слева и справа. Подходит и для очередей, и для стеков.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍3🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Это AI-платформа, которая помогает не просто находить научные статьи, а оценивать их качество через анализ цитирований. Сервис показывает, как именно используется работа: поддерживают ли её другие исследования, опровергают или просто упоминаю. Scite также умеет искать релевантные публикации и показывать контекст цитирования внутри текста.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥4
Каналы с Junior IT вакансиями
и стажировками
Подписывайся и забирай свой оффер
1. Стажировки и вакансии по России и миру
2. IT вакансии по СНГ
3. IT стажировки по СНГ
4. ИИ-ассистент для автооткликов
5. IT стажировки и волонтерства
6. IT стажировки в топовых компаниях мира
7. Удалённые IT вакансии и стажировки
8. Python вакансии и стажировки
9. БИГТЕХ вакансии и стажировки
10. Design вакансии и стажировки
11. QA вакансии и стажировки
12. Junior вакансии и стажировки
13. Frontend вакансии и вопросы собесов
14. Вакансии и стажировки для аналитиков
15. Вакансии в русских стартапах за границей
16. Вакансии и стажировки для DevOps
17. Вакансии, которых нет на ХХ.РУ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Знаете, что в Java switch можно использовать как выражение, а не только как отдельный блок кода?
Раньше для выбора значения часто писали так:
Работает, но кода много, и легко забыть break.
В современном Java можно записать это короче:
Такой switch сразу возвращает значение, поэтому его удобно использовать для конфигов, статусов, ролей, типов платежей, уровней логирования и любых фиксированных сценариев.
Если логика в ветке сложнее, можно использовать yield:
Код получается компактнее, а Java помогает следить, чтобы результат действительно был получен.
👉 Java Ready | #совет
Раньше для выбора значения часто писали так:
int timeout;
switch (env) {
case "dev":
timeout = 5;
break;
case "test":
timeout = 10;
break;
case "prod":
timeout = 30;
break;
default:
throw new IllegalArgumentException(env);
}
Работает, но кода много, и легко забыть break.
В современном Java можно записать это короче:
int timeout = switch (env) {
case "dev" -> 5;
case "test" -> 10;
case "prod" -> 30;
default -> throw new IllegalArgumentException(env);
};Такой switch сразу возвращает значение, поэтому его удобно использовать для конфигов, статусов, ролей, типов платежей, уровней логирования и любых фиксированных сценариев.
Если логика в ветке сложнее, можно использовать yield:
int price = switch (type) {
case "vip" -> {
int discount = 20;
yield basePrice - discount;
}
default -> basePrice;
};Код получается компактнее, а Java помогает следить, чтобы результат действительно был получен.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥4