В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, concurrency, database.
Устройство очередной архитектуры и назначение нескольких очередей и экшенджей В основе архитектуры лежит асинхронная обработка событий, при которой задачи распределяются по приоритету и функциональному назначению.…
Как работает многопоточность в Java? Java обеспечивает параллельное выполнение с помощью потоков (Threads) Поток — отдельный исполняемый поток команд в рамках процесса Для создания потоков применяют классы Thread и…
SQL и оптимизация запросов Сначала точно определить ключи соединения — PK и FK. Для обязательных связей применять INNER JOIN, а для необязательных — LEFT JOIN. Сокращать объем промежуточных данных, выполняя фильтрацию…
Middleware в Redux расширяет dispatch и добавляет поддержку асинхронных операций redux-thunk: action может быть функцией, подходит для простой асинхронной логики redux-saga: генераторы для сложных async-потоков и…
Основные инструменты мониторинга и логирования в продакшн-среде мониторинг: Prometheus отвечает за метрики, Grafana — за дашборды логирование: ELK-stack (Elasticsearch, Logstash, Kibana) централизованный сбор логов:…
Протоколы интеграции между системами Интеграция ПО и обмен данными HTTP/HTTPS — универсальная и легковесная основа для REST API SOAP — протокол сообщений со строгой схемой XML и стандартами WS-* gRPC —…
Обзор протоколов прикладного уровня и практический опыт HTTP/HTTPS: базовые протоколы веба для клиент-серверного взаимодействия и REST API FTP/SFTP: обмен файлами; SFTP обеспечивает защищённую передачу поверх SSH…
Основные виды интеграции между системами синхронная: взаимодействие по модели «запрос-ответ» с блокирующей коммуникацией асинхронная: передача сообщений через очереди и события файловый обмен: регулярная или…
Фреймворки для тестирования на Java JUnit — основной и наиболее распространённый инструмент для модульного тестирования TestNG — расширенные возможности, аннотации и параллельное выполнение Mockito — создание…
Каковы основные этапы тестирования в Golang в Golang тестирование реализовано в стандартном пакете testing создаём файл, имя которого заканчивается на _test.go определяем функции формата *TestXxx(t testing.T)…