An open API service indexing awesome lists of open source software.

https://github.com/reo7sp/practicum-cpp-project8


https://github.com/reo7sp/practicum-cpp-project8

Last synced: 6 days ago
JSON representation

Awesome Lists containing this project

README

          

# cpp-middle-project-sprint-8

- [Начало работы](#начало-работы)
- [Сборка проекта и запуск тестов](#сборка-проекта-и-запуск-тестов)
- [Команды для сборки проекта](#команды-для-сборки-проекта)
- [Команды для запуска приложения](#команды-для-запуска-приложения)

Шаблон репозитория для практического задания 8-го спринта «Мидл разработчик С++»

## До начала использования 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`.

![Reopen in container](misc/reopen_in_container.png)

## Сборка проекта и запуск тестов

Данный репозиторий использует следующие инструменты:

- **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`

![](misc/select_vscode_tasks.png)

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

![](misc/select_concrete_task.png)

### Команды для запуска приложения

```bash
cd build

./refactor_tool ../tests_data/for_refactor.cpp
```

Для запуска отладки нажмите `F5`, будет произведена сборка и отладка проекта.

Для проверки Ваших изменений так же предусмотрен скрипт `check_refactor.sh`, запустив который, Вы сможете проверить базовые сценарии рафакторинга.

### Команда для запуска тестов

Для запуска тестов вы можете воспользоваться удобным расширением `C++ TestMate`:

![](misc/test_mate.png)

### Команда для запуска 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`.

Если всё сделали правильно, то после успешной сборки проекта вы сможете использовать автодополнение.

![Скриншот 2](misc/clangd_1.png)

![Скриншот 3](misc/clangd_2.png)