Введение
Введение и цели курса
Как работает интернет
Основы интернета
Модель TCP/IP и устройства
Веб-сайт? Веб-сервис? Веб-приложение?
Подробный процесс загрузки сайта
Введение про API
Что такое API и зачем оно нужно? Виды API
API, SDK, WEB-Service: в чём разница
Пример API веб-сервиса, первая практика
HTTP - основной протокол интернета
JSON - популярный формат сообщений в интернете
Уровни развития API, модель Ричардсона
Проектирование API – JSON-RPC
Глубже в интернет - ресурсы, порт, сокет
Ваше первое спроектированное API
Применение JSON-RPC
Документирование, Swagger, API/Code First и OpenRPC
Проект в ваше портфолио
Проектирование API – SOAP
XML - это вам не XSD (и тем более не HTML)
Особенности реализации SOAP
Ваше второе спроектированное API
Применение SOAP
Документирование, WSDL
Осваиваем мощный инструмент - SOAP UI
Проект в ваше портфолио
Проектирование API – GraphQL
Концепции GraphQL
Ваше третье спроектированное API
Применение GraphQL
Проект в ваше портфолио
Проектирование API – gRPC
Развитие HTTP - от 1.0 до 2.0
gRPC, микросервисы, сериализация данных, Proto
Ваше четвертое проектированное API
Применение gRPC
Проект в ваше портфолио
Проектирование API – REST
Концепции REST, архитектура, stateless, кеширование
Концепции REST, HATEOAS, балансировщики
Проектирование ресурсов
Проектирование методов
Методы и ключ идемпотентности
Сортировка, фильтрация, пагинация
Второй мощный инструмент - Postman
Алгоритм проектирования данных и ошибок
Согласованные взаимодействия и MIME-типы
Безопасность в сети: хеши, ключи, подпись
HTTPS - изучаем каждую деталь
Третий мощный инструмент - Chrome DevTools
Аутентификация и авторизация: api-key, токены, mtls, jwt, oAuth2
Глубже в безопасность: атаки XSS, clickjacking и другие
Версионирование API - зло или семантическое?
Эффективное API: управление кешем, batch, chunked, rate limiting
Документирование, OpenAPI Swagger
Применение REST API
Проект в ваше портфолио
Event-based (событийно-ориентированные) асинхронные API
Синхронные и асинхронные запросы - в чём разница?
Асинхронное HTTP API - Callback, Polling, Long Polling
Webhooks
WebSocket, Server Sent Events
Эффективность API - Retry, Timeout, security, идемпотентность
Согласованность и параллелизм
CAP теорема
ACID и BASE, строгая согласованность, и в конечном счёте
Low coupling и High cohesion
Тестирование по модулю
Проекты в портфолио
Бонус - интеграции для профессионалов
Начало: сбор требований и моделирование интеграции в UML
Алгоритм проектирования интеграции - шаг за шагом
Четвёртый мощный инструмент - cURL
Документирование веб-сервиса
Введение в архитектуру веб-приложений и паттерны API
Ещё про стили интеграции (обмен файлами, общие данные)
Вызываем внешнее, и запускаем своё API с помощью Python
Проблема N+1
(secret) Что спрашивают про API на собеседованиях
Брокеры сообщений
Концепция брокеров сообщений
Apache Kafka
RabbitMQ
ESB
Solution Architecture и System Design - введение
Введение в архитектуру веб-приложений
Распределённые системы в контексте архитектуры - что это?
Процесс проектирования архитектуры решений
Этап 1: Выявление и анализ требований к решению
Этап 2: Определение нефункциональных требований и ограничений
Этап 3: Выделение архитектурно значимых требований и компромиссы
Этап 4.1: Проектирование концепции решения вместе с тех.лидами
Этап 4.2: Проектирование концепции решения вместе с тех.лидами
Этап 4.3: Проектирование концепции решения вместе с тех.лидами
Этап 4.4: Проектирование концепции решения вместе с тех.лидами
Этап 5: Документирование решения
Этап 6: Презентация и Согласование решения
Этап 7: Участие в процессах разработки и вывода продукта
Дополнительные этапы: бюджет, продажа, прототипирование
Solution Architecture и System Design - Технологические подходы
Паттерны микросервисной архитектуры
Обеспечение безопасности
Обеспечение производительности
Обеспечение надёжности
BigData и ML
DevOps и инфраструктура
Проектирование баз данных SQL
Введение в проектирование баз данных
Проектирование SQL баз данных - моделирование и нормализация
Проектирование SQL баз данных - оптимизация, индексы, процедуры
Проектирование баз данных NoSQL и DWH
Проектирование NoSQL баз данных
Проектирование Data Warehouse (DWH)
Карьера в IT - с нуля до трудоустройства
Знакомство со сферой IT
Стратегическое планирование карьеры
Процесс найма, тактики трудоустройства, резюме
Собеседование, оффер, трудоустройство
Испытательный срок, рост на текущем рабочем месте
Записи всех проведённых воркшопов
Записи воркшопов - часть 1
Записи воркшопов - часть 2
Записи воркшопов - часть 3