- •Проектная работа
- •Глава 1. Технологии разработки Telegram бота. 4
- •Глава 2. Разработка Telegram-бота 21
- •Перечень терминов и сокращений
- •Введение
- •Глава 1. Технологии разработки Telegram бота.
- •Обзор литературы
- •1.2 История мессенджера Telegram
- •1.3 Сравнительный анализ языков программирования для Telegram-ботов
- •1.4 Характеристика языка программирования Python
- •1.5 Обзор фреймворков и библиотек для создания ботов
- •1.6 Обзор библиотек и методов обработки изображений
- •1.7 Описание алгоритмов и форматов данных
- •1.7.1. Цветовые модели и форматы данных
- •1.7.2 Алгоритм палитризации
- •1.7.3 Алгоритм классификации изображений
- •1.7.4 Алгоритм сжатия jpeg
- •1.7.5 Алгоритм сжатия png
- •Глава 2. Разработка Telegram-бота
- •2.1 Планируемые возможности бота и подходы к их реализации
- •2.2 Разработка модуля обработки изображений
- •2.3 Разработка пользовательского интерфейса
- •2.4 Разработка функций для работы с изображениями и передачи данных
- •2.4.1 Импорты, настройки и словари
- •2.4.2 Пользовательские настройки
- •2.4.3 Функции обработки изображений
- •2.4.4 Функции работы с пользовательскими данными
- •2.4.6 Обработчики команд и сообщений
- •2.4.7 Основной цикл
- •2.5 Описание разработки Telegram-бота
- •2.6 Инструкция пользователя
- •Список литературы
- •Приложение
Глава 1. Технологии разработки Telegram бота.
Обзор литературы
Реализация проекта по разработке Telegram-бота для сжатия изображений потребовала комплексного изучения современных источников, охватывающих как теоретические аспекты проектирования программных систем, так и практические вопросы программирования, обработки графики и интеграции с мессенджер-платформами. Проведённый анализ литературы позволил сформировать методологическую основу, определить технологический стек и выбрать оптимальные архитектурные решения.
В области теоретических основ разработки программного обеспечения ключевую роль сыграли работы Курилова В. А. «Технологии и средства проектирования программных систем» (2020) и Вигерса К. с соавторами «Разработка требований к программному обеспечению» (2022). В этих трудах подробно рассматриваются методы формализации требований, принципы модульного проектирования и подходы к обеспечению масштабируемости программных продуктов. На основе представленных методик была выстроена структура проекта: от чёткого формулирования функциональных и нефункциональных требований до проектирования архитектуры с разделением ответственности между компонентами обработки изображений, управления настройками и взаимодействия с Telegram API.
Исследования, посвящённые разработке чат-ботов и особенностям мессенджер-платформ, представлены в статье Матвеевой Н. Ю. и Золотарюка А. В. «Технологии создания и применения чат-ботов» (2018), а также в работе Жеребцовой Ю. А. и Чижика А. В. «Создание чат-бота: обзор архитектур и векторных представлений текста» (2020). В этих публикациях анализируются современные архитектурные паттерны, модели диалогового взаимодействия и методы обеспечения отказоустойчивости ботов под высокой нагрузкой. На основе этих материалов была выбрана событийно-ориентированная модель обработки запросов и реализована интуитивная система текстовых команд, что позволило создать простой и отзывчивый интерфейс без использования сложных конечных автоматов.
Практические руководства по программированию на Python составили основу для реализации серверной логики бота. В книге Фленова М. В. «Программирование на Python. Полный курс» (2022) систематизированы знания по синтаксису языка, работе с файлами, структурам данных и основам объектно-ориентированного программирования. Специализированное издание Морозова С. В. «Telegram-боты: от новичка до профи» (2023) содержит детальное описание возможностей Telegram Bot API, примеры использования библиотек aiogram и python-telegram-bot, а также рекомендации по обработке исключений и ведению журналирования. Эти источники активно применялись на этапах написания, отладки и оптимизации кода.
Методологические аспекты создания интерактивных систем и асинхронного программирования раскрыты в работе Скубриевой Е. А. и Агеева С. А. «Разработка интерактивных систем на Python» (2021), а также в официальном документе PEP 492 «Coroutines with async and await syntax». В этих материалах рассматриваются принципы асинхронной обработки запросов, организация параллельных вычислений и проектирование отзывчивых пользовательских интерфейсов. На основе этих принципов была построена архитектура бота, использующая асинхронную модель выполнения через asyncio, что обеспечило возможность одновременной обработки множества запросов без блокировок.
Официальная документация и ресурсы открытого сообщества позволили решить узкоспециальные технические задачи. Документация фреймворка aiogram (Aiogram Cookbook) предоставила актуальную информацию по работе с версией 3.x, настройке диспетчера, обработке медиафайлов и реализации middleware. Материалы по интеграции с асинхронными базами данных (например, aiosqlite) были изучены для оценки альтернативных подходов к хранению пользовательских данных, хотя в итоге был выбран более простой и эффективный для данного проекта вариант с файловым хранилищем в формате JSON.
Вопросы, связанные с обработкой и сжатием изображений, исследовались на основе документации библиотек Pillow и img2pdf, а также специализированных публикаций, посвящённых алгоритмам сжатия JPEG и PNG. В этих источниках подробно описываются методы изменения разрешения, работы с метаданными, палитризации и настройки параметров сжатия. На основе этих данных был разработан адаптивный алгоритм, автоматически определяющий тип изображения (фотография или графика) и применяющий оптимальные настройки: для фотографий — JPEG с регулируемым качеством и возможностью контроля размера файла, для графики — палитровый PNG с дизерингом для сохранения чёткости контуров.
Таким образом, проведённый литературный обзор позволил:
· систематизировать теоретические знания по проектированию программных систем и разработке чат-ботов;
· изучить и сравнить современные технологии и инструменты для создания Telegram-ботов;
· освоить передовые практики асинхронного программирования и обработки изображений;
· избежать распространённых ошибок за счёт использования проверенных методик, описанных в профессиональной литературе.
Все указанные источники нашли своё отражение в различных этапах проекта — от начального проектирования и выбора технологий до непосредственной реализации и тестирования функциональности, что обеспечило глубину проработки и качество итогового решения.
