Через меня проходит много пет-проектов, и я выделил топ-5 ошибок, которые встречаются практически в каждом. Проверьте себя - нет ли таких грешков в ваших проектах?)
Где размещать проект
Кто-то присылает ссылку на google colab, кто-то блокнот ipynb, кто-то архив, кто-то py-файл... Короче, кто во что горазд.
Есть только единственный вменяемый способ поделиться проектом - публичный репозиторий на Github. Если мне нужно сделать что-то кроме
git clone ...
- значит такой проект можно дальше не смотреть.
Необходимые библиотеки
Если вы используете специализированные библиотеки в своем коде, то обязательно создавайте в корне проекта файлик
requirements.txt
со списком актуальных библиотек и их версий. Это очень легко можно сделать, если перед пушем проекта на гит выполнить команду
pip freeze > requirements.txt
(только нужно делать это, активировав виртуальное окружение).
Это нужно, потому что любой проект я разверну так:
git clone https://github.com/...
cd projectname
python -m venv venv
./venv/scripts/activate
pip install -r requirements.txt
Склонил репозиторий - перешел в папку - создал виртуальное окружение - активировал его - установил зависимости. После этого ваш скрипт у меня запустится без проблем.
Мусор в репозитории
Есть ребята, кто размещают проекты на Github, но там много мусора. Запомните - в репе не должно быть папок
venv
,
.idea
,
__pycache__
и прочих прелестей. Это все должно добавляться в
.gitignore
.
Описание, как работает проект
Сделайте хотя бы минимальный readme-файл. Минимальные системные требования (не все библиотеки работают на всех ОС + есть ограничения по версиям питона), как запустить код, где лежат данные, какие входные аргументы, как их менять и что они значат, что вообще код делает. В общем, простой мануал для тех, кто первый раз видит ваш проект.
Хардкодинг пути до файла
Частая история - у автора кода на домашнем компьютере файлик лежит в папке
C:/Desktop/pussycat/data.txt
. И именно этот путь он зашивает в код. А у меня на компьютере может не быть диска
C
и уж точно папки
pussycat
.
Хорошая практика - делать путь относительным, в формате «файл data.txt на одном уровне с текущим файлом с кодом» .Это делается с помощью того же модуля
os
.
Если кому-то эта инфа актуальна сейчас - обязательно поделитесь этим постом, чтобы в мире стало больше хорошо оформленных проектов
🎶
ANDRON ALEXANYAN