# Секция по дизайну для WEB направления ## Как проходит секция Данную секцию мы проводим для разработчиков уровня middle+ и выше. Цель интервью — узнать твой опыт проектирования и сопровождения веб-приложений, а также твои способности решать задачи связанные с проектированием систем. Для визуализации процесса проектирования используется онлайн-доска [Sketchboard](https://sketchboard.io). Для упрощения работы с обширной палитрой данного инструмента в ходе секции рекомендуется пользоваться только элементами раздела Software Sketching. К сожалению, у данного сервиса нет демо-версии, но если хочется познакомиться с подобными инструментами поближе, можно попробовать [excalidraw.com](https://excalidraw.com/) — он очень близок по функциональности. Шаринг экрана не потребуется. Постарайся записывать или схематически зарисовывать (если это возможно) всё, что говоришь вслух. Продолжительность секции — 60 минут. ## Этапы секции В ходе интервью тебе будет будет предложен набор функциональных требований к системе. Тебе нужно будет: * Формализовать задачу: уточнить требования, выяснить основные сценарии работы системы. Что требуется от системы? В каких условиях будет существовать система? * Наглядно описать компоненты системы и их взаимодействие между собой: схематически изобразить компоненты, показать связи между ними. Схема должна наглядно показывать, какие системы будут использованы для того, чтобы пользователь мог увидеть результат в браузере. При этом нет необходимости глубоко погружаться в бекенд. * Спроектировать компонентную структуру фронтового приложения, формализовать API, спроектировать модель данных. По итогу должно быть понятно, как, где и какие данные хранятся и передаются между фронтовым приложением и бекендом. * Идем глубже: * Оценить узкие места в системе, рассказать, какие оптимизации можно применить для снижения нагрузки на бекенд, для ускорения доставки данных до клиента, для улучшения performance-метрик. * Критически оценить систему на предмет безопасности, убедиться, что закрыты все основные уязвимости. * Прочие моменты — UX, a11y, i18n, поддержка различных устройств и так далее. Как правило, часа не хватает для того, чтобы полностью и всеобъемлюще обсудить задачу — это нормально. ## Материалы для подготовки - [Front End Interview Handbook](https://www.frontendinterviewhandbook.com/ru/front-end-system-design/) — сайт с описанием похожего формата собеседований, много ссылок на полезные статьи и материалы - [Front-End Engineer](https://www.youtube.com/channel/UC6YpkaZsAcAvPNt4rLiS7dg) - канал с разбором базовых задаx и описанием формата - Книга "Чистая архитектура. Искусство разработки программного обеспечения | Мартин Роберт"