Добавить в корзинуПозвонить
Найти в Дзене
Будни аналитика

ЧЕКЛИСТ СИСТЕМНОГО АНАЛИТИКА: ЧАСТЬ 2 — АРХИТЕКТУРА И БАЗЫ ДАННЫХ

Продолжаю серию о подготовке к собеседованию на роль системного аналитика. В первой части разобрали интеграции — REST API, SOAP, брокеры. Сегодня переходим к архитектуре и базам данных. На собеседованиях эти темы идут парой: сначала тебя спрашивают про монолит и микросервисы, потом про нормализацию и транзакции. Если знаешь оба блока — ты уже сильнее большинства кандидатов. ──────────────────────────────────────── ▶ Архитектура: от Junior до Senior Уровень Junior — базовое понимание: Архитектура программного обеспечения — это набор фундаментальных решений о том, как организована система: какие компоненты существуют, как они взаимодействуют, какие принципы лежат в основе. Клиент-серверная архитектура: клиент отправляет запрос, сервер обрабатывает и возвращает ответ. Это основа большинства современных приложений. Уровень Middle — ключевые архитектурные паттерны: Монолит vs Микросервисы — один из самых частых вопросов: Монолитная архитектура: вся система — один деплоймент. Один проект, од

Продолжаю серию о подготовке к собеседованию на роль системного аналитика. В первой части разобрали интеграции — REST API, SOAP, брокеры. Сегодня переходим к архитектуре и базам данных.

На собеседованиях эти темы идут парой: сначала тебя спрашивают про монолит и микросервисы, потом про нормализацию и транзакции. Если знаешь оба блока — ты уже сильнее большинства кандидатов.

────────────────────────────────────────

▶ Архитектура: от Junior до Senior

Уровень Junior — базовое понимание:

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

Клиент-серверная архитектура: клиент отправляет запрос, сервер обрабатывает и возвращает ответ. Это основа большинства современных приложений.

Уровень Middle — ключевые архитектурные паттерны:

Монолит vs Микросервисы — один из самых частых вопросов:

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

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

C4 нотация — как описывать архитектуру:

C4 — это четыре уровня детализации архитектурных диаграмм.

• Context (контекст): система и её окружение, внешние пользователи и системы

• Container (контейнеры): приложения, базы данных, микросервисы внутри системы

• Component (компоненты): внутренние модули одного контейнера

• Code (код): классы, методы — самый детальный уровень

На собеседовании могут попросить нарисовать C4 диаграмму для конкретного сервиса. Знание этой нотации сразу показывает уровень кандидата.

HTTP vs HTTPS:

HTTP — передаёт данные открытым текстом. HTTPS — то же самое, но с TLS шифрованием. Данные шифруются на стороне клиента и расшифровываются на сервере. Сегодня HTTPS — это обязательный стандарт.

Балансировщик нагрузки:

• L4 балансировщик работает на уровне TCP/IP — распределяет соединения по серверам

• L7 балансировщик работает на уровне HTTP — может маршрутизировать по URL, заголовкам, методам

CI/CD и Docker — что нужно знать аналитику:

CI/CD — это конвейер: разработчик делает git push, автоматически запускаются тесты, при успехе происходит деплой на сервер. Аналитик должен понимать этот процесс чтобы корректно описывать требования к выпуску фич.

Docker: Dockerfile описывает как собрать образ, Image — это собранный образ, Container — запущенный экземпляр. Один образ — много контейнеров. На практике аналитику не нужно писать Dockerfile самому — но когда коллеги говорят "развернём в контейнере" или "образ упал", нужно понимать что именно сломалось и на каком этапе. Иначе ты просто киваешь на стендапе, не понимая о чём речь.

Уровень Senior — дополнительные паттерны:

Job/Cron задачи: запуск задач по расписанию. Аналитик описывает расписание, условия запуска, поведение при ошибках.

Обратная совместимость — ключевой принцип в архитектуре: изменение системы не должно ломать текущих клиентов и интеграции. Любая миграция планируется с учётом этого принципа.

────────────────────────────────────────

▶ Базы данных: полный блок

Уровень Junior — типы данных:

На собеседованиях типы данных спрашивают почти всегда — и именно здесь слабые кандидаты дают размытые ответы вроде "ну, строка это строка". Сильный кандидат отвечает иначе: знает разницу между CHAR и VARCHAR (фиксированная vs переменная длина), понимает когда использовать DECIMAL вместо FLOAT — например, для денег, где плавающая точка даёт погрешность. Базовые типы: CHAR и VARCHAR для строк, INTEGER и DECIMAL для чисел, BOOLEAN для булевых значений, DATE и DATETIME для дат, TEXT для длинных строк.

Уровень Middle — нормализация, индексы, транзакции, связи:

Нормализация — устранение избыточности:

• 1НФ (первая нормальная форма): каждая ячейка таблицы содержит атомарное значение — нельзя хранить список в одном поле

• 2НФ: нет частичных зависимостей — каждый не-ключевой столбец зависит от всего первичного ключа, а не от его части

• 3НФ: нет транзитивных зависимостей — не-ключевой столбец не зависит от другого не-ключевого столбца

Индексы — ускоряют поиск:

• PRIMARY KEY создаёт кластеризованный индекс — строки хранятся в порядке ключа

• UNIQUE индекс — гарантирует уникальность значений

• FOREIGN KEY — индекс для связи с другой таблицей

ACID транзакций — обязательно знать расшифровку и смысл:

• Atomicity (атомарность): транзакция выполняется целиком или не выполняется вообще

• Consistency (согласованность): после транзакции данные остаются в согласованном состоянии

• Isolation (изолированность): параллельные транзакции не мешают друг другу

• Durability (долговечность): зафиксированные данные не теряются даже при сбое

Типы связей в БД:

• 1-1 (один к одному): у каждого пользователя — один паспорт

• 1-N (один ко многим): у одного автора — много статей

• N-M (многие ко многим): студент посещает много курсов, на курсе много студентов. Реализуется через промежуточную таблицу

SQL vs NoSQL:

SQL базы (PostgreSQL, MySQL): строгая схема, таблицы, транзакции, хорошо для структурированных данных с чёткими связями.

NoSQL — разные типы под разные задачи:

• Redis: хранилище ключ-значение в памяти, используется как кэш

• MongoDB: документная база, хранит JSON-подобные документы, гибкая схема

• Neo4j: графовая база, хранит узлы и рёбра, хороша для социальных графов и рекомендаций

• ClickHouse: колоночная база для аналитики, очень быстрые агрегации на больших объёмах

Уровень Senior — масштабирование данных:

Партиционирование: логическое разбиение большой таблицы на части внутри одной базы. Например, таблица заказов разбита по годам — запросы за 2025 год читают только нужную партицию.

Шардинг: физическое разбиение данных по разным серверам. Каждый сервер хранит свой шард. Позволяет горизонтально масштабировать базу.

Репликация: мастер принимает записи и реплицирует данные на реплики. Реплики обслуживают запросы на чтение. Это повышает доступность и снижает нагрузку на мастер.

────────────────────────────────────────

В следующей части — SQL запросы и диаграммы: типы JOIN, GROUP BY, UML Sequence diagram, BPMN нотация.

#системныйаналитик #собеседование #ITкарьера #аналитик #подготовка