nomilkinmyhome / vkbottle_bot_architecture_example

Пример архитектуры проектов на VKBottle 3.0
28 stars 1 forks source link
bot example vkbottle

VKBottle bot architecture example

Пример приемлемой на мой взгляд архитектуры проекта с использованием VKBottle 3.0

Поскольку это всего лишь пример, а не реальный проект, местами я использую громоздкие конструкции для маленьких вещей (use_cases, repositories). В реальных проектах в этих местах будет значительно больше кода, так что применение именно такого стиля будет оправдано.


Навигация:

В пакете src основной код проекта. Его содержимое:

В tests содержатся тесты. В этом примере они больше формальные, у меня не было цели что-то и правда протестировать. Мне хотелось показать как в принципе в подобном проекте должны выглядеть тесты и где они должны лежать. Про архитектуру самих тестов можно прочитать в "Python Testing with Pytest: Simple, Rapid, Effective, and Scalable".

Запуск:

  1. Запуск бота вместе с БД через docker-compose
    # Сборка и запуск контейнеров
    docker-compose up --build
    # Сборка и запуск контейнеров в фоновом режиме
    docker-compose up --build -d
    # Остановить контейнеры поле запуска в фоновом режиме
    docker-compose down
  2. Сборка и запуск контейнера через Docker
    docker build -t vkbottle-example .
    docker run vkbottle-example
    # Или
    docker run -d vkbottle-example
    # Для запуска в фоновом режиме
  3. Ручной запуск через python -m src

PR, код-ревью и любая критика приветствуются.