Pomavin — “Под цвет золота”

Цель: надёжная и защищённая панель управления онлайн покер-румами

Задачи:

  • Сжатые сроки: 4 дня на завершение
  • Вычисление прибыли с историческими данными
  • Отслеживание шагов в журнале событий

Технологии:

Чип и ривер

Зелёное сукно. Блестящие фишки. Приглушённые голоса. Золотой орнамент. Запах тяжёлых сигар. Запах пороха.

Это — покер. Больше или меньше, в зависимости от уровня и обстоятельств, но это — покер. Это то, что я попытался отразить на своём дизайне — и, честно говоря, должен признать, что это лучший дизайн, который я нарисовал за последний год. В нём видно звёзды.

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

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

Кто стукнул дилера?

Задача Pomavin объясняется его именем: Poker Mavens Admin [panel]. Poker Mavens — сервер онлайн покер-румов для Windows от фирмы Briggs Softworks. Он позволяет играть в покер с любого мобильного или настольного браузера.

Однако самое весёлое в покере — когда речь заходит о бизнесе. Как в любом настоящем казино здесь вы не играете бесплатно — во всяком случае, не должны. Есть такое понятие, как «rakeback» — доля фишек, которые вы отдаёте владельцу рума (комнаты) — то есть агенту. Скажем, если вы купили 100 фишек, а ставка агента — 30%, то при входе в систему вы увидите только 70.

Poker Mavens (сервер) поддерживает неограниченное число комнат и игроков. Поэтому в Pomavin может быть много агентов — людей, которые выдают игрокам виртуальные фишки — и все эти агенты могут иметь собственные ставки рейкбэк. Основная задача Pomavin как раз в том, чтобы считать суммы рейкбэков отдельных агентов за нужный временной интервал.

Время — деньги

Журнал событий в действии

Хотя на первый взгляд вычисление прибыли не представляет большой проблемы, в покере это не совсем так. У нас есть агенты. Они могут управлять только определёнными игроками. Когда они это делают — выдавая фишки — они получают с них свою долю. Однако игроки могут быть назначены новому агенту. И, конечно, этот агент не должен получать свою долю с игроков, которые раньше не были к нему привязаны. Аналогично, если мы вычисляем долю первого агента, то все его предыдущие игроки должны отображаться в отчёте.

Кроме того, процент рейкбэк может меняться со временем и для каждого агента в отдельности. Здесь мы тоже должны запоминать старое значение и период его действия и не использовать текущее значение, когда производится расчёт внутри этой даты.

Для решения этих задач я создал «временные таблицы» — хранилище для переменных, влияющих на отчёт. Здесь содержатся старые значения и время их действия, которые используются при составлении отчётов, что само по себе реализуется единым SQL-запросом — таким образом, даже большой набор данных обрабатывается очень быстро.

А в покере, как известно, объёмы данных растут прямо пропорционально вашим собственным доходам!