Разработка
January 29

Бесконечность — это нехорошо

Если где-то у вас в продукте звучат слова бесконечный / безлимитный / навсегда / неограниченно: посмотрите, всё ли там в порядке.


Исключительно как тревожный звоночек. Когда что-то заявляется как «бесконечное» и ничем не лимитированное, есть очень большой шанс, что именно здесь накосячат (или уже накосячили) с оценками, бизнес-моделью, продуктом и техническими решениями.

Лучше пойти и поизучать.

Бесконечность — это умозрительный концепт. Человек, средний обычный, плохо ее понимает. Чаще всего «анлим» и «навсегда» воспринимаются как синонимы слов «ну там настолько много, что прямо дохера, и мы не знаем как считать».

Камон, большинство людей даже не могут сказать достоверно, что будет с их жизнью через 5 лет (всего 1900 дней). А вы тут про бесконечность какую-то.

Проблемы по итогу запросто вырисовывается минимум две.


Техническая проблема. Связанная со сходимостью системы, как математического концепта.

  • Вы не можете хранить бесконечное количество данных.
  • Вы не можете их обрабатывать на бесконечную глубину.
  • Вы не можете поддержать бесконечное множество клиентов (окей, 8 млрд людей, но всё же).
  • Вы не можете решать бесконечное множество задач, даже однотипных.
  • Вы не можете поддержать неограниченные запросы (или просто очень большие).

Вы не можете бесконечно расти, в конце концов. И не можете заработать бесконечных денег. Бесконечного рынка тоже не бывает.

Таким образом, отсутствие заданных ограничений (даже очень больших) в какой-то части технического решения — по сути, означает «пока оно не загнётся нафиг». Что довольно вялое решение, не очень предсказуемое. С такими решениями — загнётся раньше запланированного.

Еще всю «бесконечность» можно запросто абузить (от слова abuse). И неприятные последствия такого необдуманного планирования вылезут, опять же, гораздо раньше.

Был занятный пример в 2010х, когда государство-РФ придумало очередную систему «куда надо слать всё-всё». А один из топовых игроков рынка на это наглядно ответил, что даже если они завернут 1% своего трафика туда, то это уже примерно в 100 раз больше запланированного гос.системой capacity.

Неловко вышло. Размерность бесконечностей подвела.

* про сходимость систем надо бы отдельно написать.


Бизнесовая проблема. Бесконечный — значит, ничем не ограниченный.

Если кто-то в здравом уме собирается за конечные деньги предоставлять бесконечный и ничем не ограниченный клиентский сервис — то у меня, и у калькулятора для вас плохие новости: доходы ограничены, расходы нет. Эта арифметика не сойдется, причем «не сойдется» не в вашу пользу.

Вы не можете быть «всем для всех», и при этом нравиться каждому — даже если вы зелененький хрустящий, и на вас портрет президента.

Неограниченность выйдет вам боком где угодно. Просто возможно, вы об этом еще не подумали — значит, надо подумать.

Занятно упомянуть, что обычно законодательство разных стран явно ограничивает безлимитные и бесконечные контракты и соглашения. Даже в персональных правах (обычно сколько-то лет после даты смерти первичного владельца). Так что в клинических случаях есть внешние ограничения; не факт, что вам от этого легче. В обратную сторону, вы тоже не можете вогнать клиента в бесконечные долги, обычно для этого есть fair use.


Конкретно прям на примерах.

  • «вечные» тарифные планы. А вечные это сколько? Вряд ли ваши потомки до седьмого колена все еще будут вести ваш бизнес: значит, налицо или подвох, или враньё.
  • бесконечные лимиты. Ну окей, а если я их исчерпаю — чисто технически и экономически что должно произойти, кто за это крайний?
  • бесконечные подписки. Даже если речь про деньги (что неплохо), мы все знаем, как заканчивают свою жизнь тарифные планы, которые почему-то стали невыгодными одной из сторон. Кидаловом и переобувкой они заканчиваются.
  • вечное хранение данных. Даже если технически запас «очень велик», попробуйте в даже интернетах, которые типа «всё помнят» и безлимитные, найти достоверные материалы 10-15 летней давности. Их нет, они просто продолбаны по любой из возможных причин.
  • ничем не ограниченная поддержка. Саппорт вообще дорогой, а если заявлен как безлимитный — запросто можно довести до точки отказа. Где выяснится что а) дорого и геморно б) надо переобуваться в полете, а это некрасиво.

Чисто технически в этих и подобных случаях, реальность к вам придет (в виде ржавеющей нержавейки) сильно быстрее запланированного, и окажется, что: фантазии у вас может и безграничные, а вот возможности нет.
Просто оно всегда случается невовремя.


Если затрудняетесь сказать относительно времени, «бесконечно долго — это сколько?», то выберите какую-то запланированную дату в будущем. Для всего. И танцуйте от нее.

Возьмите, я не знаю, 12 июня 2070 года как максимальную дату в системе ever (это дата, когда в Cyberpunk2077 закончилась гражданская война).

Раньше было принято брать 19 января 2038 00:00, потому что это практически конец диапазона 4х-байтного timestamp, но это настанет всего через 10 лет, и как-то уже не смешно.

Относительно денег и затрат лучше тоже предусмотреть killswitch, где-то в юридических документах обычно. Что делать, когда безлимитность становится проблемой, и что дальше должно происходить. Будет чем прикрыться, в случае чего — особенно, если этот ваш (обоснованный) проёб кто-то начинает хотеть использовать вам во вред.


Хуже «бесконечного» — только «бесплатное».
Но там вообще отдельный фейерверк.