Большое онлайн-занятие по системному дизайну

Системный дизайн: как проектировать системы под требования продукта

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

📅 21 августа, пятница
🕗 19:00 GMT+3
~2 часа
🎥 Онлайн, в прямом эфире
Участвовать → Запись занятия остаётся у тебя

Почему про системный дизайн вдруг заговорили все

Ещё пару лет назад это был разговор для архитекторов и сеньоров из бигтеха. Сейчас строчку «понимает системный дизайн» пишут даже в тех вакансиях, где раньше хватало умения закрывать задачи по фичам.

Код перестал быть узким местом. ИИ пишет функции, компоненты и эндпоинты быстрее любого из нас. А вот решение о том, из каких частей вообще собрать систему и как она будет держать нагрузку, остаётся на тебе: кто-то должен сформулировать требования и границы, иначе ИИ уверенно выдаст решение не той задачи.

Поэтому от разработчика теперь ждут, что он соберёт систему под конкретные требования и объяснит каждый свой шаг: почему здесь нужна очередь, а в соседнем сервисе она только добавит проблем. Названия технологий — Kafka, RabbitMQ, Redis — тут вторичны, они сменятся за пару лет.

На занятии разбираем это руками: проектируем системы вживую и обсуждаем каждое решение на ходу.

Пройдём эволюцию системы: от одного сервера до гигантов индустрии

Схему на сорок квадратиков бесполезно разбирать, пока не понимаешь, откуда взялся каждый. Поэтому стартуем с простейшего продукта и добавляем части по одной — каждый раз под требование, которое её и вызвало.

Шаг 1
Клиент Сервер БД
Простейший веб-продукт
Клиент, сервер, база. Разберём, какие требования этот вариант закрывает — и на какой цифре пользователей он начинает трещать.
Шаг 2
Клиент LB Сервер Сервер Кеш БД + реплика
Продукт под нагрузкой
Появляются балансировка, горизонтальное масштабирование, кеш и реплики. Каждую часть вводим под конкретное требование и сразу проговариваем, чем за неё платим.
Шаг 3
CDN Gateway Сервис A Сервис B Сервис C Очередь Шарды БД Аналитика
Уровень гигантов индустрии
Разбиение на сервисы, асинхронное взаимодействие, шардирование, отдельный контур аналитики. И главный вопрос: какой ценой это всё даётся.

Что будем делать на занятии

01
Разберёмся, что такое системный дизайн и почему это важно именно сейчас
Откуда термин взялся в вакансиях, при чём тут ИИ и почему знание конкретных инструментов тут вторично.
02
Обсудим, какие типы систем вообще бывают
Чтобы не проектировать всё одинаково: у разных типов систем — разные требования и разные узкие места.
03
Начнём проектировать системы на практике
От простейшей — к самым сложным. Всё вживую: формулируем требования и собираем под них систему.
04
Разберём части систем по отдельности
Для чего нужна каждая, когда её пора вводить, как она интегрируется с остальными и как масштабируется.
05
Поговорим о том, как устроено Sys Design интервью
Какие там правила, как выглядит формат и в каких компаниях этот этап встречается.
06
Изучим 5 основных столпов, на которых держится этот этап
Критерии, по которым тебя оценивают, — и по которым имеет смысл готовиться.
→ Sys Design интервью

На собеседовании по системному дизайну оценивают ход твоей мысли

Можно знать десяток технологий и всё равно завалить этап — потому что не задал уточняющих вопросов, не проговорил требования и не объяснил, чем платишь за каждое решение. Пройдём формат целиком и назовём пять критериев, по которым выносят решение.

Требования и ограничения
Оценка нагрузки
Компромиссы решений
+ ещё 2 столпа — на занятии

Что нужно знать до занятия и что будет после

Что нужно знать до

  • Базово понимать, как работают web-продукты
  • Знать термины: клиент, сервер, база данных, кеш, масштабирование — хотя бы на уровне «что это такое»
  • Немного критического мышления 🙂

Писать код на занятии не придётся: работаем со схемами и решениями.

Результат занятия

  • Поймёшь, почему с приходом ИИ грамотно собранная система стала важнее скорости написания кода
  • Увидишь, почему этот навык теперь спрашивают почти с каждого программиста
  • Разберёшься, какие критерии важны при создании любой системы
  • Подготовишься к Sys Design интервью — будешь знать формат и критерии оценки
  • Получишь мотивацию и хорошую зарядку для мозгов 🙂
Иван Петриченко
→ Ведущий занятия · Campfire School

Иван Петриченко

Fullstack-developer & content creator. Разрабатываю продукты и учу принимать инженерные решения, за которые потом не стыдно перед своей же кодовой базой. На занятии проектируем системы вместе — с разбором каждого шага и ответами на вопросы в прямом эфире.

Участие

Одно занятие, один тариф. Оплатил — и в пятницу приходишь на эфир.

📅 21 августа, пятница · 19:00 GMT+3
39€29€
Живое занятие, запись и ответы на вопросы
Оплатить участие · 29€ →
После оплаты откроется мой телеграм-бот — там все детали, и туда же придёт ссылка на эфир.
Нужна оплата криптой или другим способом — напиши мне в личку.
→ Что входит
  • Живое занятие около двух часов
  • Практика проектирования: от простейшей системы до уровня гигантов индустрии
  • Разбор частей системы: зачем нужны, когда вводить, как масштабировать
  • Полный разбор формата Sys Design интервью и 5 столпов его прохождения
  • Ответы на твои вопросы прямо в эфире
  • Запись занятия — пришлю в телеграм, останется у тебя
  • Чат участников — соберу всех вместе перед занятием

Частые вопросы

Я джун. Мне не рано?
Не рано, если понимаешь, что такое клиент, сервер и база данных. Стартуем с самой простой системы и наращиваем сложность постепенно, так что успеешь за ходом.
А если я не попаду на эфир?
Пришлю запись в телеграм — посмотришь в удобное время, и она останется у тебя. Но вопросы вживую можно задать только на самом занятии, так что лучше приходить.
Нужно ли что-то устанавливать и писать код?
Нет. Всё занятие — про проектирование: требования, схемы, решения и их цена. Достаточно браузера и желания думать.
Будем разбирать конкретный стек — Kafka, Kubernetes и прочее?
Нет. Разбираем логику решений: почему в одной системе очередь спасает, а в другой добавляет проблем на ровном месте. Инструменты за пару лет сменятся, а эта логика останется с тобой.
Как я попаду на трансляцию?
Сразу после оплаты откроется мой телеграм-бот — в нём программа, время и всё, что нужно знать. Туда же я пришлю ссылку на эфир и напомню перед стартом, а ближе к занятию открою чат участников. Если что-то пойдёт не так — пиши мне в личку @ivanpetrychenko_work.