|
1 |
| -# cpp-backend-template |
| 1 | +# Dog Story |
2 | 2 |
|
3 |
| -Шаблон репозитория для практического трека «C++ backend». |
| 3 | +**Dog Story** — серверная часть браузерной игры на C++, демонстрирующая современную модульную архитектуру и интеграцию веб-технологий. Проект создан как pet‑проект для отработки навыков разработки серверной части браузерных игр и может быть включён в резюме. |
4 | 4 |
|
5 |
| -# Начало работы |
| 5 | +--- |
6 | 6 |
|
7 |
| -Склонируйте репозиторий в любую подходящую директорию на вашем компьютере. |
| 7 | +## 📐 Архитектура |
8 | 8 |
|
9 |
| -# Обновление шаблона |
| 9 | +Система разделена на четыре уровня: |
10 | 10 |
|
11 |
| -Чтобы иметь возможность получать обновления автотестов и других частей шаблона выполните следующую команду: |
| 11 | +1. **Сервер** |
| 12 | + - Принимает входящие HTTP-запросы |
| 13 | + - Раздаёт статику (HTML/JS/CSS) из каталога `static` |
| 14 | + - Перенаправляет игровые API‑запросы в HTTP‑обработчик |
12 | 15 |
|
13 |
| -``` |
14 |
| -git remote add -m main template https://github.com/cpppracticum/cpp-backend-template-practicum-november.git |
15 |
| -``` |
| 16 | +2. **HTTP‑обработчик** |
| 17 | + - Парсит и роутит запросы |
| 18 | + - Формирует вызовы прикладного слоя (Application) для дальнейшей обработки |
16 | 19 |
|
17 |
| -Для обновления шаблона выполните команду: |
| 20 | +3. **Прикладной слой** |
| 21 | + - Оркеструет игровые сценарии |
| 22 | + - Взаимодействует с моделью игрового мира |
| 23 | + - Управляет состоянием и бизнес‑логикой |
18 | 24 |
|
19 |
| -``` |
20 |
| -git fetch template && git checkout template/main .github |
21 |
| -``` |
| 25 | +4. **Модель игрового мира** |
| 26 | + - Хранит данные об игроках, объектах и событиях |
| 27 | + - Инкапсулирует все правила игры и логику взаимодействия |
22 | 28 |
|
23 |
| -Затем добавьте полученные изменения в свой репозиторий. |
| 29 | +--- |
24 | 30 |
|
25 |
| -# Тестирование в Github Actions |
| 31 | +## 🛠 Технологический стек |
26 | 32 |
|
27 |
| -При отправке (push) изменений в ветку main репозитория будет запущен пайплайн Github Actions, |
| 33 | +- **C++17** — основной язык разработки для максимальной производительности |
| 34 | +- **Boost** (Asio, Beast и сопутствующие модули) — асинхронный ввод‑вывод и HTTP |
| 35 | +- **CMake** — система сборки и управления зависимостями |
| 36 | +- **Docker** — контейнеризация и унифицированное окружение для деплоя |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## 🎯 Цели проекта |
| 41 | + |
| 42 | +- Разработка производительного backend‑сервера на современном C++ |
| 43 | +- Применение принципов модульного дизайна и разделения ответственности |
| 44 | +- Практика работы с Boost.Asio/Beast для реализации асинхронного HTTP‑сервера |
| 45 | +- Освоение инструментов CMake и Docker для сборки и деплоя |
| 46 | +- Создание примера полного клиент‑серверного приложения для портфолио |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## 🚀 Запуск |
| 51 | + |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 📚 Используемые библиотеки |
| 56 | + |
| 57 | +- **Boost.Asio** — асинхронный ввод‑вывод |
| 58 | +- **Boost.Beast** — HTTP‑сервер и клиент |
| 59 | +- **Boost.System** — обработка ошибок и коды состояния |
| 60 | +- **Boost.Filesystem** — работа с файловой системой |
| 61 | +- **C++ Standard Library (STL)** |
28 | 62 |
|
29 |
| -(https://github.com/cpppracticum/cpp-backend-template-practicum-november/actions), |
30 | 63 |
|
31 |
| -который позволит увидеть результат прохождения тестов. |
|
0 commit comments