Мероприятие в Западной Африке: какие чат-бот инструменты помогли нам разослать билеты в 2 раза быстрее?
В исследовании State of Chatbots пишут, что 69% пользователей предпочитают чат-ботов, а не коммуникацию через отдельные приложения. Приложение надо скачивать, проходить регистрацию с вечными паролями, а потом и обновлять. В бот написал и сразу получил ответ — без суеты. Но чтобы создать такого бота, нужны мощные инструменты.
В статье рассмотрим, какие инструменты помогают в создании ботов, которые:
- увеличивают трафик топовой ритейл сети России до 4 валидных чеков на 1 участника акции,
- рассылают билеты на мероприятие в Западной Африке.
Почему мы выбрали React JS?
React JS — это JavaScript-библиотека для создания пользовательских интерфейсов. Это про то, что видит и с чем взаимодействует юзер. Главная фишка — компонентный подход.
- Компонентная архитектура. Разбивает интерфейс бота на небольшие и независимые элементы. Это упрощает разработку и обновление — каждый компонент можно легко изменять и переиспользовать. И спокойно создавать модульный код.
- DOM. Мгновенно обновляет только нужные элементы интерфейса и при этом минимизирует затраты.
- Реактивный подход. Чат-бот реагирует на изменения и обновляет интерфейс в режиме реального времени. Например, мгновенно отображает новое сообщение в чате без перезагрузки.
- Мультиплатформы. React JS поддерживает веб- и мобильные устройства и даже настольные приложения. Можно создавать мультиплатформенные чат-боты.
- Экосистема. React JS включает в себя разные инструменты, такие как Redux для управления состоянием бота и React Router для навигации. Они упрощают разработку сложных функций — обработку диалогов, обмен данными и интеграцию.
Шпаргалка по инструментам
Поговорим про инструменты, которые мы активно используем в разработке ботов. Тут все — от Rabbit MQ до PostgreSQL. Разберём, что они такого сделали, чтобы попасть в список мастхэв-инструментов.
Rabbit MQ
Rabbit MQ — это инструмент, который передаёт сообщения между компонентами или системами.
Как он работает?
- Отправитель помещает сообщение в очередь Rabbit MQ.
- Rabbit MQ сохраняет сообщение внутри очереди.
- Получатель забирает сообщение из очереди и обрабатывает его.
- Rabbit MQ отслеживает процесс передачи и гарантирует доставку.
Почему он классный?
- Надёжность и отказоустойчивость. RabbitMQ доставляет сообщения даже при сбоях или перегрузках.
- Масштабируемость. Распределяет нагрузку между приложениями и серверами. Огромное количество запросов — не помеха.
- Интеграция. RabbitMQ легко интегрируется с Node.js и ASP.NET,
- Асинхронная обработка. Приложение не заблокируют из-за длительных операций.
Redis
Redis — это быстрое хранилище данных типа «ключ‑значение» в памяти с открытым исходным кодом.
Почему он классный?
- Быстродействие. Redis — эксперт по высокой производительности и кэшированию. Инструмент хранит данные в оперативной памяти — вы мгновенно получаете доступ к ним. Также запросы обрабатываются быстрее.
- Кэширование. При получении запроса бот проверяет релевантное значение в Redis-кэше и возвращает результат. К основным данным не обращается. В итоге сокращается время ответа и снижается нагрузка на БД.
- Поддержка. Строки, списки, хеш-таблицы, множества и сортированные множества. Бот может хранить и обрабатывать различные данные, а также искать, сортировать и фильтровать.
- Отказоустойчивость. У Redis встроенная поддержка репликации и кластеризации. В случае сбоя приложение переключается на реплику.
Node JS
В отличие от классической JavaScript в браузерах, с Node.js создавать серверные приложения и выполнять задачи на стороне сервера можно и нужно.
Почему он классный?
- Однопоточная и событийно-ориентированная архитектура. Node.js работает в одном потоке, используя асинхрон и обратные вызовы (callbacks). Польза в том, что вы обрабатываете несколько запросов одновременно и ввод-вывод не блокируется. Это повышает производительность.
- Высокая масштабируемость. Node.js работает с горизонтальным масштабированием. Добавление дополнительных серверов для распределения нагрузки — не проблема.
- Экосистема модулей. Доступна через систему управления пакетами npm. Процесс разработки в разы быстрее, так как вы используете готовые модули — обработку текстов, интеграцию с внешними сервисами или работу с БД.
- Поддержка WebSocket. Коммуникация между клиентом и сервером в режиме реального времени.
ASP.NET
А тут у нас платформа для разработки веб-приложений. По опыту скажем — проекты разработанные на ASP.NET легко масштабируются, супербыстрые и тянут до 1 000 000 активных пользователей.
Почему он классный?
- Безопасность. Проверка подлинности и авторизации, защита от атак типа CSRF и XSS, а также механизмы шифрования данных.
- Базы данных. ASP.NET даёт доступ к различным БД через Entity Framework. Это упрощает коммуникацию с хранилищем данных бота. Также можно использовать ORM-инструменты для создания и управления структурами данных.
- Расширяемость. Готовые решения для обработки нетипичных задачах. Всё благодаря NuGet.
- Любая платформа. Развёртывайте боты на Windows, Linux или macOS.
Entity Framework
Entity Framework — это ORM (Object-Relational Mapping) фреймворк. Он удобный — управление данными происходит через объектно-ориентированный подход.
Почему он классный?
- Простота. Высокоуровневый API взаимодействует с БД, используя объекты и запросы на языке LINQ (Language Integrated Query). Работать намного легче.
- Автоматическая генерация моделей данных. Создание модели данных (Entity) на основе существующей БД. Или новых схем данных на основе классов. Это экономит время и минимизирует ошибки.
- Поддержка провайдеров БД. Entity Framework поддерживает более 30 провайдеров БД — PostgreSQL, SQL Server, MySQL, Oracle и т.д. Выбор огромен — среди списка точно найдёте подходящую под ваш проект систему.
- Миграции. Механизм обновляет БД автоматически.
PostgreSQL
Это мощная БД. Одна из самых крутых вещей в PostgreSQL — открытый исходный код. Ещё она тянет 1 терабайт данных, те. миллионы записей или гигабайты текстовых данных.
Почему он классный?
- Реляционная модель. Определяет структуру и связи между элементами бота — можно превращать данные в таблицы.
- Хранение и обработка данных. Благодаря оптимизированной архитектуре и индексированию, доступ к данным быстрее, а производительность выше.
- Надежность. Транзакционная поддержка, целостность данных, резервное копирование и восстановление, а также обработка ошибок. Всё это способствует сохранности данных и отказоустойчивости чат-ботов.
- Расширяемость и гибкость. Благодаря набору типов данных, пользовательских функций и индексированию, PostgreSQL адаптирует БД под уникальные потребности проекта.
- Интеграция. PostgreSQL — это не только хранение данных. Сегодня разработано более 100 интеграционных решений для взаимодействия с БД. Например, CRM, ERP и CMS. Всему виной широкая популярность PostgreSQL.
Заключение
В интернете миллион гайдов и лонгридов по разработке ботов. Вопрос в том, какие инструменты тащат, а какие — жутко отстают. В статье выделили инструменты, которыми пользуются наши разработчики. Жалоб пока не было.