Александр
Думается, только алгоритмами, сетями, и прочими языконезависимыми знаниями
Viktor
Думается, только алгоритмами, сетями, и прочими языконезависимыми знаниями
Ну вот алгосики это единственное, что тебе нужно, чтобы пройти собес
Viktor
А дальше, внутри компании, расти можно только решая проблемы. И там тебе «умение программировать» уже сильно пригодится
Viktor
А дальше, внутри компании, расти можно только решая проблемы. И там тебе «умение программировать» уже сильно пригодится
В том числе и знания сетей, и всего такого. Я помню как я бился головой о докер, когда «сделай все по доке» не работает, и вот тут надо понимать, что вообще этот докер делает когда пишешь —network
Viktor
Как пример.
Viktor
Спойлер. Проблема, в итоге, решилась обновлением убунты на серверах, но это уже другая история 🤣
Viktor
Но ковырнуть палочкой линукс пришлось.
Александр
Да, я понимаю 😀 Жаль на работе негде это всё применить и попробовать, только в свое свободное время, а его как водится мало
Александр
В общем, мой совет проси рефер в этом чате, куча яндексойдов сидит. И го собеседоваться
У меня 1 задача выполненная на литкоде 🤣 Пока я даже не уверен что смогу ВЕРТАНУТЬ ДЕРЕВО. Может, через полгодика.
Viktor
Походи на стримы полгода, порешай сам задачи, разумеется, делись в чате прогрессом.
Александр
Да, за этим я здесь, спасибо!
Алекс
Курс козули растёт 😃
Он ща работу ищет, так что пока что 0
Viktor
Он ща работу ищет, так что пока что 0
Да найдёт, куда он денется. Последние твиты тоже часть медийного образа 😃
Порридж В Ко-ливинге
О, скорость выгорания теперь в козулях измеряется, наконец то стандартизация
В Америке все так измеряется. То в ступнях, то в гамбургерах, вот теперь козули к нам пришли
Ilia
только козуля в дс сидит
Ilia
В дс?
дефолт сити
Viktor
дефолт сити
А, это да. Работу должен найти, на две козули 😃
Ilia
в сбере вполне 😄
Viktor
в сбере вполне 😄
Если захочет идти в кровавый энтерпрайз
Ilia
он уже был там, и у него уже опрос был, стоит ли идти опять в сбер))
Dmitry
А что с козулей то не так?)
Человек один, а единиц измерения — две
Viktor
А что с козулей то не так?)
Абмассадор выгорания ж.
Captcha bot
Mihael Smolin, если ты не бот, нажми "пять". Удалено: 0.
Philipp
Добрый день, кто-нибудь создавал проекты в xcode? Проблема следующая. При импорте svg файла в папку assets логотип импортируется не полностью. С другими более сложными svg файлами такой проблемы нет.
Порридж В Ко-ливинге
Отлично! Бот не просит капчу у тех, кто пишет комменты!
Viktor
Отлично! Бот не просит капчу у тех, кто пишет комменты!
Ты всё продолжаешь тестировать? 😃
Порридж В Ко-ливинге
Ты всё продолжаешь тестировать? 😃
Боялся что бот может запрещать писать тем, кто просто комментит. Оказалось что нет, это хорошо
Anonymous
Привет, подскажите, пожалуйста, при решении задачки на собесе стоит спрашивать нравится ли им мое решение и есть ли замечания или и так скажут если, что не так?
Порридж В Ко-ливинге
Привет, подскажите, пожалуйста, при решении задачки на собесе стоит спрашивать нравится ли им мое решение и есть ли замечания или и так скажут если, что не так?
Если ты будешь делать дичь, тебе скажут. Сначала будут легкие подсказки напутствия (скажут какую слодность ждут, вопросами будут намекать на какое-то решение), потом уже будут напрямую намекать, и это уже "минус балл", ну а если ты даже так не вдупляешь, то дальше помогать не станут, дослушают и скажут "результат вам сообщит рекрутер".
Порридж В Ко-ливинге
Еще может быть проблема, что сам собеседующий может не понять твоего решения, если ты ему объяснишь сразу что он сразу поймёт, это плюс огромный. Если через 5 минут поймёт, то это не плохо. Если вообще не поймёт и будет разбирать после собеса, тут уже 50% найм не найм
Null
Всем привет! Скоро начинаем стрим, сегодня будем сериализовывать туда и обратно бинарные деревья. Подключайтесь! https://www.youtube.com/watch?v=nRBYVoWvPGc
Viktor
Нормальная обложка!
Есть один очень крутой дизайнер, который рисует в таком стиле. Ты должен его знать, по идее 😉
Viktor
Привет, подскажите, пожалуйста, при решении задачки на собесе стоит спрашивать нравится ли им мое решение и есть ли замечания или и так скажут если, что не так?
имхо, если и спрашивать то не напрямую, а по ходу интервью держать контакт с интервьюером, собирать сигналы, чтобы понимать в ту ли сторону всё идёт. потому что иначе будет поздно, если просто спросить это в конце.
Dima
в сбере вполне 😄
А в сбере прям на руки такие зп ? Я думал там с учетом премий средняя за год такая получается
Null
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Ilya
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
“сферических конец в вакууме” - страшно такое представить, особенно перед сном
Vladislav
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
А посоветуйте, что почитать нубу про system design? Я знаю только репозиторий https://github.com/donnemartin/system-design-primer
Ilya
ахаха, автозамена подвёла меня 😂
Конечно, должно быть “сферический”
Vladislav
Кабанчика
Это про design data intensive application?
Vladislav
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Спасибо
Viktor
А посоветуйте, что почитать нубу про system design? Я знаю только репозиторий https://github.com/donnemartin/system-design-primer
можно ещё вот это https://vitkarpov.me/tags/system-design/ , но там по мелочи конечно я написал
Viktor
серия небольших заметок
Ilya
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
В отличие от всех абстрактных “систем дизайн блабла” эта книжка подробно расписывает проблемы, которые приходится решать в распределенных системах. Понимание проблем приводит к пониманию вариантов их решения, вместо того, чтобы пытаться примеривать известные шаблоны на задачу
Alex Azarov
Alex Azarov
Рекрутеры совсем
Viktor
Рекрутеры совсем
ахаха. в тиндере не пишут? а то говорят это стандартная практика
Ilya
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Ну раз такая пьянка, https://t.me/kaznacheev_feed/60
Порридж В Ко-ливинге
"Привет красавчик. Жду тебя у себя, на Льва толстого 16 (офис Яндекса)"
Konstantin
А посоветуйте, что почитать нубу про system design? Я знаю только репозиторий https://github.com/donnemartin/system-design-primer
Вот это видео хотя бы для того, чтобы понять, чего вообще хотят и на что обращать внимание https://youtu.be/ZgdS0EUmn70
M
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
правильных ответов нету, а потом в фидбеке чувак бросался кейвордамии вообще мы ожидали от него блокирующее апи с постгресом а он нам стриминг пайплайны реал тайм нарисовал обьяснил - неберем его
Viktor
это печаль.
такого конечно не должно быть, по идее.
Konstantin
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
В некоторых крупных компаниях (в Амазоне с Фейсбуком точно есть, в остальных - как повезет), есть такая отдельная штука как Frontend systems design 😬
Captcha bot
h j, если ты не бот, нажми "семь". Удалено: 0.
Ilia
Кстати вопрос очень интересный, кабанчика читать лучше в оригинале, чтобы уметь оперировать терминами?
V
Кстати вопрос очень интересный, кабанчика читать лучше в оригинале, чтобы уметь оперировать терминами?
Там хороший перевод, не будет проблем с терминами. Хочется бросаться баззвордами - можно послушать видосы клепмана на ютубе.
true
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Советую вот это про систем дизайн как тренировку: https://sre.google/classroom/distributed-pubsub/
Ilia
решил купить электронную версию кабанчика. 35баксов для киндла, причем похоже не в нативном формате. обидненько.
Ilia
вообще я фанат киндлов, у меня 4 штуки было, начиная с kindle 3 keyboard, сейчас читаю на paperwhite 2015
Ilia
нашел кнопку послать пробную версию
Ilia
заряжаю, чуть позже скину как выглядит)
Roman
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Есть курс на educative.io даже два (можно найти и без подписки)
Roman
Зачем нужна секция «дизайн систем»? Некоторые считают, что нужно начитать всяких базвордов и уметь расставить их в нужные места на диаграмме. На самом деле, суть в том, чтобы отличить человека, который строит «сферических коней в вакууме», от человека, который запускал эти самые системы в продакшен. То есть понимает как его код будет бежать на реальных машинах, собирал метрики, сталкивался с проблемами масштабирования. Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы. Грубо говоря, насколько прагматично человек подходит к дизайну систем, через призму той боли, которую он уже пережил. Соответсвенно, научиться этому можно только если уже строил такие системы, и набил шишки. Поэтому систем-дизайн нужен чтобы оценить «синьорность». Алгосики — минимум, который все должны сдать, а дальше можно дать оценку только через вот такой разговор на «свободную тему», где правильных ответов нет. То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет? Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными. И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Grokking system design емнип