Как Слава «взломал» FIFA и стал пачками продавать карточки с игроками за 30 минут
Привет, меня зовут Павел Стенюшин, я отвечаю за продакт-маркетинг в Albato. Мы все привыкли читать кейсы применения no-code в разрезе решения задач бизнеса. В этой статье я хочу поделиться довольно интересным опытом применения no-code технологий в обычной, повседневной жизни.
Забегая вперед, сразу скажу, совершенно неважно какой инструмент/платформа использовались конкретно в этом случае. В теории можно использовать любой, который подойдет/нравится вам. История не о конкретно нашей платформе.
Описанный ниже опыт одного из членов нашей продуктовой команды на примере показывает, как no-code технологии перестают быть частью бизнес-задач и помогают решать обычные, бытовые. Мне кажется, что это неплохой показатель статуса этих технологий на рынке.
Статья будет интересна зерокодерам, кодерам и просто поклонникам FIFA.
Привет, меня зовут Ростислав, я Product Manager в no-code платформе Albato. Изучение no-code технологий, желание беспощадно избавляться от рутины и обычная человеческая лень привели меня к довольно интересному опыту использования этих самых технологий.
Отдыхать можно по-разному. Я нет-нет да и люблю «зарубиться» на PS или PC во что-то с друзьями (и не только). Например в FIFA.Так я абстрагируюсь от повседневной кучи рабочих вопросов и задач. И в один момент лень и рутина с продажей/покупкой новых игроков заставили меня при помощи ноукод и JS-кода «назерокодить» себе решение.
Про FIFA и рутину
Любители FIFA знают, что за активности в игре становятся доступны новые паки с игроками. Иногда там оказываются дубликаты игроков или те, которыми не хочется играть. Их можно сразу продать за небольшую сумму. Или воспользоваться одним из режимов игры — веб-версией компаньона. В ней можно менеджерить свой состав — отправлять ненужных игроков в «список продаж», и выставлять на аукцион по своей цене, чтобы их купили другие игроки.
В «списке продаж» иногда накапливается по 50-100 игроков. Чтобы их продать, я должен проверить, за сколько каждого продают другие игроки и выставить по своей цене. Когда игроков набирается много, это занимает полчаса минимум.
С осени 2021 я играл время от времени по выходным, но за мои редкие игры у меня набралось около 60 паков. Я начал их открывать, там встречались дубликаты, которые я стал отправлять в список продаж. Игроков набралось максимум — 100. У меня оказался переполненный список продаж, открывать новые я тоже не мог, потому что нужно было распределить тех.
☝🏻 Я решил, что заниматься этой монотонностью — вообще не круто
Я листал и искал, по какой цене продают игрока. На первых страницах за 6500, и только на последней увидел, что кто-то продает за 5300. Мой скрипт смог бы сразу найти эти данные, и я бы автоматически выставлял игроков за 5200.
Что я сделал, чтобы быстро продавать игроков
Открыл консоль браузера и увидел, что приложение посылает запросы на любой клик, а в ответах передает ID-игроков и все лоты с ценами.
С помощью постмана я протестировал механику работы, вытащил нужные методы, понял, какие есть параметры, и решил собрать автоматизацию в конструкторе приложений Albato.
Создал связку с одним триггером и двумя действиями
На первом шаге с помощью триггера я получаю список всех игроков, которые находятся в списке продаж и не продаются (в статусе «active»).
Этот триггер запускается по каждому игроку.
На втором шаге получаю список всех лотов с ценами, которые сейчас выставлены другими людьми с этим же игроком.
С помощью JS скрипта я нахожу в этом массиве самую низкую цену и два раза прогоняю её через инструмент «Математическая операция».
Каждый раз я делаю по -100 от цены, для того чтобы выставить игрока на аукцион по более низкой стоимости. Например, если игрока продают минимум за 1500, я его выставляю по цене 1400 за «выкупить сейчас» и с минимальной ставкой 1300.
В итоге можно весь список игроков выставить на продажу за 5 минут, вместо получаса, с приятной ценой и продажи происходят почти что сразу.
При этом я не нарушаю никаких правил, потому что делаю такие же запросы в API, как и браузер, когда пользователь пользуется приложением.
⚙ С билдером можно настраивать более сложные схемы. Например, получать не список игроков, а список продаж. Настроить фильтры и получать списки товаров с определенной ценой.
Цель всей этой автоматизации — не сидеть на бирже, отслеживать цены на игроков и зарабатывать монеты, для таких задач уже придумали много ботов. Мне было важно избавится от рутины и быстро продавать игроков из списка продаж. Конструктор приложений и немного JS кода в этом здорово помогли.
Сейчас думаю над тем, как доработать авторизацию. Пока что я вытаскиваю из браузера токен и вставляю в подключение перед запуском. Но проблема в том, что он активен минут 15, а потом приходится заново копировать токен и создавать подключение.
💡 Когда найду решение, дополню статью
☝🏻 Содержание статьи является пересказом личного опыта Славы, как игрока и зерокодера, а не сотрудника Albato.
Ну тут уже JS код, целый скрипт, точно уже не no-code.
А в чём прикол так концентрироваться именно на зерокодинге? Если вы хотите эффективно автоматизировать какие-то процессы — почему не начать писать actual код ==> автоматизировать больше и свободнее.
Да, зерокодинг в определённых ситуациях тупо быстрее, чем писать что-то своё, даже на фреймворках и библиотеках. Но я не понимаю прикола гордиться тем, что вы не пишете код. P.S. к тому же пишете, на JS пару строк набрать пришлось.
Со второй частью полностью согласны. Целесообразность зависит от кейса, ресурсов, да разных факторов. надо смотреть в разрезе конкретной задачи)
Да, не то чтобы гордиться) Просто для нас что-то новое в этом кейсе)
О, а с первой? Зерокодинг ведь не даёт той гибкости и свободы в автоматизации.
Для начала, API с которыми вы взаимодействуете тоже кто-то пишет. Так что бывают задачи, где просто нет готового API и нужно своё.
Зерокодинг не умеет в базы данных, насколько я знаю. А если умеет, то там скорее всего поверхностное положить/достать/удалить (CRUD), но сложные выборки, джоины и т.д. недоступны, а без них не выйдет оптимизировать запросы, чтобы сайт/бот/whatever работал пошустрее.
Ну вот вершина айсберга например. Кажется, что если попытаться поднять на зерокодинге точную копию какого-нибудь литреса, например, то ничего не получится сразу по куче фронтов.
1) Ограничение API, которое кто-то делал это ограничение и для хардкода и для зерокода.
2) Любое API можно добавить не в паблик, а в свой ЛК в Альбато. Даже то, которое сейчас постепенно пишется. Об этом и кейс Славы кстати.
3) Есть поддержка Http запросов
4) В БД умеет уже давно. Да пока стек не велик пока, но я думаю это дело времени.
Но я повторюсь. Что нет одного решения на любой кейс. И зерокод не панацея. Нужно смотреть в контексте условий и задачи. Хардкод и Зерокод = Дружба)
1 — нет, потому что в обычном кодинге можно написать своё, в зерокодинге — нет.
2 — не понял при чём тут это, я с этим не спорю.
3 — тут вообще вопросов не имею, это понятно
4 — опять же, умеет, но я же описал границы, за которые выйти вроде не получится.
Но да, я и не говорю о том, что нет одного решения на любой кейс. Сам ещё в первом комментарии подчеркнул, что в некоторых ситуациях зерокодинг действительно выигрышнее.
Мне именно было интересно узнать границы применимости зерокодинга, неужто если условно все программисты в мире вдруг вымрут и новых мы не получим, то получится на зерокодинге воссоздавать приложения аналогичной сложности, что и литрес, например. Или с нагрузкой как у Яндекса.
Просто я сказал, что обычный кодинг даёт больше гибкости и свободы, а вы вроде как с этим не согласны. Пришлось приводить аргументы в пользу своей точки зрения, чтобы не играть в верю-не верю, а задать вопрос предметно.
"неужто если условно все программисты в мире вдруг вымрут"
Интересное утверждение) Проверять мы его конечно не будем)
Завтра на главной VC: "EA подаёт в суд на Славу из Albato"
Все легально. Инфа сотка )
💪🏻 крутой кейс!
Согласен, Слава нас тоже удивил)
Очень прикольно. Говорю как заядлый игрок в ФИФА с 2008 года. Не будет ли бороться игра с такими легальными хаками?
Ну по факту, это открытые методы, которые лежат в публичном доступе и доступны каждому.
Ну и финансовых потерь EA не получает. Но тут уже от политики партии зависит)
Стоп погодите это реально ?
Сами в шоке)
А что больше всего удивило?)
Ребят, вы крутые :)
Спасибо!
Прикольное решение!
Очень облегчает жизнь
наконец-то Славу постигла слава:) автоматизация бомба!
Статья про то как человек со знаниями минимум mid front-end developer заменил и серверную часть своего решения no-code компонентом.
Почему вы сделали такой вывод?)
* Владение языком JS как минимум на среднем уровне. Использование методов по типу map и оператор spread(...).
* Понимание сервисной архитектуры и работа с REST сервисами с использованием инструментов по типу Postman а так же более продвинутых их аспектов как авторизация(тот самый токен)
* Так же способность воссоздать правильные запросы методом реверсивной инженерии.
И можно ещё найти.
Я много раз слышал рекламу про ваш ресурс и методы разработки no-code в целом. Мне стало интересно на сколько же реально создавать рабочие приложения не владея кодом и не быть при этом "разработчиком" или программистом в простонародье. Умение писать код это лишь маленькая часть из того чем занимается разработчик. Когда он решает проблему написанием кода, то оперирует довольно большим объемом знаний в той или иной сфере. Например, открыв консоль в браузере вы знали что происходит в закладке сети (http запросы). Мне интересно обучают ли этому всему (хоть в какой-то мере) на платформе. Или же это просто собранные туториалы как пользоваться тем или иным инструментом.
Я думаю все вместе)
Согласен, от части. Но и главная мысль в другом. В том, что если обычно кейсы применения ограничивались больше бизнес-задачами. То тут в целом больше про личный комфорт и взаимодействие с b2с приложением.