Телеграм-бот как первый пет-проект для начинающего backend-разработчика

Многие начинающие бекенд-разработчики задаются вопросом, что написать в качестве своих первых пет-проектов. Я, как один из последних, занимающийся программированием как хобби, считаю, что одним из наилучших вариантов является телеграм-бот.

Преимущества:

- отсутствие необходимости создания frontend-части приложения (если не рассматриваем telegram mini-app);

- гибкие возможности telegram bot API;

- возможность практики использования различных готовых библиотек и инструментов, широко используемых в бекенд-проектах;

- возможность создания проекта, который вызовет интерес у соответствующей аудитории и в относительно короткие сроки найдет практическое применение с учетом популярности telegram;

- большое количество учебных материалов в интернете по разработке ботов.

Формирование идеи

На этом этапе можно пойти несколькими путями.

Первый - проанализировать трудовые процессы на месте текущей работы, выделить моменты, которые можно автоматизировать. Например, создаем телеграм-бота, который будет принимать заявки от клиентов и перерабатывать согласно необходимой логике.

Второй - проводим опрос своего ближнего окружения на предмет необходимости автоматизации и оптимизации рабочих процессов, которые можно решить с использованием телеграм-бота.

Третий - отталкиваться от сферы увлечений и хобби. Например, бот с базой табулатур на гитарные партии известных песен.

Четвертый - идеи, не входящие в рамки вышеуказанных путей. Например, у вас была потребность в получении какой-либо информации и какого-либо сервиса. Имеющиеся в доступе инструменты не оправдали ваших ожиданий, и у вас возникла идея создать аналогичный, но усовершенствованный сервис.

Этап формирования идеи безусловно является важным, так как от него будет зависеть, доделаете ли вы проект до конца, и будет ли в него вложен достаточный объем усилий. От этого напрямую будет зависеть заряд "мотивационной батареи".

Анализ требований рынка вакансий по стеку

Этот этап зависит от языка программирования, который вы осваиваете. Что касается меня, так как я изучаю пайтон, мой выбор пал на библиотеку по написанию телеграм-ботов aiogram.

Одной из задач реализации проекта является получение практических навыков по использованию актуальных на рынке инструментов. В вакансиях на бекенд-разработчиков выделяете необходимый стек, изучаете его функционал и продумываете, что можно использовать в вашем проекте.

Разработка

Этот этап можно разделить на условно два подраздела: создание плана архитектуры приложения и непосредственно кодинг.

Но так как мы с вами не имеем достаточного опыта в разработке и на первых порах тяжело определить эффективность и реализуемость плана архитектуры, в ходе кодинга может оказаться, что выбранная архитектура, мягко говоря, будет не лучшим решением и придется возвращаться к проектированию. Но не стоит отчаиваться, ведь в этом и заключается наша задача - получить знания и навыки. Несмотря на то, что этот путь может оказаться не таким быстрым, как хотелось бы, информация, полученная в ходе ошибок и самостоятельного исследования, усваивается глубоко и надолго.

В ходе продумывания архитектуры более детально планируем функциональность и место каждого выбранного нами инструмента. Не сковываем себя жесткими рамками, если оказалось, что изначально выбранный нами инструмент не подходит, возвращаемся к предыдущему этапу, выбираем другой.

По мере изучения технологий я бы рекомендовал основные моменты конспектировать, для чего отлично подходит редактор для заметок Obsidian. В дальнейшем, при реализации других проектов, в которых выбудете использовать эти же инструменты и технологии, для быстрого восстановлении в памяти отдельных моментов на помощь придет ваш конспект.

Где-то в литературе или на форумах читал, что проектирование приложения, имеющего базу данных, лучше начинать с составления ее схемы. Есть специальные бесплатные программы, предназначенные для составления таких схем. Например, в клиентской программе с юзер-интерфейсом для СУБД Postgres PgAdmin есть функция построения схемы БД с последующим ее переводом в sql-код.

После планирования архитектуры приступаем к увлекательному процессу по написанию кода. Разделяем проект на небольшие подзадачи, которые будут выражены в отдельных модулях, классах или функциях, и принимаемся их решать. Не знаю, как у кого, но у меня возникает истинно дофаминовые всплески после решения таких задач. Дает мощный мотивационный заряд понимание того, что цель реализовать проект становится все ближе.

Деплой проекта

Этот этап можно назвать последним, однако, по факту последним он являться не будет, так как за ним следует самый длительный - исправление багов и внесение изменений в проект.

На данном этапе я бы посоветовал освоить технологию Docker, с помощью которой можно без лишнего напряжения запустить ваш проект на сервере.

Выбираем один из предлагаемых на рынке хостингов, который предоставляет услугу по выделению т.н. "virtual private server" (сокр. VPS), пополняем баланс и по описанным в открытом доступе алгоритмам размещаем своего телеграм-бота на сервере с помощью Docker.

Для питонистов рекомендую бесплатный крутой курс по созданию телеграм-ботов:

Мои проекты:

Начать дискуссию