Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.85K photos
38 videos
42 files
2.62K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
🔍 Git-команда для особого случая

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

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


📌 Что делает

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

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

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

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

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🦊 Альтернативы Firefox: обзор 4 лучших форков для тех, кто разочаровался в Mozilla

Приватность, скорость, расширенные функции — что выбрать? Разбираем популярные форки браузеров и их преимущества.

Что в статье:

✔️ Обзор самых популярных форков браузеров

✔️ Их ключевые фишки, плюсы и минусы

✔️ Как выбрать оптимальный вариант под ваши задачи

Браузер — это не просто окно в интернет, а инструмент, который должен соответствовать вашим требованиям. Делитесь своим опытом в комментариях! 🚀

Прочитать подробнее статью 🔗

🐸 Библиотека тестировщика
Please open Telegram to view this post
VIEW IN TELEGRAM
JDBC или JPA?

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

JPA — путь абстракции. Работаете с объектами, а не с SQL. Это удобство, но скрытая магия и потеря контроля могут создать проблемы с производительностью и отладкой в крупных проектах.

💬 JDBC или JPA или что-то ещё? Какой подход выбираете вы?

🐸 Библиотека джависта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
💻🧩 Когда HR требует LeetCode Hard: почему компании стреляют себе в ногу

Когда твоя компания не Google, но хочет отбирать кандидатов как Google — получается дорогой фейл и текучка талантов. Разбираемся в трендах IT-рекрутинга, которые выглядят как выстрел в ногу.

➡️ Читать статью

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Сохраняйте шпаргалку по командам git

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Что будет результатом кода?

👍🏼 — true true
🔥 — true false
👾 — false true
⚡️ — false false

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔖 IT-календарь: предстоящие конференции

🔹 JPoint 2025
📅 Даты: 3–4 апреля 2025 года
📍 Место проведения: Москва, Россия

JPoint — крупнейшая Java-конференция в России, собирающая опытных разработчиков для обсуждения современных практик Java-разработки, новых функций языка, нюансов работы с Spring, а также тем, связанных с JVM, Kotlin и Scala. ​

🔹 JavaLand 2025
📅 Даты: 1–3 апреля 2025 года
📍 Место проведения: Нюрбург, Германия

JavaLand — ежегодная конференция для Java-разработчиков, проходящая в уникальной обстановке парка развлечений. Мероприятие предлагает множество докладов, воркшопов и возможностей для нетворкинга с международным сообществом.​

🔹 GeeCON 2025
📅 Даты: 14–16 мая 2025 года
📍 Место проведения: Краков, Польша

GeeCON — одна из крупнейших европейских конференций, посвященных Java и JVM-технологиям. В программе — выступления ведущих экспертов, обсуждение современных трендов и практик разработки.​

💬 Собираетесь на какое-либо мероприятие?

🐸 Библиотека джависта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🎭 Dev Memes: 1 апреля, а баги всё те же

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

👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👑 Магия IntelliJ IDEA

Все знают Ctrl + P (подсказка параметров метода), но мало кто юзает Shift + Ctrl + I → быстрый просмотр определения.

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

— Позволяет посмотреть реализацию метода/класса/интерфейса без перехода в другой файл.
— Работает с любыми символами: методами, переменными, константами, даже SQL-мэпперами в MyBatis.
— Незаменимо, если не хочешь терять контекст текущего кода.

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


— Наведи курсор на метод, поле или класс, нажми Ctrl + Shift + I — появится всплывающее окно с реализацией.
— Работает и в дебаге, и при просмотре внешних библиотек (если есть исходники).

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
📣 Программисты, нужен ваш совет

Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!

Какой ноут спасает вас в кодинге и почему?

Расскажите все:

🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется

Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.

💬 Делитесь в комментах
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Улучшаем процесс разработки с помощью AI

Задерживаетесь с реализацией функционала или сталкиваетесь с трудностями в написании кода? Попробуйте этот промпт, чтобы AI помог вам:

📝 Промпт:


Analyze the following code snippet and suggest improvements for faster development. Identify areas for simplification, recommend reusable components, and provide best practices for making the code more maintainable.

// Вставьте ваш код здесь


💡 Дополнительные возможности:

— Добавьте Suggest refactor strategies to improve readability and maintainability, если ваш код слишком сложный.
— Добавьте Recommend using design patterns to structure the solution, если ищете элегантное решение.
— Добавьте Provide alternatives for reducing code duplication, если вам нужно сделать код более универсальным.

💬 Какие инструменты или подходы вы используете для ускорения процесса разработки?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaRocks - канал доказывающий что Java-рулит.

Собираем лучшие посты со всего русскоязычного телеграм + пишем свои собственные мнения, фишки и трюки языка.

- основы
- трюки и фишки языка
- тесты на проверку знаний
- паттерны проектирования на Java

Подпишись и изучай Java. Никакой воды. @javarocks

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqxRoh1S
🔍 Как валидировать входные данные

Проверять данные вручную через if-ы — больно, скучно и не масштабируется.
Bean Validation (javax.validation) позволяет валидировать красиво и декларативно, не превращая код в болото.

1️⃣ Добавляем зависимости

implementation("org.springframework.boot:spring-boot-starter-validation")

ИЛИ

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>


2️⃣ Аннотации в DTO
public class UserRequest {

@NotBlank(message = "Имя не должно быть пустым")
private String name;

@Email(message = "Некорректный email")
private String email;

@Min(value = 18, message = "Возраст должен быть 18+")
private int age;

// геттеры и сеттеры
}


3️⃣ Включаем валидацию в контроллере
@PostMapping("/users")
public ResponseEntity<?> createUser(@Valid @RequestBody UserRequest request) {
userService.save(request);
return ResponseEntity.ok().build();
}


Без @Valid перед DTO ничего не сработает.

4️⃣ Глобальный обработчик ошибок
@RestControllerAdvice
public class ExceptionHandlerController {

@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<?> handleValidationErrors(MethodArgumentNotValidException ex) {
List<String> errors = ex.getBindingResult().getFieldErrors().stream()
.map(err -> err.getField() + ": " + err.getDefaultMessage())
.toList();

return ResponseEntity.badRequest().body(errors);
}
}


Теперь ошибки приходят красиво и читаемо в JSON.

5️⃣ Кастомные валидаторы

Если нужно что-то особенное — например, проверка страны:
@Constraint(validatedBy = CountryValidator.class)
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidCountry {
String message() default "Страна не поддерживается";
}

public class CountryValidator implements ConstraintValidator<ValidCountry, String> {
private final List<String> allowed = List.of("RU", "US", "DE");

public boolean isValid(String value, ConstraintValidatorContext ctx) {
return allowed.contains(value);
}
}


💬 Всё ещё пишете if (dto.getName() == null)?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Исключения: инструмент надёжности или источник хаоса?

Некоторые утверждают, что checked исключения повышают надёжность системы, вынуждая явно обрабатывать потенциально нестабильные участки кода. Такой подход позволяет контролировать поток ошибок и уменьшать вероятность неожиданных сбоев на проде.

С другой стороны, есть ряд проблем: они увеличивают связность кода, затрудняют его сопровождение и зачастую нарушают принцип разделения ответственности. Особенно остро это проявляется в слоях бизнес-логики, где обработка технических исключений может вести к неочевидному поведению и дублированию.

💬 Вопрос к вам:

— Где для вас проходит граница между оправданным использованием исключений и архитектурным перегибом?
— Используете ли вы checked exceptions в бизнес-логике? Или предпочитаете более гибкий подход с кастомными unchecked-исключениями и централизованной обработкой?

🐸 Библиотека джависта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM