Применить ниспадающее программирование для задачи построения архитектуры чат-бот платформы
Применение ниспадающего программирования означает:
- Написать верхнеуровневые интерфейсы
- Написать тест
- Написать интерфейсы ниже уровнем
- Написать реализацию
- Запустить тест
Построить базовую архитектуру бота, который сможет одинаково работать в нескольких чат-бот системах (в шаблоне реализовано подключение к Telegram и Discord).
В качестве основного функционала бота требуется возвращать в ответ текст, который отправил пользователь с пометкой от бота. Формат возвращаемого ответа "Ваше сообщение: 'сообщение>'".
Учтите, что в будущем предполагается расширение функционала.
Нужно акцентировать внимание именно на архитектуре и интерфейсах. Постарайтесь сделать минимально необходимое количество интерфейсов.
Большим плюсом будет подумать заранее о возможных путях расширения функционала и учесть это в архитектуре.
- Наличие JavaDoc у всех интерфейсов, классов, методов и полей
- И для телеграмма и для дискорда должна использоваться одна и та же обработка сообщений
User: привет
Bot: "Ваше сообщение: 'привет'".
В шаблоне реализовано подключение к Telegram и Discord. Реализована вся специфичная логика работы в этих чат-бот системах: достаёт из специальных классов текстовое сообщение от пользователя и имеет методы для отправки ответа. Осталось лишь реализовать архитектуру и требуемый функционал.
Отправлять домашнее задание нужно в виде Pull Request. Пожалуйста, сразу ведите разработку в отдельной ветке.
Исправить FIXME из файла pom.xml, нужно устранить уязвимости транзитивных библиотек.
Менять версию библиотек telegrambots, discord4j-core - нельзя. Они используются в коде и обновление может нарушить стабильную работу приложения.
Для запуска приложения нужно указать параметры в разделе "Environment Variables":
- telegram_botName
- telegram_token
- discord_token
- Запускаем телеграмм бота @BotFather
- Вводим команду /newbot и вводим имя для нашего нового бота. Имя должно быть уникальным и заканчиваться на bot
- Бот сгенерирует нам уникальный токен. Данный токен лучше держать в секрете и никому не показывать, потому что узнав его можно получить полный контроль над вашим ботом.
- Войдите на портал разработчиков Discord.
- На вкладке «Applications» нажмите «New Application».
- Введите имя для нашего бота и нажмите «Create»
- (не обязательно) Загрузите значок приложения и описание и нажмите «Save Changes».
- (устарело) На вкладке «Bot» нажимаем «Add Bot» и подтверждаем, что мы хотим это сделать.
- На вкладке «Bot» нажимаем «Reset Token» и подтверждаем, что мы хотим это сделать.
- Копируем готовый токен в настройки запуска приложения
- Перейдём во вкладку OAuth2, пролистаем чуть ниже, выберем «Bot» и отметим нужные боту привилегии ("Bot" и "Administrator")