TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #1715 980
Сегодня для донов-неначинающих делал по новой схеме набор в мою Школу, через внешний сервис (далее такие наборы будут регулярными, но сегодняшняя пасхальная цена больше не повторится).

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

И в данном случае я выбрал наиболее симпатичный сервис для создания онлайн-курсов, прежде всего по критерию удобства приёма оплаты (но что будет дальше по мере масштабирования, пока непредсказуемо :).
Ну в крайнем случае всё же сам это запилю; весь контент для внешних курсов делаю отчуждаемым, чтобы его можно было в любой момент (или параллельно) перенести на любую другую платформу (например, мою:).

На картинках -- типичный архитектурный антипаттерн. Есть платный учебный сервис, для которого задано ограничение на запись учеников -- не более N. Но процесс оплаты, реализуемый через сторонние сервисы, занимает время, поэтому если несколько человек почти одновременно начнут процесс оплаты, придётся записывать их всех, и может получиться N+M (если человек оплатил, потом ему отказывать и возвращать обратно деньги крайне некрасиво).

В данном случае ещё хорошо, что ограничение на количество занимающихся сделано плохо :) Это просто видимо тупая проверка (возможно даже, только на уровне фронтенда), показать ли человеку кнопку оплаты или нет. А так-то сервер должен блокировать случай попытки записать в группу сверх лимита (и тогда бы разгневанные пользователи устроили скандал, как в том кино: где наши деньги?? :).

=

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

Клиенту показывается не кнопка оплаты, а кнопка бронирования. Как только он жмёт на неё, сразу же место в группе на сервере бронируется на 10-15 минут, и только после этого показывается уникальный счёт на оплату.
(Тоже конечно остаются неоднозначности, если внешний платёжный шлюз будет долго молчать про факт оплаты: чел оплатил, а сервер снял бронь. Ну и?)

=

Но в массовых сервисах типа онлайн-курсов такого конечно никогда не будет. Ведь все они работают по унылой бизнес-модели "больше-больше-больше": ещё больше учеников, ещё больше денег, охватим весь мир!

Я же иду в прямо противоположном направлении 😇
  • 🔥 43
  • ❤ 13
  • 👍 9
  • 🐳 2
  • 🙏 1
More from @lambda_brain
  1. Oct 5, 2026Мнения экспертов по индустрии разработки игр в целом можете при желании найти сами на ютуб…
  2. Oct 5, 2026Просили пояснить за (M)PF геймдев ↑ Сложно сегодня придумать более сложное бизнес-направле…
  3. Oct 5, 2026. Облако драгоценностей за неделю. скоро зима (с) Приватный клуб. В жизни любого проекта н…
  4. Oct 1, 2026Ребята спрашивают, ну ок, моё скромное мнение. у вас где-нибудь можно прочитать ваше мнени…
  5. Sep 30, 2026Ладно, вот вам база, почему так трудно переучиваться с императивного/объектного стиля коди…
  6. Sep 30, 2026Ну, с Днём Рунета! Многие годы Рунет был эталонным примером свободы, а сегодня превратился…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →