Найти в Дзене
🖥 SQL-квест: фэнтезийное приключение для аналитиков данных
Представь фэнтези-мир, где заклинания - это SQL-запросы, а древние артефакты спрятаны в таблицах и JSON-документах. 🧙Ты - боевой дата-аналитик, который с помощью SQL, Python, ETL и визуализаций охотится за харизматичным злодеем Архивариусом Пакостусом, что ломает индексы, крадёт данные и готовит “шторм данных” на столицу.🔮 В каждом эпизоде...
3 часа назад
💡 Java совет: начиная с Java 14 вы можете использовать **switch expressions** - код становится короче и чище при логике с несколькими
ветками. Раньше приходилось писать громоздко с break и присваиваниями: ❌ Старый способ String season; switch (month) { case 12: case 1: case 2: season = "Winter"; break; case 3: case 4: case 5: season = "Spring"; break; default: season = "Invalid"; } Теперь можно сразу вернуть значение из...
1 день назад
🚀 SPRING BOOT совет: ускорь запуск в dev
Spring Boot по умолчанию инициализирует все бины сразу при старте. В разработке это часто лишнее: - приложение стартует дольше (особенно в больших проектах) - ты ждёшь загрузку компонентов, которые сейчас не нужны ✅ Решение: включи ленивую инициализацию только для dev-режима...
4 дня назад
Spring Boot Tip: тестируем REST проще с `RestTestClient
` 🚀 В Spring Boot можно легко писать интеграционные тесты для REST-эндпоинтов, используя `RestTestClient` вместе с аннотацией: @AutoConfigureRestTestClient Это автоматически настраивает клиент и позволяет: - отправлять запросы прямо из тестов - проверять статус и тело ответа - работать с объектами, а не “сырым” JSON Пример Копировать код @SpringBootTest @AutoConfigureRestTestClient public class PersonControllerTests { private static final...
1 неделю назад
💡 Java-совет: никогда не возвращайте null вместо коллекций
Если метод возвращает null, вызывающему коду приходится делать бессмысленные проверки - и это источник багов. Лучше всегда возвращать пустую коллекцию: - Collections.emptyList() - List.of() - Set.of() Тогда вызов становится безопасным, а код чище. Пример: ❌ Плохо (придётся проверять на null): public List<String> findUsers() { if (!dataAvailable())...
1 неделю назад
⚡️ Улучшаем графику Minecraft с Iris
! Iris — это открытый шейдерный мод для Minecraft, который поддерживает популярные шейдерные пакеты OptiFine. Он обеспечивает отличную производительность и совместимость с другими модами, такими как Sodium, позволяя игрокам наслаждаться красивой графикой без потери FPS. Iris создан для тех, кто хочет настраивать свою игру и использовать любимые шейдеры на современных версиях Minecraft...
1 неделю назад
💡 Java совет: избегай глубоких if-else - используй guard clauses
Одна из самых частых проблем в Java-коде глубоко вложенные условия. Код формально работает, но читать и поддерживать его тяжело. ❌ Плохо: вложенные if-else - сложно читать - логика размазана - любая правка превращается в боль ✅ Хорошо: guard clauses (ранние выходы) - проверки сразу отсекают невалидные состояния - основной сценарий читается сверху вниз - код короче и понятнее Почему guard clauses — это профессиональный подход: - уменьшают когнитивную...
1 неделю назад
Java Совет
💡 Начиная с Java 14, в языке появились record - удобный способ создавать короткие, неизменяемые объекты для хранения данных. Зачем нужны record: - короче и чище, чем обычные POJO - equals(), hashCode() и toString() генерируются автоматически - неизменяемы по умолчанию - идеально подходят для DTO, конфигураций и value-объектов Вместо громоздкого POJO с конструкторами и геттерами можно написать одну строку...
2 недели назад
Kubernetes Совет
💡 Java-приложения обычно требуют больше CPU на старте, чем во время обычной работы ☕️ Эта Kyverno policy: - отслеживает завершение старта Pod - изменяет ресурсы Pod прямо на лету (in-place) - снижает...
2 недели назад
💡 Java-совет: всегда используй @Override
Аннотация @Override помогает ловить ошибки на этапе компиляции, а не в рантайме. Ты думаешь, что переопределил метод родительского класса, но из-за опечатки или неверной сигнатуры создаёшь новый метод, и Java молча это принимает. Пример ошибки Метод print() в родителе, а в наследнике случайно написано prnt() — код скомпилируется, но логика сломается. Решение Используй Override. Что это даёт - Компилятор проверяет, что метод реально переопределяет родительский - Опечатки и неверные...
2 недели назад
💡 Java совет: рекурсивная обработка файлов с Files.walk
() Если нужно пройтись по всем файлам в директории и её подкаталогах, не пиши рекурсию вручную — используй Files.walk(). Пример: найти все `.java`-файлы в проекте Path startPath = Paths.get("src"); try (Stream<Path> paths = Files.walk(startPath)) { paths .filter(Files::isRegularFile) .filter(path -> path.toString().endsWith(".java")) .forEach(System.out::println); } catch (IOException e) { e...
2 недели назад