Для одного из своих проектов в школе я создал приложение для ставок на спорт, предназначенное для игроков от новичка до эксперта. Идея приложения заключается в том, что это место, где люди могут делать ставки на спорт, не рискуя своими деньгами, по сути, это песочница для спортивных азартных игр. Я сделал приложение с интерфейсом JavaScript React и интерфейсом ruby ​​on rails. Сегодня я расскажу о том, каким был мой мыслительный процесс при его создании, о некоторых проблемах, с которыми я столкнулся во время разработки, и о вещах, которые я бы изменил, если бы снова создавал приложение.

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

Далее, некоторые проблемы, с которыми я столкнулся во время написания кода, касались API и условий для определения выигрыша или проигрыша ставки. С API, которые я пытался использовать, было невероятно сложно работать. Конечно, я не использовал платный API, поэтому я уверен, что если бы я заплатил за него, он бы работал нормально. Проблема заключалась в том, что в API не было всех основных видов спорта, и мне разрешалось делать только определенное количество ежемесячных коммитов. Ежемесячный лимит фиксации является проблемой, потому что он позволяет мне запускать мой код только определенное количество раз, прежде чем достигнет предела выборки. Как только это произойдет, я больше не смогу извлекать данные из API. Другая проблема заключалась в том, что в американских спортивных лигах были только Высшая лига бейсбола и Национальная баскетбольная ассоциация. Я столкнулся с решением, что я могу либо получить половину матчей из API и ограничиться тестированием кода, либо я могу вручную ввести матчи для каждого вида спорта, что даст мне полный контроль и возможность тестирования.

Другой проблемой, с которой я столкнулся, были условия для определения выигранной или проигранной ставки. Как вы можете видеть на картинке выше, есть приличное количество условий, которые код должен выполнить, прежде чем определить статус ставки. Поначалу это казалось довольно простым: пользователь делает ставку на то, что команда А выиграет с разницей в x ранов, код проверит окончательный счет игры и определит, выиграла ли команда A больше, чем x ранов, и если да, то ставка является победитель. Однако я не учел, что условия также должны включать все остальные типы ставок. Из-за отсутствия других типов ставок, включенных в условия статуса, статус ставки никогда не обновится, если вы сделаете ставку на что-либо, что не является спредом очков. Чтобы исправить это, мне нужно было, чтобы условные предложения выполнялись через каждый тип ставок, и если этот тип ставки не был найден, он переходил к следующему условному, в конечном итоге определяя, была ли ставка выиграна или проиграна.

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

Это приложение было моим любимым для работы, и, очевидно, задним числом 20/20, когда дело доходит до вещей, которые я мог бы сделать по-другому. Единственное, что я действительно хотел заставить работать, — это матчи в реальном времени через платный API, поэтому, возможно, в будущем, когда у меня будут деньги, я смогу вернуться к этой возможности. Я надеюсь, что этот блог дал вам некоторую мотивацию, чтобы найти что-то, над чем можно поработать, что сделает вас счастливым, и действительно не торопитесь, планируя проект, прежде чем вы начнете собирать его по частям.