Backend Development
Общий путь backend разработчика
Backend Development
Выбор языка программирования
Основные языки для backend разработки
Go
Статически типизированный язык с поддержкой конкурентности
Python
Высокоуровневый язык с богатой экосистемой
Основы интернета
Фундаментальные знания о работе интернета
Как работает интернет
Основные принципы работы интернета
HTTP
Протокол передачи гипертекста
DNS
Система доменных имён
Доменные имена
Структура и работа доменных имён
Хостинг
Размещение веб-сайтов и приложений
Материалы для изучения:
Языки программирования
Основные языки для backend разработки
Go
Современный язык для высоконагруженных систем
Python
Универсальный высокоуровневый язык
Rust
Системный язык программирования
Контроль версий
Системы управления версиями
Git
Распределённая система контроля версий
Хостинг репозиториев
Платформы для хранения кода
Базы данных
Системы управления базами данных
Реляционные БД
SQL базы данных
NoSQL БД
Нереляционные базы данных
APIs и Протоколы
Методы взаимодействия между системами
REST
Архитектурный стиль для распределенных систем
JSON APIs
Стандарт для построения JSON APIs
GraphQL
Язык запросов для API
gRPC
Высокопроизводительный RPC фреймворк
Аутентификация
Методы проверки подлинности
Кэширование
Методы оптимизации производительности
Client Side
Кэширование на стороне клиента
Server Side
Кэширование на сервере
Web серверы
Серверное ПО для обработки HTTP запросов
Nginx
Высокопроизводительный веб-сервер
Apache
Классический веб-сервер
Тестирование
Методы проверки качества кода
Unit Testing
Модульное тестирование
Integration Testing
Интеграционное тестирование
Functional Testing
Функциональное тестирование
CI/CD
Непрерывная интеграция и доставка
GitLab CI
CI/CD в GitLab
GitHub Actions
CI/CD в GitHub
Архитектурные паттерны
Шаблоны проектирования систем
Monolithic
Монолитная архитектура
Microservices
Микросервисная архитектура
Serverless
Бессерверная архитектура
Message Brokers
Системы обмена сообщениями
RabbitMQ
AMQP брокер сообщений
Apache Kafka
Распределённая система обмена сообщениями
Search Engines
Поисковые системы
Elasticsearch
Поисковый и аналитический движок
Solr
Платформа полнотекстового поиска
Контейнеризация
Технологии контейнеризации
Docker
Платформа контейнеризации
Kubernetes
Оркестрация контейнеров
Масштабирование
Методы масштабирования систем
Горизонтальное
Масштабирование через добавление серверов
Вертикальное
Масштабирование через увеличение мощности
Стратегии
Подходы к масштабированию