{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Как Слава «взломал» 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.

0
25 комментариев
Написать комментарий...
A.I.S. Fortis

Ну тут уже JS код, целый скрипт, точно уже не no-code.

Ответить
Развернуть ветку
Илья Осипов

А в чём прикол так концентрироваться именно на зерокодинге? Если вы хотите эффективно автоматизировать какие-то процессы — почему не начать писать actual код ==> автоматизировать больше и свободнее.

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

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Со второй частью полностью согласны. Целесообразность зависит от кейса, ресурсов, да разных факторов. надо смотреть в разрезе конкретной задачи)

Да, не то чтобы гордиться) Просто для нас что-то новое в этом кейсе)

Ответить
Развернуть ветку
Илья Осипов

О, а с первой? Зерокодинг ведь не даёт той гибкости и свободы в автоматизации.

Для начала, API с которыми вы взаимодействуете тоже кто-то пишет. Так что бывают задачи, где просто нет готового API и нужно своё.

Зерокодинг не умеет в базы данных, насколько я знаю. А если умеет, то там скорее всего поверхностное положить/достать/удалить (CRUD), но сложные выборки, джоины и т.д. недоступны, а без них не выйдет оптимизировать запросы, чтобы сайт/бот/whatever работал пошустрее.

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

Ответить
Развернуть ветку
Павел Стенюшин
Автор

1) Ограничение API, которое кто-то делал это ограничение и для хардкода и для зерокода.
2) Любое API можно добавить не в паблик, а в свой ЛК в Альбато. Даже то, которое сейчас постепенно пишется. Об этом и кейс Славы кстати.
3) Есть поддержка Http запросов
4) В БД умеет уже давно. Да пока стек не велик пока, но я думаю это дело времени.

Но я повторюсь. Что нет одного решения на любой кейс. И зерокод не панацея. Нужно смотреть в контексте условий и задачи. Хардкод и Зерокод = Дружба)

Ответить
Развернуть ветку
Илья Осипов

1 — нет, потому что в обычном кодинге можно написать своё, в зерокодинге — нет.
2 — не понял при чём тут это, я с этим не спорю.
3 — тут вообще вопросов не имею, это понятно
4 — опять же, умеет, но я же описал границы, за которые выйти вроде не получится.

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

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

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

Ответить
Развернуть ветку
Павел Стенюшин
Автор

"неужто если условно все программисты в мире вдруг вымрут"

Интересное утверждение) Проверять мы его конечно не будем)

Ответить
Развернуть ветку
Yakov Sychev

Завтра на главной VC: "EA подаёт в суд на Славу из Albato"

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Все легально. Инфа сотка )

Ответить
Развернуть ветку
Code Breakers

💪🏻 крутой кейс!

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Согласен, Слава нас тоже удивил)

Ответить
Развернуть ветку
Роман Нестер

Очень прикольно. Говорю как заядлый игрок в ФИФА с 2008 года. Не будет ли бороться игра с такими легальными хаками?

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Ну по факту, это открытые методы, которые лежат в публичном доступе и доступны каждому.
Ну и финансовых потерь EA не получает. Но тут уже от политики партии зависит)

Ответить
Развернуть ветку
Roberto Martinez

Стоп погодите это реально ?

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Сами в шоке)
А что больше всего удивило?)

Ответить
Развернуть ветку
Dmitry Kudrya

Ребят, вы крутые :)

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Спасибо!

Ответить
Развернуть ветку
Ярослав Ярославский

Прикольное решение!
Очень облегчает жизнь

Ответить
Развернуть ветку
Leonid Goldfarb

наконец-то Славу постигла слава:) автоматизация бомба!

Ответить
Развернуть ветку
Stas Babushkin

Статья про то как человек со знаниями минимум mid front-end developer заменил и серверную часть своего решения no-code компонентом.

Ответить
Развернуть ветку
Павел Стенюшин
Автор

Почему вы сделали такой вывод?)

Ответить
Развернуть ветку
Stas Babushkin

* Владение языком JS как минимум на среднем уровне. Использование методов по типу map и оператор spread(...).
* Понимание сервисной архитектуры и работа с REST сервисами с использованием инструментов по типу Postman а так же более продвинутых их аспектов как авторизация(тот самый токен)
* Так же способность воссоздать правильные запросы методом реверсивной инженерии.
И можно ещё найти.

Я много раз слышал рекламу про ваш ресурс и методы разработки no-code в целом. Мне стало интересно на сколько же реально создавать рабочие приложения не владея кодом и не быть при этом "разработчиком" или программистом в простонародье. Умение писать код это лишь маленькая часть из того чем занимается разработчик. Когда он решает проблему написанием кода, то оперирует довольно большим объемом знаний в той или иной сфере. Например, открыв консоль в браузере вы знали что происходит в закладке сети (http запросы). Мне интересно обучают ли этому всему (хоть в какой-то мере) на платформе. Или же это просто собранные туториалы как пользоваться тем или иным инструментом.

Ответить
Развернуть ветку
Андрей Савищенко

Я думаю все вместе)

Ответить
Развернуть ветку
Павел Стенюшин
Автор

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

Ответить
Развернуть ветку
Павел Стенюшин
Автор
Ответить
Развернуть ветку
22 комментария
Раскрывать всегда