Автоматизируем и улучшаем DevExp вокруг одинокого .NET BFF бекенда
UWDC
0:00 / 0:00
Автоматизируем и улучшаем DevExp вокруг одинокого .NET BFF бекенда
66 просмотров · 1 мес. назад
UWDC
1,53 тыс. подписчиков
66 просмотров · 1 мес. назад
Александр Шинкарев / UWDC 2026
00:00 – Введение и структура доклада
01:00 – Компания Турмалинкор и её инженерная культура
03:43 – Архитектура и инструменты для устойчивого бэкэнда
06:00 – Контейнеризация и Dev Container
09:35 – Docker out of Docker и его преимущества
12:05 – Проблемы с портами при разработке бэкэндов
14:25 – Переход к IDE и использование Visual Studio Code
19:04 – Инструментарий и автоматизация в проекте
22:22 – Тесты и их интеграция в пайплайн
27:35 – Обсуждение тестовой стратегии и покрытия тестами
31:40 – Проблемы с миграциями и базами данных
34:21 – Удаление эндпоинтов и генерация клиентов
38:30 – Скрытый бонус: удаленное окружение разработки
40:06 – QR-коды и репозитории для автоматизации
40:50 – Публикация журнала и завершение доклада
41:22 – Вопросы и ответы после доклада
41:49 – Обновление зависимостей в Docker контейнерах
44:50 – Версионирование пакетов и пул-реквесты
47:00 – Персонализация экстеншенов в команде
Целевая аудитория доклада — это .NET-разработчики, но он будет интересен и бекенд-разработчикам других стеков, включая DevOps-инженеров. Ведь инфраструктура отлично портируется для FastAPI, NestJS, даже для C++ и для другого стека.
На докладе покажу кросплатформенный, контейнеризованный сетап инфраструктуры вокруг .NET API, который:
Хранит свои данные в PostgreSQL
Использует EFCore в качестве ORM
Предоставляет REST-like API для своего фронтенда, написанного на JS
Закрыт JWT-аутентификацией
Зависит от внешних сервисов, которые вызывает по HTTP
Сетап включает в себя настроенные для запуска в VSCode Dev Containers:
PostgreSQL
PgAdmin
MockServer
Karate-тесты
Api
Акцент на Dev Containers и тотальную контейнеризацию и изоляцию позволяет запускать этот проект не только локально но и в GitHub Codespaces с такими же возможностями для запуска, отладки, тестирования. Это уникальная фишка сетапа.
Сам проект, на котором буду показывать, будет жить в GitHub опенсорсе. Бери и используй.
Второй частью доклада является автоматизация, в которую входит:
Запуск xUnit "unit" тестов в PR
Запуск Karate E2E тестов в Docker Compose в PR
Проверка того, что нет изменений в модели, для которых забыли добавить миграцию в PR
линтинг проекта в PR
Запуск xUnit "unit" тестов в PR
Генерация диаграммы схемы БД в формате mermaid по модели в PR
Подсчет покрытия кода unit и e2e тестами и их общее объединенное покрытие в PR, вместе с создание бэйджей покрытия для README.md
Применение semantic-release для выпуска релизов и версионирования Api
Публикация npm пакета с клиентом Api для JS-фронта с проверкой линтингом фронтенда, что бекенд его не сломал в PR
Сетап подойдёт, как для монолитного бекенда, так и для микросервисной инфраструктуры. Например, RabbitMQ можно добавить по аналогии и тестировать связь с брокером, публикацию сообщений и реакцию на них.
Часть инфры от Microsoft для разработке на .NET в VSCode ещё не очень зрелая и устойчивая (экстеншины). Но это уже вполне рабочий подход.