Я разрабатываю бота и веб-сайт для него, поэтому меня интересует то, как бы вы реализовали структуру подобного проекта. Если коротко, то бот и сайт будут плотно связаны, друг без друга работать не смогут. Проект планирую делать не сложным.
По части бэкенда будет использован Python (FastAPI). Фронтент - CSS, HTML, JS, Angular (может дополняться). Так же планирую PostgreSQL (возможно MongoDB) или что-то попроще, если есть смысл. Конечно, это не итоговый вариант технологий, которые я буду использовать, но для формирования начально структуры - подойдёт.
Что конкретно меня интересует?
- Как стоит разделить бота и вебсайт? Делать ли это под одной условной папкой "my_project" или вообще не стоит совмещать сайт и бота в одном месте?
- Как лучше организовать папки, файлы?
- Возможно, вы знаете какие-то типичные ошибки при проектировании подобных проектов?
- Возможно, вы знаете полезные советы или литературу для проектирования чего-то подобного?
Помимо этого, я хотел бы услышать советы по технологиям, которые стоит использовать в подобном (довольно простом) проекте. Делать я его буду самостоятельно, в силу того, что хочу получить дополнительный опыт.
Дополнительно:
Содержание
Ответы:
Для начала выберите фреймворк. Django, как самый популярный, или какой-то из других, может лучше подойдут.
Структуру файлов берите из выбранного фреймворка.
Где-то рядом, в отдельной папке - бот.
Может быть есть смысл делать его подмодулем, хотя если вы утверждаете, что отдельно от кодовой базы сайта он не работает, то просто в папку.
Структура самого бота - тут сложно подсказать. Некторые боты настолько просты, что умещаются в один файл. Бывают и очень сложные, но что будет у вас - отсюда не видно.
- Да, забыл самое главное - фреймворк. Я хочу использовать FastAPI по ряду причин:
- Подходит для небольших проектов;
- Хорошо дружит с асинхронностью (что для меня важно);
- Более прост в использовании, чем тот же Django.
Именно этот фреймворк заставил меня написать вопрос на Хабр, ведь FastAPI не имеет строгой структуры (как Django, например). Что думаете по этому поводу?
- john_does13, я никогда не работал с fastapi, но по запросу "fastapi file structure best practices" выдает результаты и в родной документации и и вот эту, с 3500 звезд https://github.com/zhanymkanov/fastapi-best-practices
- Stalker_RED, отлично!
Стоит ли в корне проекта создавать две отдельных директории под сайт и бот? По типу:
PHP1my_project |--website/ |----other_dir/ |------some_files | |--bot/ |----some_files/
Или всё же отталкиваться от этой концепции?
Структуру файлов берите из выбранного фреймворка.
Где-то рядом, в отдельной папке - бот.PHP1my_project |--website/ |----other_dirs/ |------some_files |----bot/ |------some_files
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для создания проекта с ботом и сайтом, необходимо следовать определенной структуре, чтобы обеспечить удобство разработки, поддержки и масштабирования проекта. Вот пример структуры проекта с ботом и сайтом:
project/
│
├── bot/
│ ├── config/
│ │ └── config.php
│ ├── src/
│ │ ├── Bot.php
│ │ └── Handlers/
│ │ └── MessageHandler.php
│ └── vendor/
│ └── (здесь находятся установленные зависимости)
│
├── site/
│ ├── assets/
│ │ ├── css/
│ │ ├── js/
│ │ └── images/
│ ├── config/
│ │ └── config.php
│ ├── includes/
│ │ ├── header.php
│ │ └── footer.php
│ ├── pages/
│ │ ├── index.php
│ │ └── about.php
│ ├── vendor/
│ │ └── (здесь находятся установленные зависимости)
│ └── .htaccess
│
└── composer.json
В этой структуре проекта у нас есть две основные директории:
botиsite. В директорииbotнаходится весь код, относящийся к боту. В директорииsiteсодержится весь код для сайта.Каждая директория имеет свою структуру:
-
config/- здесь хранятся файлы конфигурации, например, настройки базы данных или API ключи.-
src/- здесь находятся основные файлы кода. В случае с ботом, здесь могут быть классы для работы с ботом. В случае с сайтом, здесь могут быть контроллеры и модели.-
Handlers/- если в боте есть обработчики сообщений, лучше вынести их в отдельную директорию.-
vendor/- здесь хранятся установленные зависимости через Composer.Также в корне проекта находится файл
composer.json, в котором указываются зависимости проекта.Для структуры сайта предусмотрены дополнительные директории:
-
assets/- здесь хранятся статические файлы, такие как CSS, JS и изображения.-
includes/- здесь можно хранить общие части сайта, например, шапку и подвал.-
pages/- здесь находятся файлы с контентом страниц сайта.-
.htaccess- файл для настройки URL-rewrite.Это лишь пример структуры проекта с ботом и сайтом, и ее можно изменять в зависимости от конкретных требований проекта. Важно поддерживать порядок и четкость в структуре проекта, чтобы облегчить совместную работу и дальнейшее развитие проекта.