Сегодня для донов-неначинающих делал по новой схеме набор в мою Школу, через внешний сервис (далее такие наборы будут регулярными, но сегодняшняя пасхальная цена больше не повторится).
За 40+ лет работы программистом ни разу не припомню случая, чтобы какой-нибудь "прикладной" фреймворк предлагал сервис лучше, чем если бы всё делать самому, особенно если речь идёт о достаточно узкой нише.
И в данном случае я выбрал наиболее симпатичный сервис для создания онлайн-курсов, прежде всего по критерию удобства приёма оплаты (но что будет дальше по мере масштабирования, пока непредсказуемо :).
Ну в крайнем случае всё же сам это запилю; весь контент для внешних курсов делаю отчуждаемым, чтобы его можно было в любой момент (или параллельно) перенести на любую другую платформу (например, мою:).
На картинках -- типичный архитектурный антипаттерн. Есть платный учебный сервис, для которого задано ограничение на запись учеников -- не более N. Но процесс оплаты, реализуемый через сторонние сервисы, занимает время, поэтому если несколько человек почти одновременно начнут процесс оплаты, придётся записывать их всех, и может получиться N+M (если человек оплатил, потом ему отказывать и возвращать обратно деньги крайне некрасиво).
В данном случае ещё хорошо, что ограничение на количество занимающихся сделано плохо :) Это просто видимо тупая проверка (возможно даже, только на уровне фронтенда), показать ли человеку кнопку оплаты или нет. А так-то сервер должен блокировать случай попытки записать в группу сверх лимита (и тогда бы разгневанные пользователи устроили скандал, как в том кино: где наши деньги?? :).
=
Как правильно, собственно, в серьёзных системах известно давно. Недавно например думал примерно об аналогичном, когда покупал билеты на Сапсан Москва-Питер, где хорошие места заканчиваются прямо чуть ли не в реальном времени.
Клиенту показывается не кнопка оплаты, а кнопка бронирования. Как только он жмёт на неё, сразу же место в группе на сервере бронируется на 10-15 минут, и только после этого показывается уникальный счёт на оплату.
(Тоже конечно остаются неоднозначности, если внешний платёжный шлюз будет долго молчать про факт оплаты: чел оплатил, а сервер снял бронь. Ну и?)
=
Но в массовых сервисах типа онлайн-курсов такого конечно никогда не будет. Ведь все они работают по унылой бизнес-модели "больше-больше-больше": ещё больше учеников, ещё больше денег, охватим весь мир!
Я же иду в прямо противоположном направлении 😇
Post #1715
980


- 🔥 43
- ❤ 13
- 👍 9
- 🐳 2
- 🙏 1