Подборка объединяет вопросы, отмеченные на этапах интервью в Мвидео. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, database, caching.
SELECT * и явное перечисление полей SQL-запросы: получение данных SELECT * выбирает все столбцы таблицы Явно заданный список возвращает только выбранные столбцы SELECT * может снижать производительность из-за передачи…
Java-фреймворк для разработки приложений Реализует инверсию управления (IoC) и внедрение зависимостей (DI) Упрощает работу с объектами и управление связями между ними Помогает создавать модульный и удобный для…
SQL-запрос и выборка данных чем больше полей, тем больше данных передаётся: растёт объём в байтах и сетевой трафик увеличение числа полей повышает нагрузку на I/O и сеть сложные типы данных, например LOB и TEXT, могут…
Как определить индексы, необходимые для оптимизации? Анализирую нагрузку: начинаю с наиболее часто выполняемых запросов и изучаю их планы выполнения с помощью EXPLAIN/ANALYZE Выявляю столбцы, используемые для…
Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…
Индекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…
Spring Boot — фреймворк, который обеспечивает быстрый старт Java-приложений Создать основной класс и пометить его аннотацией @SpringBootApplication Сгенерировать проект с необходимыми зависимостями с помощью Spring…
Основные принципы работы с базой данных целостность данных: соблюдение ACID (атомарность, согласованность, изоляция, долговечность) нормализация: сокращение избыточности и предотвращение аномалий безопасность:…
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Почему в Go нельзя создавать новый http.Client для каждого запроса? http.Client — структура, предназначенная для отправки HTTP-запросов в Go через встроенный Transport управляет TCP-подключениями Transport повторно…
Почему context.Background() не следует передавать вглубь бизнес-логики и как правильно работать с контекстами context.Background() представляет собой корневой пустой контекст: его нельзя отменить, и в нём нет значений…
горутины — лёгкие, однако они всё же расходуют память и CPU создание без ограничений → увеличение потребления RAM и расходы на планирование способно вызвать истощение ресурсов и привести к остановке приложения для…