Какие будут первые шаги при переделке legacy-проекта?
Сначала зафиксируйте текущее поведение, критические сценарии и риски, затем меняйте legacy по небольшим границам.
Читать ответПодготовка к интервью
889 вопросов по System Design
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Каталог
Сначала зафиксируйте текущее поведение, критические сценарии и риски, затем меняйте legacy по небольшим границам.
Читать ответНачните с целей, пользователей и ограничений, затем выберите минимальную архитектуру и соберите один рабочий сценарий целиком.
Читать ответМощность одного сервера не заменяет отказоустойчивость и управление трафиком, но балансировщик нужен не в каждом небольшом проекте.
Читать ответХраните сообщения по устойчивому ID и серверному порядковому номеру внутри чата, а отображайте по этому номеру.
Читать ответЧитайте поток частями через fetch и ReadableStream либо SSE, но не вставляйте необработанный HTML модели напрямую в DOM.
Читать ответПосле восстановления связи клиент запрашивает сохранённые сообщения после последнего подтверждённого курсора или sequence.
Читать ответСначала согласуйте цель и границы аудита, затем соберите доказательства по архитектуре, качеству, безопасности, производительности и поставке.
Читать ответСервер сразу возвращает ID операции, а завершение сообщает через SSE или WebSocket; статус также доступен отдельным HTTP-запросом.
Читать ответДля десятков стаканов отделите поток котировок от частоты рендера: поддерживайте актуальное состояние, а UI обновляйте ограниченными кадрами.
Читать ответFSD полезна, когда приложению нужны устойчивые границы функций и команд; для небольшого прототипа полная структура может быть избыточной.
Читать ответНачните с основного пользовательского сценария и рискованных зависимостей, затем выделяйте общие компоненты по реальным повторениям.
Читать ответВынесите управляемый контент в CMS или административный интерфейс, а frontend пусть получает опубликованную версию через API.
Читать ответ