Разработка с Дарьей Матвеевой – Telegram
Разработка с Дарьей Матвеевой
75 subscribers
15 photos
15 links
Этот блог про разработку на Java. Пишу про проблемы, с которыми сталкиваюсь, и их решения.
Download Telegram
Когда в системе всего один сервер. ➡️
Добавляем базу данных.➡️
Добавляем балансировщик нагрузки.➡️
Делаем репликацию базы данных.➡️
Добавляем кэш и 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 с Дарьей Матвеевой»
Сейчас наша команда активно ищет новых разработчиков на Java, и я уже несколько недель участвую в собеседованиях.
Наблюдения:

▫️ Теперь понимаю, почему иногда, будучи кандидатом, получала вопросы, казавшиеся странными.
Например вопрос интервьюера, много ли вы писали кода на рабочем месте? Казалось бы, конечно, ведь я разработчик. Но вот например один из кандидатов сказал, что уже несколько месяцев не пишет код, а занимается задачами devops, хотя в резюме как раз указано разработчик .

▫️ Обычно наш тимлид дает несколько фрагментов кода и просит найти и исправить ошибку. И почему-то кандидаты неохотно пишут код. Большинство людей просто размышляли вслух, всего пару человек писали и исправляли. Один из них правда не приблизился к решению, но начал активно рефакторить существующие классы, из-за чего решение перестало компилироваться.

▫️И уже несколько человек сказали, что долго работали в реактивном стэке, и поэтому забыли Hibernate.
👍2😁2