Skip to content

ktsstudio/backend-school-template-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Памятка по работе с проектом

Начало работы с проектом

Для начала работы с проектом необходимо создать репозиторий по шаблону. Для этого используйте кнопку "Use this template".

image

После этого его можно локально клонировать себе на компьютер:

git clone <ссылка на репозиторий>

Ветки dev и main

После того как скопируете репозиторий, скорее всего, вы будете находиться в main-ветке.

Как правило, ветка main (master) содержит в себе production-ready код, т.е. именно из этой ветки проект будет катиться. Поэтому сама разработка из этой ветки обычно не ведется, туда делают merge финальных изменений.

Создадим ветку dev:

git checkout -b dev

Dev — чаще всего общая тестовая ветка. От dev-ветки ответвляются feature-ветки, в которые добавляется новая функциональность, тестируется, проходит ревью и "сливается" в dev-ветку.

Создадим feature-ветку:

git checkout -b <<название ветки>>

После чего создается pull request.

Pull request (PR) позволяет другим разработчикам провести ревью и оставить комментарии к написанному коду, прежде чем проверять его и делать релиз.


Работа в репозитории

Gitignore

Файл .gitignore содержит информацию о том, какие файлы не следует сохранять в удаленный репозиторий – локальные конфиги, файлы библиотек, специфичные файлы IDE или операционной системы.

Самый простой способ составить подходящий .gitignore файл — воспользоваться ресурсом gitignore.io

Обратите внимание, что в шаблоне проекта уже присутствует файл .gitignore. Остается убедиться, что у вас нет каких-то дополнительных файлов, которые следует туда добавить.


Виртуальное окружение

Создание виртуального окружения

Виртуальное окружение позволяет разделять проекты, зависимости и даже версии языка.

Пример. Есть два проекта. Один использует библиотеку example версии 1, второй – версии 2. Они не могут существовать одновременно, и версии могут конфликтовать из-за каких-то других зависимостей. Поэтому мы создаем два виртуальных окружения, каждое для своего проекта. PyCharm может создавать их автоматически. Python будет видеть только библиотеки из своего виртуального окружения, что существенно облегчит сосуществование множества проектов на одном компьютере.

Создадим:

python -m venv <название окружения>

Принято называть окружение env или venv -– ([virtual] environment).

Задать версию языка для виртуального окружения, например 3.12:

python3.12 -m venv <название окружения>

Обратите внимание, что для этого нужно чтобы эта версия была установлена в системе.

Активация

Для Linux/MacOS:

source <название окружения>/bin/activate

Для Windows:

<название окружения>\Scripts\activate.bat

Зависимости

В файл requirements.txt принято записывать зависимости проекта – список библиотек и их версий, без которых проект не сможет запуститься. Добавляя в проект использование новой библиотеки, обязательно нужно записать ее в requirements.txt. При релизе зависимости устанавливаются из же этого файла.

Пример файла:

aiohttp==3.8.1
black==22.6.0
freezegun==1.2.1
pytest==7.1.2
pytest-aiohttp==1.0.4

Если в новой версии из библиотеки будет удалено что-то важное для проекта, то ничего не сломается, потому что мы фиксируемся на старой версии. В дальнейшем мы можем вручную обновить версию и сразу проследить, что при обновлении все работает как нужно. Либо что-то починить, если сломалось.

Установить все необходимые библиотеки можно при помощи команды…

pip install <библиотека>

…либо:

pip install -r requirements.txt

Лучше всего ставить библиотеки в виртуальное окружение.


Ruff

Библиотека для автоматического форматирования кода и проверки его на ошибки. Рекомендуется использовать, чтобы код был читаемым и соответствовал pep-8. Для применения потребуется поставить библиотеку в виртуальное окружение.

Отформатировать код:

ruff format  

Проверить код

ruff check --fix  

В файле pyproject.toml можно сконфигурировать библиотеку.

Например:

[tool.ruff]
line-length = 80
indent-width = 4
target-version = "py312"

Обратите внимание, что в pyproject.toml для вас уже добавлена рекомендуемая конфигурация. По договоренности с вашим ментором конфигурацию можно отредактировать.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages