{"id":21611716,"url":"https://github.com/ktsstudio/backend-school-template-project","last_synced_at":"2025-03-18T16:24:58.047Z","repository":{"id":231564065,"uuid":"773658054","full_name":"ktsstudio/backend-school-template-project","owner":"ktsstudio","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-28T16:01:03.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-01-24T20:16:58.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ktsstudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-18T06:53:20.000Z","updated_at":"2024-12-11T02:11:19.000Z","dependencies_parsed_at":"2024-04-04T17:07:12.044Z","dependency_job_id":"41a626a8-674a-4fd1-855b-666caaa9f213","html_url":"https://github.com/ktsstudio/backend-school-template-project","commit_stats":null,"previous_names":["ktsstudio/backend-school-project"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsstudio%2Fbackend-school-template-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsstudio%2Fbackend-school-template-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsstudio%2Fbackend-school-template-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsstudio%2Fbackend-school-template-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ktsstudio","download_url":"https://codeload.github.com/ktsstudio/backend-school-template-project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244257739,"owners_count":20424230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-24T21:13:38.999Z","updated_at":"2025-03-18T16:24:58.018Z","avatar_url":"https://github.com/ktsstudio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Памятка по работе с проектом\n\n## Начало работы с проектом\nДля начала работы с проектом необходимо создать репозиторий по [шаблону](https://github.com/ktsstudio/backend-school-template-project). Для этого используйте кнопку \"Use this template\".\n\n\u003cimg width=\"579\" alt=\"image\" src=\"https://github.com/ktsstudio/backend-school-template-project/assets/79798334/1566de18-2be5-4570-b327-fa212f909ab0\"\u003e\n\nПосле этого его можно локально клонировать себе на компьютер:\n\n``` sh\ngit clone \u003cссылка на репозиторий\u003e\n```\n\n---\n## Ветки dev и main\nПосле того как скопируете репозиторий, скорее всего, вы будете находиться в main-ветке. \n\nКак правило, ветка `main` (`master`) содержит в себе _production-ready_ код, т.е. именно из этой ветки проект будет катиться. Поэтому сама разработка из этой ветки обычно не ведется, туда делают merge финальных изменений.\n\nСоздадим ветку dev:\n``` sh\ngit checkout -b dev\n```\n\nDev — чаще всего общая тестовая ветка. От `dev-ветки` ответвляются `feature-ветки`, в которые добавляется новая функциональность, тестируется, проходит ревью и \"сливается\" в `dev-ветку`.\n\nСоздадим `feature`-ветку:\n``` sh\ngit checkout -b \u003c\u003cназвание ветки\u003e\u003e\n```\n\nПосле чего создается [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).\n\n`Pull request (PR)` позволяет другим разработчикам провести ревью и оставить комментарии к написанному коду, прежде чем проверять его и делать релиз.\n\n\n---\n## Работа в репозитории\n\n### Gitignore\n\nФайл .gitignore содержит информацию о том, какие файлы не следует сохранять в удаленный репозиторий – локальные конфиги, файлы библиотек, специфичные файлы IDE или операционной системы.  \n\nСамый простой способ составить подходящий `.gitignore` файл — воспользоваться ресурсом [gitignore.io](https://www.toptal.com/developers/gitignore/)\n\n\nОбратите внимание, что в шаблоне проекта уже присутствует файл `.gitignore`. Остается убедиться, что у вас нет каких-то дополнительных файлов, которые следует туда добавить.\n\n---\n### Виртуальное окружение\n\n#### Создание виртуального окружения\n\nВиртуальное окружение позволяет разделять проекты, зависимости и даже версии языка.\n\n**Пример.** Есть два проекта. Один использует библиотеку `example` версии 1, второй – версии 2. Они не могут существовать одновременно, и версии могут конфликтовать из-за каких-то других зависимостей. Поэтому мы создаем два виртуальных окружения, каждое для своего проекта. `PyCharm` может создавать их автоматически. `Python` будет видеть только библиотеки из своего виртуального окружения, что существенно облегчит сосуществование множества проектов на одном компьютере.\n\n**Создадим:**\n``` sh\npython -m venv \u003cназвание окружения\u003e\n```\n\n\u003e Принято называть окружение `env` или `venv` -– `([virtual] environment)`.\n\nЗадать версию языка для виртуального окружения, например 3.12:\n```\npython3.12 -m venv \u003cназвание окружения\u003e\n```\n\n\u003e Обратите внимание, что для этого нужно чтобы эта версия была установлена в системе.\n\n\n#### Активация\n**Для Linux/MacOS:**\n``` sh\nsource \u003cназвание окружения\u003e/bin/activate\n```\n\n**Для Windows:**\n``` sh\n\u003cназвание окружения\u003e\\Scripts\\activate.bat\n```\n\n---\n### Зависимости\nВ файл `requirements.txt` принято записывать зависимости проекта – список библиотек и их версий, без которых проект не сможет запуститься. Добавляя в проект использование новой библиотеки, обязательно нужно записать ее в `requirements.txt`. При релизе зависимости устанавливаются из же этого файла.\n\nПример файла:\n```requirements.txt\naiohttp==3.8.1\nblack==22.6.0\nfreezegun==1.2.1\npytest==7.1.2\npytest-aiohttp==1.0.4\n```\n\nЕсли в новой версии из библиотеки будет удалено что-то важное для проекта, то ничего не сломается, потому что мы фиксируемся на старой версии. В дальнейшем мы можем вручную обновить версию и сразу проследить, что при обновлении все работает как нужно. Либо что-то починить, если сломалось.\n\nУстановить все необходимые библиотеки можно при помощи команды…\n```sh\npip install \u003cбиблиотека\u003e\n```\n\n…либо:\n```sh\npip install -r requirements.txt\n```\n\nЛучше всего ставить библиотеки в виртуальное окружение.\n\n---\n### Ruff\n[Библиотека](https://docs.astral.sh/ruff/) для автоматического форматирования кода и проверки его на ошибки. Рекомендуется использовать, чтобы код был читаемым и соответствовал `pep-8`. Для применения потребуется поставить библиотеку в виртуальное окружение.\n\n**Отформатировать код:**\n```sh\nruff format  \n```\n\n**Проверить код**\n```sh\nruff check --fix  \n```\n\nВ файле `pyproject.toml` можно сконфигурировать библиотеку. \n\nНапример:\n```toml\n[tool.ruff]\nline-length = 80\nindent-width = 4\ntarget-version = \"py312\"\n```\n\n\u003e Обратите внимание, что в `pyproject.toml` для вас уже добавлена рекомендуемая конфигурация. \n\u003e По договоренности с вашим ментором конфигурацию можно отредактировать.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktsstudio%2Fbackend-school-template-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fktsstudio%2Fbackend-school-template-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktsstudio%2Fbackend-school-template-project/lists"}