{"id":49791533,"url":"https://github.com/reo7sp/practicum-cpp-project4","last_synced_at":"2026-05-12T05:03:25.717Z","repository":{"id":350934137,"uuid":"1145581940","full_name":"reo7sp/practicum-cpp-project4","owner":"reo7sp","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-12T20:10:24.000Z","size":174,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T22:15:15.149Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reo7sp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-30T00:40:30.000Z","updated_at":"2026-04-12T20:10:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/reo7sp/practicum-cpp-project4","commit_stats":null,"previous_names":["reo7sp/practicum-cpp-project4"],"tags_count":null,"template":false,"template_full_name":"Yandex-Practicum/cpp-middle-project-sprint-4","purl":"pkg:github/reo7sp/practicum-cpp-project4","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reo7sp%2Fpracticum-cpp-project4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reo7sp%2Fpracticum-cpp-project4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reo7sp%2Fpracticum-cpp-project4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reo7sp%2Fpracticum-cpp-project4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reo7sp","download_url":"https://codeload.github.com/reo7sp/practicum-cpp-project4/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reo7sp%2Fpracticum-cpp-project4/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32924388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"online","status_checked_at":"2026-05-12T02:00:06.338Z","response_time":102,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-12T05:03:24.822Z","updated_at":"2026-05-12T05:03:25.707Z","avatar_url":"https://github.com/reo7sp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cpp-middle-project-sprint-4 \u003c!-- omit in toc --\u003e\n\n- [До начала использования Docker контейнера: Настройка переменных окружения](#до-начала-использования-docker-контейнера-настройка-переменных-окружения)\n- [Начало работы](#начало-работы)\n- [Сборка проекта и запуск тестов](#сборка-проекта-и-запуск-тестов)\n  - [Команды для сборки проекта](#команды-для-сборки-проекта)\n  - [Команды для запуска приложения](#команды-для-запуска-приложения)\n  - [Команда для запуска тестов](#команда-для-запуска-тестов)\n  - [Команда для запуска clang-format — обязательное требование перед сдачей работы на ревью](#команда-для-запуска-clang-format--обязательное-требование-перед-сдачей-работы-на-ревью)\n  - [Команды для запуска отладчика](#команды-для-запуска-отладчика)\n- [Дополнительно](#дополнительно)\n\nШаблон репозитория для практического задания 4-го спринта «Мидл разработчик С++»\n\n## До начала использования Docker контейнера: Настройка переменных окружения\n\nДля корректной работы контейнера добавьте в ваш bash-профиль две переменные окружения и обновите его, выполнив следующие команды:\n\n```bash\n# Set USER_UID and USER_GID\necho -e '\\nexport USER_UID=$(id -u)\\nexport USER_GID=$(id -g)' \u003e\u003e ~/.bashrc\n\n# Update bash-profile\nsource ~/.bashrc\n```\n\nПеред началом работы с Docker контейнером, убедитесь, что переменные окружения доступны, внутри используемой вами IDE (например в терминале внутри VS Code):\n\n```bash\nprintf \"\\nUSER_UID=${USER_UID=}\\nUSER_GID=${USER_GID}\\n\\n\"\n```\n\n## Начало работы\n\n1. Убедитесь, что переменные окружения из предыдущего шага доступны внутри вашей IDE\n2. Нажмите зелёную кнопку `Use this template`, затем `Create a new repository`.\n3. Назовите свой репозиторий.\n4. Склонируйте созданный репозиторий командой `git clone your-repository-name`.\n5. Создайте новую ветку командой `git switch -c development`.\n6. Откройте проект в `Visual Studio Code`.\n7. Нажмите `F1` и откройте проект в dev-контейнере командой `Dev Containers: Reopen in Container`.\n\n![Reopen in container](misc/reopen_in_container.png)\n\n## Сборка проекта и запуск тестов\n\nДанный репозиторий использует три инструмента:\n\n- **Conan** — свободный менеджер пакетов для C и C++ с открытым исходным кодом (MIT). Позволяет настраивать процесс сборки программ, скачивать и устанавливать сторонние зависимости и необходимые инструменты. Подробнее о Conan:\n  - https://habr.com/ru/articles/884464\n  - https://docs.conan.io/2.0/tutorial/consuming_packages/build_simple_cmake_project.html\n  - https://docs.conan.io/2.0/tutorial/consuming_packages/the_flexibility_of_conanfile_py.html\n\n- **cmake** — генератор систем сборки для C и C++. Позволяет создавать проекты, которые могут компилироваться на различных платформах и с различными компиляторами. Подробнее о cmake:\n  - https://dzen.ru/a/ZzZGUm-4o0u-IQlb\n  - https://neerc.ifmo.ru/wiki/index.php?title=CMake_Tutorial\n  - https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html\n\n- **VS Code Dev Docker container** - Docker контейнер, который содержит полностью настроенное окружение для выполнение задания. Подробнее об этой функциональности:\n  - https://habr.com/ru/articles/822707/ - \"Почти все, что вы хотели бы знать про Docker\"\n  - https://code.visualstudio.com/docs/devcontainers/containers - официальная документация VS Code\n  - https://www.youtube.com/watch?v=p9L7YFqHGk4 - \"Docker container for VS Code\"\n  - https://www.youtube.com/watch?v=pg19Z8LL06w\u0026t=174s\u0026pp=ygUPRG9ja2VyY29udGFpbmVy - \"Docker in 1 hour\"\n\n### Команды для сборки проекта\n\nИспользуйте `F5` для выполнения следующих шагов:\n- Создания папки `build`\n- Вызова `conan` команд для установки требуемых библиотек и запуска процесса сборки\n- Запуска `lldb` отладчика\n\nТакже, вы можете запустить только команду построения проекта. Для этого:\n\n- вызовите командное окно, нажав `F1`\n\n- Выберите команду `Tasks: Run Task`\n\n![](misc/select_vscode_tasks.png)\n\n- Выберите команду сборки проекта, например `GCC: Build Debug app`\n\n![](misc/select_concrete_task.png)\n\n### Команды для запуска приложения\n\n```bash\n./build/analyzer -f files/sample.py\n```\n\n### Команда для запуска тестов\n\nДля запуска тестов вы можете воспользоваться удобным расширением `C++ TestMate`:\n\n![](misc/test_mate.png)\n\n### Команда для запуска clang-format — обязательное требование перед сдачей работы на ревью\n\nВ этом репозитории настроен автоматический запуск clang-format (файл конфигурации — .vscode/settings.json) при сохранении любого файла с кодом.\n\nУбедитесь, что эта функциональность работает:\n- Добавьте несколько пустых линий в любой файл.\n- Сохраните файл.\n- Если пустые линии были удалены, всё работает, если нет — убедитесь, что clangd работает (при открытии файла с кодом в самом низу VS Code на голубой полоске должно быть написано clangd: idle). Для этого:\n    - нажмите `F1` и выполните команду `clangd: Download language server`;\n    - нажмите `F1` и выполните команду `clangd: Restart language server`;\n    - нажмите `F1` и выполните команду `Developer: Reload Window`.\n\n### Команды для запуска отладчика\n\nВ Visual Studio Code настройки параметров для запуска отладчика находятся в файле .vscode/launch.json. Поскольку в этом файле для запуска приложения уже есть одна конфигурация `Launch *`, то для запуска отладчика достаточно нажать F5 или открыть окно Run and Debug комбинацией клавиш `Ctrl+Shift+D`.\n\n## Дополнительно\n\nДля настройки автодополнения `Ctrl + Space` нажмите `F1` и выполните команду `clangd: Download language server`. VS Code сам предложит установить подходящую версию clangd (всплывашка в правом нижнем углу). После завершения установки перезагрузите окно кнопкой перезапуска справа снизу или с помощью `F1` и выполните команду `Developer: Reload Window`.\n\nЕсли всё сделали правильно, то после успешной сборки проекта вы сможете использовать автодополнение.\n\n![Скриншот 2](misc/clangd_1.png)\n\n![Скриншот 3](misc/clangd_2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freo7sp%2Fpracticum-cpp-project4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freo7sp%2Fpracticum-cpp-project4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freo7sp%2Fpracticum-cpp-project4/lists"}