От «хочу удобно» до кода: как я проектирую бота
Клиент редко приходит с готовым алгоритмом. Чаще это: «Хочу, чтобы было удобно и быстро». Моя задача — превратить это в понятную логику и код.
Мой процесс:
1. Выписываю все ветки. «Что, если пользователь нажмёт сюда? А если сюда? А если напишет ерунду?»
2. Рисую дерево состояний. Это не ради красоты: так сразу видно, где будут зацикливания и «мёртвые» ветки.
3. Разбиваю на минимальные шаги. Бот должен делать одну понятную вещь за раз: выбрать услугу → выбрать дату → подтвердить.
4. Закладываю fallback. Если бот не понял запрос, он не молчит, а вежливо переспрашивает или предлагает кнопки.
5. Пишу код и тесты. Минимум проверок: что будет, если нажать кнопки в разном порядке, если ввести дату в неверном формате и т.п.
Пример простой логики (псевдокод):
Такой подход даёт предсказуемый результат и минимум правок на этапе запуска.
Что для вас важнее в боте: скорость, понятность или надёжность? 👇
#логика #разработкаботов #MAX #псевдокод
Клиент редко приходит с готовым алгоритмом. Чаще это: «Хочу, чтобы было удобно и быстро». Моя задача — превратить это в понятную логику и код.
Мой процесс:
1. Выписываю все ветки. «Что, если пользователь нажмёт сюда? А если сюда? А если напишет ерунду?»
2. Рисую дерево состояний. Это не ради красоты: так сразу видно, где будут зацикливания и «мёртвые» ветки.
3. Разбиваю на минимальные шаги. Бот должен делать одну понятную вещь за раз: выбрать услугу → выбрать дату → подтвердить.
4. Закладываю fallback. Если бот не понял запрос, он не молчит, а вежливо переспрашивает или предлагает кнопки.
5. Пишу код и тесты. Минимум проверок: что будет, если нажать кнопки в разном порядке, если ввести дату в неверном формате и т.п.
Пример простой логики (псевдокод):
if state == "choose_service":
if user_clicks_button:
save service
state = "choose_date"
send "Выберите дату:"
else:
send fallback_messageТакой подход даёт предсказуемый результат и минимум правок на этапе запуска.
Что для вас важнее в боте: скорость, понятность или надёжность? 👇
#логика #разработкаботов #MAX #псевдокод