Перейти к основному содержимому

Компетенции бэкенд-разработчика

Разработчику

Play ITЗагрузка интерактивного демо…

Архитектору

Матрица ролей - кто за что отвечает в продукте

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

Клиентская сторона (HTML, fetch, CORS, фреймворки) — в Фронтенд и пунктах 1–27 чек-листа.

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

Уровни (ориентир, не должность):

УровеньСмысл
J (junior)Можете сделать под руководством, объяснить базовые термины
M (middle)Проектируете и отлаживаете самостоятельно в типовых задачах
M+ (middle+)Учитываете при нагрузке, сбоях и эволюции архитектуры

Изучайте блоки сверху вниз; внутри блока — сначала J, затем M и M+.

Переход между уровнями показывает рост глубины. На уровне J специалист уверенно повторяет рабочие паттерны, на уровне M проектирует типовые решения самостоятельно, а на уровне M+ удерживает стабильность системы под нагрузкой и при изменении архитектуры.


1. Среда и Linux

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

КомпетенцияJMM+Материалы
Контейнер для локальной разработкиКонтейнеризация, Linux для бэкенда
Пакетный менеджер (apt / apk)Администрирование Linux
Bash: файлы, пайпы, перенаправлениеТерминал, Linux для бэкенда
Процессы, сигналы SIGTERM / SIGKILLLinux для бэкенда
systemd, фоновые задачи, cronПланирование задач
Лимиты дескрипторов, OOMLinux для бэкенда, Ошибки системы
SSH, копирование логов/дамповНастройка сервера

2. Сеть

Сетевой слой влияет на пользовательский опыт так же сильно, как и качество кода. Понимание DNS, RTT и поведения HTTP помогает отличать деградацию приложения от проблем маршрута, TLS или балансировки.

КомпетенцияJMM+Материалы
DNS, URL, IP (v4/v6)Сеть и интернет, DNS
TCP vs UDP, HTTP поверх TCPПротоколы, HTTP
RTT, потери пакетов, джиттерСеть для бэкенда
curl / DevTools NetworkТестирование API
HTTP/2, WebSocketAPI
Reverse proxy, TLS-терминацияВеб-серверы, Бэкенд

3. Данные и СУБД

Блок данных отвечает за корректность и предсказуемость бизнес-операций. Здесь компетенции строятся вокруг модели хранения, транзакционных гарантий и стоимости запроса под нагрузкой.

КомпетенцияJMM+Материалы
CRUD, индексы, EXPLAINSQL, Оптимизация
Транзакции, уровни изоляции, deadlockТранзакции
Иерархии в реляционной БДДеревья в SQL
Redis как кэш / сессииRedis
MongoDB / документная модельMongoDB
JSON / YAML / бинарные форматыJSON, Бинарная сериализация
CAP и компромиссы распределённых БДОсновы NoSQL, PACELC

4. HTTP и API

API является внешним контрактом сервиса. Чем точнее определены методы, коды ответов, версии и идемпотентность, тем устойчивее интеграции с frontend, мобильными клиентами и внешними системами.

КомпетенцияJMM+Материалы
Методы, коды ответов, заголовкиHTTP
REST, версионирование, OpenAPIAPI, Проектирование API
Идемпотентность, пагинацияМетоды и идемпотентность
CORS, cookies, кэш HTTPCookie, API
GraphQL / gRPC (когда уместны)API, Бэкенд
Nginx / проксированиеВеб-серверы

5. Безопасность

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

КомпетенцияJMM+Материалы
AuthN vs AuthZ, сессия vs JWTCookie, session, JWT и PASETO, Интеграционная авторизация
RBAC / ABACZero Trust
SQLi, XSS, CSRFБезопасность приложений
IDOR, open redirect, rate limitУязвимости API
TLS, хеши, соль паролейИБ — введение

6. Почта, поиск, наблюдаемость

Этот блок закрывает операционную зрелость. Сервис становится управляемым, когда команда умеет контролировать исходящие коммуникации, искать данные в продукте и быстро локализовывать инциденты по метрикам, логам и аудиту.

