От идеи до системы

Я больше двух лет работаю FlutterFlow, Bubble и другими low-code системами. Клиенты меня находят через сарафанное радио, через портфолио и иногда как будто появляются из ниоткуда. Большая часть взаимодействия с ними происходит через телеграмм. С самого начала моей фриланс-карьеры у меня вставал вопрос об удобной программе управления всеми проектами. Перепробовал много всего: Jira, Trello, Slack, записки в блокноте и конечно экселевские таблицы. Системы приходили и уходили, неизменным оставался только телеграмм с его закрепленными сообщениями.

Телеграмм, конечно хорош много чем, но управлять в нем задачами — не самая хорошая идея. Поэтому я немного напрягся и написал свой телеграмм-бот. Он отвечает принципу «чем проще, тем лучше» и содержит много удобный функций, которые закрывают большую часть вопросов по работе с моими проектами. По сути это органайзер личных целей и задач. Я назвал его SaverAssistant. Бот уже запущен, я активно пользуюсь им и сам. При этом продолжаю его дорабатывать — что-то улучшаю, а то, что не доказало свою полезность — сношу.

Бот, написанный на джаве

Чем наделить бот, чтобы он стал помощником? Как минимум — опцией, с которой можно удобно и просто управлять рабочей перепиской. Сейчас SaverAssistant позволяет создавать задачи прямо из сообщений в чатах и сортировать их, как в Jіга или Trello — по проектам, статусу и времени. Можно сохранять важные сообщения, вести заметки по конкретному проекту и иметь к этому всему быстрый доступ. Работать с ботом в одной группе одновременно может сколько угодно пользователей.

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

Какие у меня были сложности на старте работы с ним? Самое основное — непонимание организационных вопросов. Я понятия не имел, как правильно структурировать рабочие папки, файлы, что выносить в отдельные классы или методы. Вторая проблема — плохое владение самим языком Java. Тут пришел на помощь GPT. Хотя что скрывать, я поначалу скептически относился к нейросетям: пробовал что-то у них что-то спрашивать по разработке Dart, но не получал понятных и полезных мне ответов.

Перекличка с нейросеткой

В случае с ботом решил пойти другим путем и начал поэтапно задавать нейросети интересующие меня вопросы (я пользовался GPT 3.5):

  • Как устроены телеграм боты?
  • Как написать Hello World телеграм бота на Java?
  • Как организовать свой java проект, какие существуют правила структуризации классов и методов?
  • Как подключить Firebase Admin SDK на java?
  • Как подключить Telegram Bot Api на java?

В итоге у меня получилась гигантская переписка с GPT, которая не прекратилась, пока я не получил нужных ответов. Освоить язык оказалось просто: берешь код, который собрал нам GPT (например, бот, который выводит Hello World) и вместо того, чтобы копировать его — переписываем вручную. По подсказкам в среде разработки вы быстро выучите методы и структуру любого кода. Перепишите так 2-3 программы и начнете более-менее понимать что вообще в этом коде написано.

Очень много времени у меня заняла работа с Telegram Bot Api. Это библиотека, которая отвечает за работу бота. Оказалось, что для Java нет официальной библиотеки, пришлось искать ее на стороне. Потом выяснилось, что бот не умеет читать реакции, которые проставляют пользователи на сообщения и т.д. Из-за этого пришлось сильно «фиксить» функционал бота и менять методы сохранения сообщений.

Технологическая карта

Вдруг вы попросите меня дать технологическую карту проекта: я просто перечислю по пунктам, хорошо?

Итак

  1. Язык: Java
  2. Фреймворк: Spring Boot
  3. Основные библиотеки: Telegram Bot Api, Firebase Admin SDK
  4. Сервер арендовал отдельно на Beget
  5. На сервер сборку заливал с помощью Docker
  6. Храню код на Github, докер изображения на DockerHub
  7. Сборку докер изображений делал с помощью Github и GPT

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

Разработческий бэкграунд: от ноукода к Java

Я не учился на курсах «Зерокодера», но брал заказы из чата вакансий университета, и на самом деле это сильно помогло мне стартануть в разработке. И у меня есть мысль о том, какой курс на данный момент кажется наиболее полезным и актуальным: это промт-инжиниринг. Нейросети сильно помогают мне в работе, но моя основная проблема — это маленький скилл написания промтов для них. Особенно для Midjourney, так как он не запоминает контекст переписки, в отличии от GPT.

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

В остальном проблем с навыками у меня нет. Когда однажды случился неудачный опыт работы со студией разработки, я освоил все инструменты сам. Случайно увидел рекламу «Зерокодера» в запрещенной сети, заинтересовался, начал пробовать осваивать Glide, потом Adalo. Но все они казались мне не совершенными.

В итоге я пришел к Bubble. С него начал получать коммерческие заказы — заработал денег и сколотил небольшое портфолио. Потом дорос и до FlutterFlow. По-моему, это лучший low-code инструмент для создания мобильных приложений. С ним же можно делать кроссплатформенные приложения — это дополнительный плюс в пользу выбора.

За 2 года работы на FlutterFlow, я собрал более 12 приложений. Поэтому приступая к работе с Java, я имел хороший уровень написания функций, экшенов и виджетов на Флаттере. И хоть я не имел опыта разработки полноценных сервисов, да еще и на java (пару раз видел, как друг пишет код), все же решил запустить свой SaverAssistant, который меня пока не подводит.

Связаться с Владиславом:

https://vladislav-nikolaev.webflow.io/

https://t.me/saverAssistant_bot