Найти в Дзене
Покупайте СтеллыИ дарите их за контент
11 часов назад
 • Вы подписаны

💡 Java: не создавайте тяжёлые объекты раньше времени

Если объект дорогой в создании, но нужен только в редких сценариях, eager initialization может зря тратить время и память. Вместо этого используйте lazy initialization: private HeavyAnalyzer analyzer; private HeavyAnalyzer analyzer() { if (analyzer == null) { analyzer = new HeavyAnalyzer(); } return analyzer; } Так HeavyAnalyzer создастся только при первом реальном обращении...

11 часов назад
 • Вы подписаны

💡 Java: не создавайте тяжёлые объекты раньше времени

Если объект дорогой в создании, но нужен только в редких сценариях, eager initialization может зря тратить время и память. Вместо этого используйте lazy initialization: private HeavyAnalyzer analyzer; private HeavyAnalyzer analyzer() { if (analyzer == null) { analyzer = new HeavyAnalyzer(); } return analyzer; } Так HeavyAnalyzer создастся только при первом реальном обращении. Где особенно полезно: - кэши; - API-клиенты; - тяжёлая конфигурация; - анализаторы; - объекты с дорогой инициализацией...

1 день назад
 • Вы подписаны

🔥 Один из лучших обучающих курсов на StepiK по SQL

SQL можно знать годами и всё равно теряться, когда запрос внезапно начинает тормозить в проде. Этот курс про уровень, где ты не просто пишешь SELECT, а понимаешь, что происходит внутри MySQL, почему запрос работает медленно и как ускорить его без новых проблем. Здесь разбираются EXPLAIN, индексы, CTE, оконные функции, транзакции, аналитические паттерны, legacy SQL и работа с AI-ассистентами...

3 дня назад
 • Вы подписаны

⚡️Продвинутый Java-совет: используйте `ClassValue

` Если нужно кешировать метаданные отдельно для каждого класса, не обязательно создавать ConcurrentHashMap<Class<?>, Metadata>. private static final ClassValue<Metadata> CACHE = new ClassValue<>() { @Override protected Metadata computeValue(Class<?> type) { return scan(type); } }; Metadata metadata = CACHE.get(MyClass.class); ClassValue лениво вычисляет значение, безопасно работает при конкуренции потоков и хранит отдельный результат для каждого Class...

4 дня назад
 • Вы подписаны

Kotlin 2.5.0-Beta1 вышел

JetBrains выпустила первую бета-версию Kotlin 2.5.0. Главное: - Language: стабильная name-based destructuring в only-syntax режиме, плюс экспериментальные companion extensions и blocks. - Standard Library: новые экспериментальные функции для упрощения типичных конструкций с if. - Kotlin/JS: добавлена поддержка target ES2020...

5 дней назад
 • Вы подписаны

Spring Boot 4: как перенести старые настройки

При обновлении добавьте временную зависимость: runtimeOnly("org.springframework.boot:spring-boot-properties-migrator") После запуска приложения migrator: * найдёт устаревшие и переименованные параметры; * выведет подсказки в логах; * временно преобразует старые ключи во время выполнения. Исправьте настройки в application.properties или application.yaml, убедитесь, что предупреждения исчезли, и удалите зависимость. Оставлять её в проекте постоянно не нужно. #SpringBoot4 #Migration При обновлении добавьте временную зависимость: runtimeOnly("org...

Покупайте СтеллыИ дарите их за контент