Что такое идемпотентность, или история Васи и его приложения
HTML-код
- Опубликовано: 20 июн 2021
- В этом необычном формате статьи мы узнаем историю разработчика Васи, и как он применял идемпотентность при создании приложения для заказа такси. Автор статьи - руководитель одной из бэкенд групп в Яндекс.Такси, который придумал историю некого Васи-стажёра, чтобы на реальных ситуациях показать, с какими сложностями можно столкнуться при разработке приложений, и как с ними справляться с помощью идемпотентности.
Из статьи узнаем:
- Что такое идемпотентность?
- Как применять идемпотентность?
- Что такое ключ идемпотентности (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 з...
Очень интересно) спасибо, что делаете такие видео. Особенно мне нравится ваше визуальное оформление)🔥
Спасибо, приятно слышать, рады что нравится :)
Стилистика из старой пиксельной игры Поле Чудес никогда не устаревает) 💪👾
Пример очень хороший. Мне как новичку стало гораздо понятнее что это и с чем едят 🔥
На удивление мало просмотров для довольно качественного ролика с полезным материалом
Спасибо! Всё постепенно :)
Спасибо большое за видео и в целом за то что вы делаете:)
К таким длинным видео было бы неплохо добавить дополнительных иллюстраций примеров, так как довольно сложно одновременно визуализировать пример бага и в то же время понять что к чему и зачем(если это видео смотрит новичок по типу меня), и из-за этого хочется просто перейти к текстовой версии.
Спасибо, что слушаете нас :)
В принципе, все иллюстрации и примеры вызовов, которые есть в текстовой версии, мы добавили в презентацию, но идея понятна - будем учитывать 👌
спасибо!
но при просмотре о-о-очень не хватало графического отображения того, что происходит
да, канал, как видно из названия, про "послушать", но объёмные штуки немного сложно воспринимать чисто на слух (например, 8-ю главу)
Просто огонь! Больше такого !!!
Просто лучшенький.
Спасибо больше очень доступно
Спасибо за Ваш труд! Коммент в поддержку канала
Спасибо, очень приятно! Стараемся!
Благодарю вас. Очень полезное видео.
Шикарное объяснение!
Спасибо автору! Очень круто!!!
Топ, качественно!
Очень круто и полезно
Спасибо!
Всем собесящимся в тинковъ смотреть обязательно)
👍👍👍👍
Очень интересная тема, хотел е на пальцах понять, но визуализации не хватает, в итоге, на слух плохо воспринимается, на половине ролика пришлось выключить - пойду другое видео искать, где есть, инфо-графика, а жаль, интересно было.
обязательно надо сказать про пончики и кофе
А есть среди зрителей этого видео такие же любители мазохизма, которые 4 часа пытались понять разницу между PUT и PATCH с точки зрения идемпотентности?
(Я так и не смог осознать почему PUT идемпотентен, а PATCH нет, поэтому знающие люди, молю 🙏
Тут дело в том, что PUT заменяет текущую версию ресурса на сервере, т. е. если несколько раз сделать один и тот же PUT, то результат не изменится, т. к. ресурс полностью заменяется той версией, которую мы присылаем в запросе PUT. А вот PATCH меняет только часть ресурса, и тут его идемпотентность сильно зависит от того, что именно мы пришлём в запросе. Т. е. в PATCH мы присылаем некую "инструкцию", что и с каким атрибутом ресурса мы хотим сделать. И если эта инструкция простая, то в целом, при нескольких повторных запросах PATCH может привести к одному результату (например, "сделай атрибут price=1000"), но ключевой момент здесь в том, что совсем необязательно, что эта "инструкция" будет простой в PATCH-запросе - она может выглядеть как "уменьши атрибут price на 50" - тогда каждый такой повторный запрос PATCH будет приводить к новому состоянию ресурса, т. к. каждый запрос будет уменьшать price на 50.
Получается, PATCH может быть идемпотентным, но вообще не факт, что он будет идемпотентным - всё зависит от самого запроса.
Ребят, а подкаст есть?
Всё планируем, но пока нет. Но круто, что кому-то это нужно в виде подкаста, буду учитывать!
@@ListenIT_channel такой формат просто хорошо заходит для подкаста
К каждому кейсу б наглядную схему
Ну да ладно. Все равно понятнее ничего пока нет🤷♂️
В целом вторая половина видео еле еле на слух воспринимается
И сколько за все это "Вася" смог получить?
Статья заслуживает места в золотом пантеоне