В этом посте рассмотрим некоторые приемы масштабирования системы, которая растет с одного пользователя до миллиона. Пост основан на главе 1 книги Алекс Сюй: System Design.
https://dmatveeva.github.io/scale-from-zero-to-million/
https://dmatveeva.github.io/scale-from-zero-to-million/
Подготовка к интервью по System Design
Масштабируем систему для миллиона пользователей
В этом посте рассмотрим некоторые приемы масштабирования системы, которая растет с одного пользователя до миллиона.
Пост основан на главе 1 книги Алекс Сюй: System Design.
Пост основан на главе 1 книги Алекс Сюй: System Design.
В этом посте рассмотрим поиск заданного списка слов в миллионах документов, на основе примера задачи из книги “Cracking the coding interview”.
У нас есть миллион документов, и список слов. Нужно найти все документы, которые содержат все заданные слова. Слова в документе могут располагаться в произвольном порядке. Но слово не должно быть частью какого-то другого слова. Например, “кофе” не равно “кофемашина”.
Для начала надо выяснить, будет ли наша функция поиска вызвана единожды или много раз? Предположим, функция будет вызываться много раз, поэтому резонно с точки зрения производительности провести предварительные преобразования.
https://dmatveeva.github.io/search-words-in-millon-docs/
У нас есть миллион документов, и список слов. Нужно найти все документы, которые содержат все заданные слова. Слова в документе могут располагаться в произвольном порядке. Но слово не должно быть частью какого-то другого слова. Например, “кофе” не равно “кофемашина”.
Для начала надо выяснить, будет ли наша функция поиска вызвана единожды или много раз? Предположим, функция будет вызываться много раз, поэтому резонно с точки зрения производительности провести предварительные преобразования.
https://dmatveeva.github.io/search-words-in-millon-docs/
Подготовка к интервью по System Design
Поиск слов в миллионах документов
В этом посте рассмотрим поиск заданного списка слов в
миллионах документов, на основе примера задачи из книги “Cracking the coding interview”.
миллионах документов, на основе примера задачи из книги “Cracking the coding interview”.
В этом посте разберем еще одну задачу из книги Cracking the coding interview. Изначально задача про биржу, но мне кажется удобнее ее немного обобщить.
https://dmatveeva.github.io/how-to-distribute-data/
https://dmatveeva.github.io/how-to-distribute-data/
Подготовка к интервью по System Design
Как передавать пользователю данные?
В этом посте разберем еще одну задачу из книги Cracking the coding interview.
Задача про биржу, но мне кажется удобнее ее немного обобщить, что я и сделала в заголовке.
Задача про биржу, но мне кажется удобнее ее немного обобщить, что я и сделала в заголовке.
Завела канал на Youtube - https://www.youtube.com/@SystemDesign_Matveeva
И смонтировала первое видео :)
https://www.youtube.com/watch?v=sk-w0bWJaPA
И смонтировала первое видео :)
https://www.youtube.com/watch?v=sk-w0bWJaPA
YouTube
Масштабируем веб-сайт
В этом видео рассказываю некоторые стратегии масштабирования веб-сайтов. Они помогут обеспечить работу системы, когда количество пользователей растет с одного до миллиона.
❤1👍1
Что такое протокол gossip, где применяется и для чего?
https://dmatveeva.github.io/gossip-protocol/
https://dmatveeva.github.io/gossip-protocol/
System Design
Протокол gossip
В этом посте - поверхностный обзор протокола Gossip.
Немного об устройстве компьютера и реализации многопоточности.
https://dmatveeva.github.io/how-computer-works/
https://dmatveeva.github.io/how-computer-works/
System Design
Как работает компьютер
В этом посте я бы хотела рассказать об устройстве компьютера и затронуть тему реализации многопоточности.
Немного о скоростях, с которыми работает компьютер, и ссылки на инфографику:
https://dmatveeva.github.io/latency-numbers/
https://dmatveeva.github.io/latency-numbers/
System Design
Как быстро работает компьютер
C какой скоростью работает компьютер? Примерные цифры - в таблице.
Версионирование базы данных с Liquibase:
https://dmatveeva.github.io/liquibase/
https://dmatveeva.github.io/liquibase/
System Design
Liquibase
Как произвести изменение схемы базы данных в работающем приложении?
👍1
Первый пост-обзор на книгу "Микросервисы. Паттерны разработки и рефакторинга".
https://dmatveeva.github.io/microservices/
https://dmatveeva.github.io/microservices/
System Design
Микросервисная vs. Монолитная архитектура
В этом посте начну обзор книги “Микросервисы. Паттерны разработки и рефакторинга” Криса Ричардсона.
Рассмотрим, чем микросервисная архитектура отличается от монолитной, их преимущества и недостатки.
Рассмотрим, чем микросервисная архитектура отличается от монолитной, их преимущества и недостатки.
🔥2
Сейчас наша команда активно ищет новых разработчиков на Java, и я уже несколько недель участвую в собеседованиях.
Наблюдения:
▫️ Теперь понимаю, почему иногда, будучи кандидатом, получала вопросы, казавшиеся странными.
Например вопрос интервьюера, много ли вы писали кода на рабочем месте? Казалось бы, конечно, ведь я разработчик. Но вот например один из кандидатов сказал, что уже несколько месяцев не пишет код, а занимается задачами devops, хотя в резюме как раз указано разработчик .
▫️ Обычно наш тимлид дает несколько фрагментов кода и просит найти и исправить ошибку. И почему-то кандидаты неохотно пишут код. Большинство людей просто размышляли вслух, всего пару человек писали и исправляли. Один из них правда не приблизился к решению, но начал активно рефакторить существующие классы, из-за чего решение перестало компилироваться.
▫️И уже несколько человек сказали, что долго работали в реактивном стэке, и поэтому забыли Hibernate.
Наблюдения:
▫️ Теперь понимаю, почему иногда, будучи кандидатом, получала вопросы, казавшиеся странными.
Например вопрос интервьюера, много ли вы писали кода на рабочем месте? Казалось бы, конечно, ведь я разработчик. Но вот например один из кандидатов сказал, что уже несколько месяцев не пишет код, а занимается задачами devops, хотя в резюме как раз указано разработчик .
▫️ Обычно наш тимлид дает несколько фрагментов кода и просит найти и исправить ошибку. И почему-то кандидаты неохотно пишут код. Большинство людей просто размышляли вслух, всего пару человек писали и исправляли. Один из них правда не приблизился к решению, но начал активно рефакторить существующие классы, из-за чего решение перестало компилироваться.
▫️И уже несколько человек сказали, что долго работали в реактивном стэке, и поэтому забыли Hibernate.
👍2😁2