
Эволюция Telegram‑бота на C++: от «лапши» в main() до ООП, in‑memory кэша и мутов по Фибоначчи
H-D-OWL 45 минут назад Эволюция Telegram‑бота на C++: от «лапши» в main() до ООП, in‑memory кэша и мутов по Фибоначчи Простой 14 мин 1.4K C++ * ООП * Программирование * Проектирование и рефакторинг * Спам и антиспам...
Вот важная новость с фронта ИИ: H-D-OWL 45 минут назад Эволюция Telegram‑бота на C++: от «лапши» в main() до ООП, in‑memory кэша и мутов по Фибоначчи Простой 14 мин 1. 4K C++ * ООП * Программирование * Проектирование и рефакторинг * Спам и антиспам Обзор Из песочницы Привет, Хабр! В этой статье я расскажу об эволюции моего проекта — GroupModerBot, бота для модерации Telegram‑групп.
Я покажу, как проект прошел путь от первой версии «всё в одном файле» до продуманной архитектуры с ООП, in‑memory кэшированием, безопасным выполнением команд и нестандартными алгоритмами наказаний пользователей. ПредысторияЗакончив свой прошлый проект, я сразу решил взяться за новый: «Нельзя сидеть без дела, всё забудется! Сначала хотел написать полноценный калькулятор с парсингом строки, работающий с тангенсами и корнями.
Технические детали
Создал проект, что‑то написал, но быстро понял: либо я буду постоянно подсматривать код из туториалов, либо погрязну в написании неоптимального велосипеда. Решил я взяться за что‑то другое, то, что недавно попалось мне на глаза на YouTube — Telegram‑бота. Увидел я это на канале «Максим С++».
Он единственный кто сделал полноценный гайд о создании бота на C++ на YouTube. Эту тему в принципе мало кто ещё поднимал. Значит, это нишевая тема для которой есть основа (в виде гайда «Телеграм бот на С++»), а вот, что и как делать дальше мне никто не подскажет.
Отличная задача, чтобы научиться новому и создать что‑то довольно уникальное. Как всё начиналосьТак как за основу я взял гайд «Телеграм бот на С++» от «Максим С++». Основные библиотеки были выбран такие же как и у него.
Отраслевые последствия
И стек технологий получился таким:• Язык: C++ 20 • Библиотеки: tgbot-cpp — отвечает за взаимодействие с Telegram API и SQLiteCpp — обертка над базой данных SQLite. Как и многие проекты, первая версия моего бота писалась по принципу «лишь бы работало». Вся логика программы концентрировалась в одном файле TestTGBot.
cpp внутри огромной функции main(). Однако даже в этой ранней версии были заложены правильные решения:Я сразу же подумал о том, что заставлять пользователя лезть в код, для изменения токена бота или пути к базе данных не удобно. К тому же это заставило бы делать перекомпиляцию .
Поэтому было сделано простое решение со считыванием из файла DataForBot. txt первой строки как пути к базе данных, а второй строки как токена бота:Первоначальный парсинг файла конфигурацииifstream fileDataForBot("DataForBot. txt", ios_base::in); .
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





