- Наличие корректного
.gitignoreфайла (или может быть нескольких для front и backend частей проекта, если они в одной репе). В хорошем.gitignoreфайле должны быть прописано виртуальное окружение, различные кэши__pycache__,.pytest_cache, логи, файлы баз данных (.sqlite3) и т. д. В идеале, чтобы командаgit add .запущенная в корне проекта не добавила ничего лишнего в индекс. (Примеры хороших можно взять здесь) - Подбробный и понятный
README.md. Например, можно воспользоваться вот этой инструкцией. Главное в readme должно быть:- название проекта
- описание
- разделы "Как запустить/установить проект/приложение" (здесь должны быть указаны необходимые переменные окружения для запуска/сборки,
желательно готовые команды, чтобы можно было клонировать проект, скопировать
.envи запустить. - примеры или описание того, как использовать ваш проект
- соавторы или команда, в которой работали над проектом, ссылки на проекты, которые может быть брали в основу
- шилдики со всякой полезной информацией https://shields.io/ (необязательно)
- лицензия (необязательно)
- как контрибьютить в проект (если у вас Open Source) (необязательно)
- примеры команд и настроки среды для запуска тестов, проверок на вашем проекте (необязательно)
Обязательно попробуйте после заполнения README.md, следуя инструкции по шагам, развернуть проект с нуля сами или попросите коллегу,
чтобы он попробовал.
- Code Style. Соблюдайте PEP 8. Перед публикацией всегда запускайте линтеры и форматеры для проверки вашего кода. Идеальный вариант - настроить автоматические проверки (pre-commit).
- Типизация и MyPy. Используйте в проекте Type Hints и обязательно проверяйте код с помощью
mypy - Проверьте наличие ключей, токенов, credentials и т. д. при чем как явно в коде, так и файлами в проекте.
Если они уже попали в коммит, то удалить так, чтобы в истории их не было. Это можно сделать, например, с помщью
git rebaseили просто создайте новый репозиторий и начните коммитить с нуля. Используйте env-переменные (dotenv, pydantic-settings) - Замените все
printнаlogger. Сделайте или найдите хорошую конфигурацию логгеров, подходящую именно вашему проекту - Проанализируйте структуру проекта. Плохо если у вас один
main.pyна 1000 строк или 30 файлов по 5 строк в каждом. Нужен разумный баланс и понятные имена файлов и папок. Обратитесь к примерам проектов ваших коллег. - Проверьте файл с зависимостями вашего проекта. Там должны быть только необходимые библиотеки актуальных версий
- Контейнеры. Особенно важно для веб-проектов. Добавьте в репозиторий
Dockerfileили дажеdocker-compose.yml. Полезные советы по контейнерам для Python - CI/CD. Если речь идет про GitHub, то это Github Actions, если GitLab - Gitlab CI. Покажите, что вы умеете настраивать хотя бы простую автоматизацию для проверки проекта линтерами и форматерами (пример).