https://github.com/reo7sp/practicum-cpp-project7
https://github.com/reo7sp/practicum-cpp-project7
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/reo7sp/practicum-cpp-project7
- Owner: reo7sp
- License: mit
- Created: 2026-04-13T20:58:03.000Z (about 1 month ago)
- Default Branch: initial
- Last Pushed: 2026-04-14T11:41:50.000Z (about 1 month ago)
- Last Synced: 2026-04-14T13:29:41.632Z (about 1 month ago)
- Language: C++
- Size: 152 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cpp-middle-project-sprint-7
- [До начала использования Docker контейнера: Настройка переменных окружения](#до-начала-использования-docker-контейнера-настройка-переменных-окружения)
- [Начало работы](#начало-работы)
- [Сборка проекта и запуск тестов](#сборка-проекта-и-запуск-тестов)
- [Команды для сборки проекта](#команды-для-сборки-проекта)
- [Команды для запуска приложения](#команды-для-запуска-приложения)
- [Команда для запуска тестов](#команда-для-запуска-тестов)
- [Команда для запуска clang-format — обязательное требование перед сдачей работы на ревью](#команда-для-запуска-clang-format--обязательное-требование-перед-сдачей-работы-на-ревью)
- [Команды для запуска отладчика](#команды-для-запуска-отладчика)
- [Дополнительно](#дополнительно)
Шаблон репозитория для практического задания 7-го спринта «Мидл разработчик С++»
## До начала использования Docker контейнера: Настройка переменных окружения
Для корректной работы контейнера добавьте в ваш bash-профиль две переменные окружения и обновите его, выполнив следующие команды:
```bash
# Set USER_UID and USER_GID
echo -e '\nexport USER_UID=$(id -u)\nexport USER_GID=$(id -g)' >> ~/.bashrc
# Update bash-profile
source ~/.bashrc
```
Перед началом работы с Docker контейнером, убедитесь, что переменные окружения доступны, внутри используемой вами IDE (например в терминале внутри VS Code):
```bash
printf "\nUSER_UID=${USER_UID=}\nUSER_GID=${USER_GID}\n\n"
```
## Начало работы
1. Убедитесь, что переменные окружения из предыдущего шага доступны внутри вашей IDE
2. Нажмите зелёную кнопку `Use this template`, затем `Create a new repository`.
3. Назовите свой репозиторий.
4. Склонируйте созданный репозиторий командой `git clone your-repository-name`.
5. Создайте новую ветку командой `git switch -c development`.
6. Откройте проект в `Visual Studio Code`.
7. Нажмите `F1` и откройте проект в dev-контейнере командой `Dev Containers: Reopen in Container`.

## Сборка проекта и запуск тестов
Данный репозиторий использует следующие инструменты:
- **cmake** — генератор систем сборки для C и C++. Позволяет создавать проекты, которые могут компилироваться на различных платформах и с различными компиляторами. Подробнее о cmake:
- https://dzen.ru/a/ZzZGUm-4o0u-IQlb
- https://neerc.ifmo.ru/wiki/index.php?title=CMake_Tutorial
- https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html
- **VS Code Dev Docker container** - Docker контейнер, который содержит полностью настроенное окружение для выполнение задания. Подробнее об этой функциональности:
- https://habr.com/ru/articles/822707/ - "Почти все, что вы хотели бы знать про Docker"
- https://code.visualstudio.com/docs/devcontainers/containers - официальная документация VS Code
- https://www.youtube.com/watch?v=p9L7YFqHGk4 - "Docker container for VS Code"
- https://www.youtube.com/watch?v=pg19Z8LL06w&t=174s&pp=ygUPRG9ja2VyY29udGFpbmVy - "Docker in 1 hour"
### Команды для сборки проекта
Используйте `F5` для выполнения следующих шагов:
- Создания папки `build`
- Вызова `cmake` команд для запуска процесса сборки
- Запуска `lldb` отладчика
Также, вы можете запустить только команду построения проекта. Для этого:
- вызовите командное окно, нажав `F1`
- Выберите команду `Tasks: Run Task`

- Выберите команду сборки проекта, например `GCC: Build Debug app`

### Команды для запуска приложения
```bash
cd build
./AsyncHttpProxy 5555 &
python3 -c 'print("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 4096\r\n\r\n" + "A"*4096, end="")' | nc -l 127.0.0.1 -p 8000 &
wget -e use_proxy=yes -e http_proxy=127.0.0.1:5555 127.0.0.1:8000
```
### Команда для запуска тестов
Для запуска тестов вы можете воспользоваться удобным расширением `C++ TestMate`:

### Команда для запуска clang-format — обязательное требование перед сдачей работы на ревью
В этом репозитории настроен автоматический запуск clang-format (файл конфигурации — .vscode/settings.json) при сохранении любого файла с кодом.
Убедитесь, что эта функциональность работает:
- Добавьте несколько пустых линий в любой файл.
- Сохраните файл.
- Если пустые линии были удалены, всё работает, если нет — убедитесь, что clangd работает (при открытии файла с кодом в самом низу VS Code на голубой полоске должно быть написано clangd: idle). Для этого:
- нажмите `F1` и выполните команду `clangd: Download language server`;
- нажмите `F1` и выполните команду `clangd: Restart language server`;
- нажмите `F1` и выполните команду `Developer: Reload Window`.
### Команды для запуска отладчика
В Visual Studio Code настройки параметров для запуска отладчика находятся в файле .vscode/launch.json. Поскольку в этом файле для запуска приложения уже есть одна конфигурация `Launch *`, то для запуска отладчика достаточно нажать F5 или открыть окно Run and Debug комбинацией клавиш `Ctrl+Shift+D`.
## Дополнительно
Для настройки автодополнения `Ctrl + Space` нажмите `F1` и выполните команду `clangd: Download language server`. VS Code сам предложит установить подходящую версию clangd (всплывашка в правом нижнем углу). После завершения установки перезагрузите окно кнопкой перезапуска справа снизу или с помощью `F1` и выполните команду `Developer: Reload Window`.
Если всё сделали правильно, то после успешной сборки проекта вы сможете использовать автодополнение.

