В чём разница между @Bean и @Component в Spring?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🤣3
Репозиторий best-system-design-resources — это аккуратно собранная подборка ресурсов по системному дизайну: книги, статьи, видео, курсы и разборы архитектур.
Что внутри:
▶ Основы: CAP-теорема, масштабирование, консистентность▶ Разбор ключевых компонентов: кэш, балансировка, шардирование, очереди▶ Примеры реальных систем: поисковики, видеохостинги, мессенджеры▶ Курсы и гайды: System Design Primer, Grokking, Gaurav Sen▶ Задачи и кейсы с интервью
Хорошая база, чтобы структурировать знания и увереннее разбираться в архитектуре крупных систем.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
Функциональный интерфейс — это интерфейс, который определяет только один абстрактный метод. Это позволяет передавать поведение как значение — например, в виде лямбды или ссылки на метод.
Рассмотрим простейший пример:
@FunctionalInterface
interface Greeting {
void say(String message);
}
Greeting g = msg -> System.out.println("Привет, " + msg);
g.say("мир!");
Аннотация @FunctionalInterface не обязательна, но рекомендуема — она защищает от случайного добавления лишнего абстрактного метода.
Интерфейс может содержать сколько угодно
default- и static-методов и при этом оставаться функциональным, так как они не считаются абстрактными.В Java предусмотрен набор стандартных функциональных интерфейсов — в пакете
java.util.function. Вот наиболее часто используемые:▶️ Predicate<T> — проверяет условие, возвращает true или false▶️ Function<T, R> — преобразует один тип в другой▶️ Consumer<T> — принимает значение, ничего не возвращает▶️ Supplier<T> — возвращает значение, ничего не принимает▶️ UnaryOperator<T> и BinaryOperator<T> — частные случаи Function, когда вход и выход одного типа
Пример использования Predicate:
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(isLong.test("Java")); // false
Функциональные интерфейсы активно используются в Stream API, Optional, Comparator, CompletableFuture и других частях стандартной библиотеки. Это удобный способ описать поведение без лишнего кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15
Redis (Remote Dictionary Server) — это in-memory база данных, которая хранит данные в оперативной памяти. Благодаря этому она обеспечивает очень высокую производительность, особенно для операций чтения и записи.
Хранение данных в оперативной памяти
Redis хранит все данные в оперативной памяти (RAM), что делает операции чрезвычайно быстрыми. Операции чтения и записи происходят за миллисекунды, в отличие от традиционных баз данных, которые хранят данные на диске.
Разнообразие структур данных
Redis поддерживает не только строки, как большинство key-value хранилищ, но и сложные структуры данных:
— Строки (Strings)
— Списки (Lists)
— Множества (Sets)
— Отсортированные множества (Sorted Sets)
— Хэши (Hashes)
— Битовые операции (Bitmaps)
— Гео-данные (Geospatial data)
— Стек и очередь (с помощью списка)
Механизм постоянства данных
Хотя Redis хранит данные в оперативной памяти, он поддерживает два метода сохранения данных на диск для обеспечения постоянства: RDB (Redis Database Backup) — периодическое создание снапшотов данных, AOF (Append Only File) — запись всех операций в журнал, что позволяет восстанавливать состояние Redis при сбое.
Поддержка Pub/Sub
Redis предоставляет возможности для реализации системы обмена сообщениями в реальном времени с помощью механизма публикации/подписки (Pub/Sub). Это позволяет приложениям общаться друг с другом через каналы.
Механизм кластеризации
Redis может быть развернут в режиме кластера, где данные распределяются между несколькими узлами. Это позволяет обеспечить масштабируемость и отказоустойчивость.
Представим, что у нас есть своя социальная сеть, в которой зарегистрирован Месси. Каждый день страничку Месси посещают сотни тысяч пользователей.
Что происходит в таком случае под капотом? Наше приложение постоянно запрашивает одни и те же данные (профиль Месси) из БД, например, MySQL, что занимает десятки миллисекунд. Это очень ресурсоемкий процесс, учитывая количество пользователей, посещающих страницу Месси.
Эту проблему как раз и решает Redis: мы используем его как промежуточный кэш для хранения часто запрашиваемых данных. Вместо того, чтобы каждый раз делать запрос в реляционную БД, приложение сначала проверяет кэш Redis.
Если данные найдены в Redis (cache hit), они возвращаются мгновенно (в пределах миллисекунды). Если данных нет (cache miss), запрос делается в основную БД, а результат сохраняется в Redis для будущих обращений.
Отправляй
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍2
Что такое Redis и зачем он используется?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Это культовый репозиторий с сотней пет-проектов для реализации: от простых CLI-инструментов до полноценных веб-приложений
Вместо теории — конкретные задачи, пошаговые туториалы и репозитории, которые помогают прокачивать навыки через практику.
Отличный ресурс, чтобы собрать портфолио — забираем тут.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
🔥7😁6
This media is not supported in your browser
VIEW IN TELEGRAM
AlgoTree — платформа, которая помогает анализировать структуры данных: деревья, графы, обходы и другое.
Здесь не готовят к собеседованиям и не дают решения задач, а последовательно объясняют, как устроены деревья, графы и алгоритмы, и почему они работают именно так.
tags: #полезное #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2
На этом сайте собраны материалы по AWS, Kubernetes и Terraform, которые помогут прокачать практические навыки и глубже погрузиться в DevOps.
Авторские курсы дополняются с заданиями и тестами, которые помогут закрепить теорию и проверить свой уровень на реальных примерах.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Если в вашем проекте внезапно Spring ругается на circular dependency, вы не одиноки — такие ошибки возникают даже в продуманных архитектурах.
В статье разобраны причины появления циклических зависимостей, показано, как их отследить с помощью Bean Navigation, и даны рабочие способы решения проблемы.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Здесь собраны основы языка, типы данных, переменные, операторы, коллекции, строки, работа с датой и временем, обработка исключений и интерфейсы — всё объясняется просто и наглядно.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2
Можно ли создать экземпляр абстрактного класса с помощью анонимного класса?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2❤1
Здесь используется Java Stream API для подсчета наиболее часто встречающегося элемента в списке.
groupingBy группирует элементы по их значению (Function.identity()). После группировки вызывается метод counting() для подсчета количества элементов в каждой группе;entrySet() преобразует полученную мапу в набор записей (ключ-значение);max(Map.Entry.comparingByValue());ifPresent(System.out::println). tags: #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
В статье рассматриваются популярные паттерны микросервисной архитектуры — Strangler Fig, API Gateway, Service Mesh, Sidecar, CQRS и другие.
Объясняется, как и зачем их применять, с разбором плюсов, подводных камней и примерами реализации на практике.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Метод
Files.walk() позволяет рекурсивно обходить файловую систему, начиная с указанной директории. Этот метод возвращает поток объектов типа
Path, что позволяет удобно работать с файлами и папками. Его можно использовать для поиска, фильтрации или обработки файлов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15💯5👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл полезный репозиторий для тех, кто изучает Java или хочет освежить базу перед собесами. Внутри собраны материалы по ключевым темам: от синтаксиса и ООП до многопоточности, алгоритмов и сетевого программирования.
Удобно, что это не узкая подборка на одну тему, а именно большая база: можно и теорию подтянуть, и практические примеры посмотреть, и по смежным направлениям пройтись — включая Android и базовые ML-темы.
tags: #github #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Media is too big
VIEW IN TELEGRAM
🎓 Onboarding в Veai - это Cursor для JetBrains IDE: как быстрее прокачаться с AI‑ассистентами и код‑агентами
Для быстрого погружения и возможности сразу начать работать запущен Onboarding — встроенная система коротких уроков, они помогают шаг за шагом освоить плагин прямо в вашей IDE.
📚 Подробнее со всеми изменениями можно ознакомиться в релизной статье.
Скачать новую версию | Все возможности Veai | Чат поддержки
На наших каналах — разбор технических новинок и лайфхаков, не забывайте подписываться: ☝️RuTube📱 https://t.iss.one/veai_devs
#Veai #УправляемыйAI #AIразработка #SDLC #ИИкод #КачествоКода #AIгенерациякода #AIagents #ИИагент #LLM
Реклама.
О рекламодателе.
Для быстрого погружения и возможности сразу начать работать запущен Onboarding — встроенная система коротких уроков, они помогают шаг за шагом освоить плагин прямо в вашей IDE.
☝️ Каждый урок — это небольшой сценарий по конкретной фиче Veai: вы учитесь прямо на реальных действиях, а не в абстрактных туториалах.
☝️ Список уроков будет регулярно пополняться — онбординг развивается вместе с продуктом и новыми возможностями Veai.
☝️ В настройках плагина можно управлять прогрессом: перепроходить отдельные уроки или сбрасывать все и начать заново.
📚 Подробнее со всеми изменениями можно ознакомиться в релизной статье.
Скачать новую версию | Все возможности Veai | Чат поддержки
На наших каналах — разбор технических новинок и лайфхаков, не забывайте подписываться: ☝️RuTube
#Veai #УправляемыйAI #AIразработка #SDLC #ИИкод #КачествоКода #AIгенерациякода #AIagents #ИИагент #LLM
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣13🔥2🤩1