Что такое идемпотентность, или история Васи и его приложения
В этом необычном формате статьи мы узнаем историю разработчика Васи, и как он применял идемпотентность при создании приложения для заказа такси. Автор статьи - руководитель одной из бэкенд групп в Яндекс.Такси, который придумал историю некого Васи-стажёра, чтобы на реальных ситуациях показать, с какими сложностями можно столкнуться при разработке приложений, и как с ними справляться с помощью идемпотентности.
Из статьи узнаем:
- Что такое идемпотентность?
- Как применять идемпотентность?
- Что такое ключ идемпотентности (idempotency key)?
- Какие методы идемпотентны, а какие нет?
- Когда нужно применять идемпотентность?
- Какие запросы должны быть идемпотентны?
- Использование идемпотентности на реальном примере.
Listen IT на Я.Дзене - zen.yandex.ru/listenit
Поддержать канал разово - yoomoney.ru/to/410012243709514
Поддержать канал подпиской - boosty.to/listenit
Телеграм-канал - t.me/listenit_channel
По вопросам сотрудничества - t.me/ed_akimov
Ссылка на статью - habr.com/ru/company/yandex/bl...
Различия REST и SOAP за 4 минуты - • Различия REST и SOAP з...
Введение в REST API за 7 минут - • Введение в REST API за...
Что такое Swagger и OpenAPI за 3 минуты - • Что такое Swagger и Op...
Что такое middleware за 7 минут - • Что такое middleware з...
Различия SOA и микросервисной архитектуры за 9 минут - • Различия SOA и микросе...
Что такое HATEOAS за 4 минуты - • Что такое HATEOAS за 4...
Что такое Code First подход за 4 минуты - • Что такое Code First п...
Что такое Contract First подход за 4 минуты - • Что такое Contract Fir...
Что такое CI/CD - • Что такое CI/CD? Разби...
Что такое Docker за 5 минут - • Что такое Docker за 5 ...
Что такое Kubernetes за 9 минут - • Что такое Kubernetes з...
Пікірлер: 32
Очень интересно) спасибо, что делаете такие видео. Особенно мне нравится ваше визуальное оформление)🔥
@ListenIT_channel
3 жыл бұрын
Спасибо, приятно слышать, рады что нравится :) Стилистика из старой пиксельной игры Поле Чудес никогда не устаревает) 💪👾
Пример очень хороший. Мне как новичку стало гораздо понятнее что это и с чем едят 🔥
На удивление мало просмотров для довольно качественного ролика с полезным материалом
@ListenIT_channel
2 жыл бұрын
Спасибо! Всё постепенно :)
Спасибо большое за видео и в целом за то что вы делаете:) К таким длинным видео было бы неплохо добавить дополнительных иллюстраций примеров, так как довольно сложно одновременно визуализировать пример бага и в то же время понять что к чему и зачем(если это видео смотрит новичок по типу меня), и из-за этого хочется просто перейти к текстовой версии.
@ListenIT_channel
3 жыл бұрын
Спасибо, что слушаете нас :) В принципе, все иллюстрации и примеры вызовов, которые есть в текстовой версии, мы добавили в презентацию, но идея понятна - будем учитывать 👌
Просто огонь! Больше такого !!!
спасибо! но при просмотре о-о-очень не хватало графического отображения того, что происходит да, канал, как видно из названия, про "послушать", но объёмные штуки немного сложно воспринимать чисто на слух (например, 8-ю главу)
Просто лучшенький. Спасибо больше очень доступно
Спасибо за Ваш труд! Коммент в поддержку канала
@ListenIT_channel
Жыл бұрын
Спасибо, очень приятно! Стараемся!
Шикарное объяснение!
Благодарю вас. Очень полезное видео.
Спасибо автору! Очень круто!!!
Топ, качественно!
Очень круто и полезно
Спасибо!
Всем собесящимся в тинковъ смотреть обязательно)
Очень интересная тема, хотел е на пальцах понять, но визуализации не хватает, в итоге, на слух плохо воспринимается, на половине ролика пришлось выключить - пойду другое видео искать, где есть, инфо-графика, а жаль, интересно было.
👍👍👍👍
обязательно надо сказать про пончики и кофе
Ребят, а подкаст есть?
@ListenIT_channel
Жыл бұрын
Всё планируем, но пока нет. Но круто, что кому-то это нужно в виде подкаста, буду учитывать!
@indristwetrust
Жыл бұрын
@@ListenIT_channel такой формат просто хорошо заходит для подкаста
А есть среди зрителей этого видео такие же любители мазохизма, которые 4 часа пытались понять разницу между PUT и PATCH с точки зрения идемпотентности? (Я так и не смог осознать почему PUT идемпотентен, а PATCH нет, поэтому знающие люди, молю 🙏
@ListenIT_channel
Ай бұрын
Тут дело в том, что PUT заменяет текущую версию ресурса на сервере, т. е. если несколько раз сделать один и тот же PUT, то результат не изменится, т. к. ресурс полностью заменяется той версией, которую мы присылаем в запросе PUT. А вот PATCH меняет только часть ресурса, и тут его идемпотентность сильно зависит от того, что именно мы пришлём в запросе. Т. е. в PATCH мы присылаем некую "инструкцию", что и с каким атрибутом ресурса мы хотим сделать. И если эта инструкция простая, то в целом, при нескольких повторных запросах PATCH может привести к одному результату (например, "сделай атрибут price=1000"), но ключевой момент здесь в том, что совсем необязательно, что эта "инструкция" будет простой в PATCH-запросе - она может выглядеть как "уменьши атрибут price на 50" - тогда каждый такой повторный запрос PATCH будет приводить к новому состоянию ресурса, т. к. каждый запрос будет уменьшать price на 50. Получается, PATCH может быть идемпотентным, но вообще не факт, что он будет идемпотентным - всё зависит от самого запроса.
К каждому кейсу б наглядную схему Ну да ладно. Все равно понятнее ничего пока нет🤷♂️
В целом вторая половина видео еле еле на слух воспринимается
И сколько за все это "Вася" смог получить?
Статья заслуживает места в золотом пантеоне