Всем привет! На связи Андрон, основатель Simulative 👋🏻
Через меня проходит много пет-проектов, и я выделил топ-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.Если кому-то эта инфа актуальна сейчас, обязательно поделитесь этим постом, чтобы в мире стало больше хорошо оформленных проектов 🎶
📊 Simulative