Разработка с Дарьей Матвеевой – Telegram
Разработка с Дарьей Матвеевой
75 subscribers
15 photos
15 links
Этот блог про разработку на Java. Пишу про проблемы, с которыми сталкиваюсь, и их решения.
Download Telegram
В этом посте - обзор решения задач по System Design, приведенного в главе “System design and scalability” из книги “Cracking the coding interview”.

Алгоритм может быть полезен тем, кто только начинает разбираться в теме.

Автор считает, что вопросы по SD предназначены для того, чтобы выяснить, как бы вы спроектировали реальную систему на работе, если бы ваш менеджер об этом попросил. Поэтому так и нужно действовать на интервью. Задавать вопросы. Находить компромиссы. И помнить, что есть хорошие решения и плохие решения, но нет идеальных.

https://dmatveeva.github.io/System-design-and-scalability/
Алгоритм решения задач на интервью по System Design.
Когда в системе всего один сервер. ➡️
Добавляем базу данных.➡️
Добавляем балансировщик нагрузки.➡️
Делаем репликацию базы данных.➡️
Добавляем кэш и CDN.➡️
Добавляем общее хранилище данных о сессиях - реализуем stateless-архитектуру.➡️
Развертываем систему в 2-х дата-центрах.➡️
Добавляем очереди сообщений и инструменты для логгирования, CI/CD и сбора метрик.➡️
Делаем шардирование БД.
В этом посте рассмотрим поиск заданного списка слов в миллионах документов, на основе примера задачи из книги “Cracking the coding interview”.

У нас есть миллион документов, и список слов. Нужно найти все документы, которые содержат все заданные слова. Слова в документе могут располагаться в произвольном порядке. Но слово не должно быть частью какого-то другого слова. Например, “кофе” не равно “кофемашина”.

Для начала надо выяснить, будет ли наша функция поиска вызвана единожды или много раз? Предположим, функция будет вызываться много раз, поэтому резонно с точки зрения производительности провести предварительные преобразования.

https://dmatveeva.github.io/search-words-in-millon-docs/
Channel name was changed to «System Design с Дарьей Матвеевой»