Айтиха на самом деле очень маленькая
Тяжелые рабочие будни хочется разбавить забавной историей про то, как твой код может внезапно догнать тебя.
3 года назад я работал в «Банки.ру». Один из лучших опытов: крутая команда, крутые технические решения - до сих пор вспоминаю с теплом на душе. Много раз рассказывал об этом в постах и видосах, поэтому не буду останавливаться надолго. Ребята, если вы это читаете, передаю привет и спасибо вам.
Одной из последних задач, которые я решал, была разработка API-контракта для приёма статусов по заявкам. Если не вдаваться в дебри, то взаимодействие с партнёрами происходило через polling, когда ты опрашиваешь принимающую сторону, чтобы понять статус выдачи. А затем мы реализовали callback - то есть принимающая сторона сама возвращает статус, когда он изменяется. Polling работал, но создавал лишнюю нагрузку и задержки. Callback выглядел очевидным решением, но сразу встал вопрос: как сделать контракт, который не развалится от 10 разных партнёров.
Цель - создать универсальный контракт, который будут использовать все желающие партнёры. То есть не перегрузить его, при этом не упустить ничего важного. Я сразу же выкинул все поля, без которых можно жить. Не пытался предугадать будущее, то есть закладывать возможности, которые могут никогда не понадобиться. Правильно ли это? Вопрос спорный, ведь если очень сильно упростить, то придётся постоянно допиливать. А если сделать супер универсально, то поддержка франкенштейна пойдёт через боль.
Проходит 3 года, я меняю несколько работодателей и попадаю к текущему. Узнаю, что одной из последних задач в том году была интеграция с банками. Ради интереса залезаю посмотреть, как там всё работает. И каково же было моё удивление, когда в методе отправки статуса по заявке я увидел тот самый URL, который спроектировал в то время! А в качестве ответственных лиц со стороны банков были коллеги из моей команды.
Недолго думая пишу одному в телегу - и да, спроектированный мной сервис всё ещё работает! Правда, его уже миллион раз усложнили, и по факту от «моего» там осталось только название, но сам факт. И это, кстати, нормально, ведь ни один контракт не создаётся на века. Появляются новые задачи, которые нужно закрывать, а с ними - и дополнительная логика.
Необычное чувство, когда видишь результат своей работы с другой стороны. И понимаешь, что айтиха-то на самом деле крошечная. А твои решения могут нагнать тебя спустя столько лет.
Post #452
4.88K
- ❤ 64
- 🔥 33
- 🐳 3
- 🍌 1