В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, concurrency, database.
Как организовать graceful shutdown HTTP-сервиса с воркерами в Go? Контекст: управление остановкой сервиса, одновременно обрабатывающего HTTP-запросы и выполняющего фоновые задачи Для координации завершения применять…
HTTP middleware представляет собой функцию, которая оборачивает http.Handler Она принимает http.Handler и возвращает другой http.Handler, добавляя логику до или после запуска основного обработчика На практике…
Функция map преобразует массив вызывая переданную функцию для каждого его элемента и формируя новый массив с полученными результатами при этом исходный массив остаётся неизменным, что обеспечивает иммутабельность для…
Как синхронизировать версии зависимостей между микрофронтами? архитектура микрофронтов, зависимости Независимое управление: каждый микрофронт может поставляться со своей версией React Согласование версий в npm…
Проектирование базы данных для системы расписания модель предметной области включает уроки, записи, учителей, классы и аудитории урок — основная сущность, содержащая время проведения, предмет, учителя и аудиторию…
Проектирование архитектуры приложения по принципам SOLID SOLID — совокупность принципов объектно-ориентированного проектирования S (Single Responsibility): у класса или модуля должна быть одна зона ответственности O…
data pipeline — это цепочка последовательных операций обработки данных надёжность достигается за счёт обработки ошибок, повторных попыток и мониторинга масштабируемость обеспечивают распределённые системы и…
Как проверять сервис, работающий с БД и внешними системами? Уровни тестирования: юнит-тесты, интеграционные тесты, e2e На уровне юнит-тестов использовать моки и стабы для внешних API и запросов к БД Проводить…
Тестирование интеграций с внешними системами применение mock/стабов для изоляции интеграции и управления ответами внешних API использование контрактных тестов для проверки соответствия API установленным спецификациям…
изучить план выполнения с помощью EXPLAIN/EXPLAIN ANALYZE найти узкие места: сканирование таблиц и отсутствие индексов проверить и создать индексы для часто используемых колонок переписать запрос: упростить JOIN и по…
Аналитика и оптимизация запросов Подбирать подходящие индексы — B-tree, GIN или GiST — для ускорения выборок Использовать партиционирование для таблиц с диапазонными и временными данными Применять материализованные…