КомпетенцияJMM+Материалы
Исходящая почта, MIMEПочта на бэкенде
Полнотекстовый поиск vs SQL LIKEПолнотекстовый поиск
Метрики vs логи vs аудитНаблюдаемость, Мониторинг
Health check, smoke-тестТестирование

7. Архитектура и процесс

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

КомпетенцияJMM+Материалы
MPA / SPA / SSR / CSR / SSGТипы веб-приложений
SOLID, KISS, DRY, IoC/DIПаттерны
GRASP, ADR (веб)GRASP и ADR
MVC, слои controller–service–repoБэкенд
Очереди, идемпотентные потребителиБрокеры
Микросервисы, CAP/PACELCМикросервисы, PACELC
Git, CI/CD, контейнерыGit, 12 команд, DevOps
Технический долг, антипаттерныРефакторинг

8. Язык и рантайм (выберите свой стек)

Отметьте в матрице свой основной язык. Общие темы:

КомпетенцияJMM+
Типы, коллекции, обработка ошибок
HTTP-сервер или фреймворк
ORM / драйвер БД, N+1
Пул соединений, таймауты
GC / память / профилирование
Асинхронность, graceful shutdown

Навигация по языкам — Python, Java, C#, Go.

Язык реализации влияет на инструменты, но инженерные принципы остаются общими. Один и тот же сервис выигрывает от корректных таймаутов, аккуратной работы с памятью, предсказуемой обработки ошибок и дисциплины в API-контрактах.


Как пользоваться

  1. Пройдите блок 1 → 4 до первого рабочего API.
  2. Параллельно ведите чек-лист самопроверки — он проверяет понимание, эта матрица — покрытие тем.
  3. Для карьерного контекста: дорожная карта, подборка Бэкенд и серверная разработка.
Практика

Поднимите локально API + БД + Redis в контейнерах, добавьте health-endpoint, структурированные логи и один дашборд метрик — так матрица превращается в навык, а не в прочитанный список.


Как растить уровень на реальных задачах

Ниже дорожка в формате "сделал руками → закрепил компетенцию". Она помогает пройти от чтения к рабочей привычке.


Шаг 1 — "стабильный CRUD"

  • Поднимите сервис с одной таблицей, валидацией входа и обработкой ошибок.
  • Добавьте миграции, индексы и один запрос с EXPLAIN.
  • Подключите логирование с request_id.

Что закрепляется — блоки 3, 4, 6 этой матрицы.


Шаг 2 — "API под нагрузкой"

  • Добавьте Redis-кэш для "горячего" чтения.
  • Введите лимиты и таймауты исходящих вызовов.
  • Снимите p95/p99 по эндпоинту до и после изменений.

Что закрепляется — блоки 2, 3, 6, 8.


Шаг 3 — "продовый контур"

  • Соберите сервис в контейнер.
  • Добавьте health/readiness endpoint.
  • Настройте CI с тестами и безопасным деплоем.

Что закрепляется — блоки 1, 6, 7.


Мини-портфолио бэкенд-разработчика

Для собеседований и роста внутри команды удобно вести "паспорт" из 3–5 завершённых мини-проектов:

  • сервис с JWT + refresh и ролевой авторизацией;
  • сервис с очередью фоновой обработки;
  • интеграция с внешним API с retry и circuit-breaker;
  • API с OpenAPI-спекой, тестами и мониторингом;
  • проект с SQL + Redis, где видна работа с кэшем и инвалидацией.

Каждый проект желательно описать коротким runbook:

  1. Как поднять локально.
  2. Какие метрики/логи смотреть первыми.
  3. Как воспроизвести одну типовую неисправность и как её устранить.

Как использовать матрицу в команде

  • Разработчику: планировать учебные спринты по 1–2 блокам.
  • Тимлиду: формировать прозрачный рост junior → middle через observable-критерии.
  • Архитектору: видеть пробелы в эксплуатационных навыках до появления инцидентов.

Для командной калибровки полезно связать эту страницу с типами веб-приложений, наблюдаемостью и сетью для диагностики: так компетенции превращаются в целостную картину эксплуатации веб-системы.

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