Что такое идемпотентность, или история Васи и его приложения

В этом необычном формате статьи мы узнаем историю разработчика Васи, и как он применял идемпотентность при создании приложения для заказа такси. Автор статьи - руководитель одной из бэкенд групп в Яндекс.Такси, который придумал историю некого Васи-стажёра, чтобы на реальных ситуациях показать, с какими сложностями можно столкнуться при разработке приложений, и как с ними справляться с помощью идемпотентности.
Из статьи узнаем:
- Что такое идемпотентность?
- Как применять идемпотентность?
- Что такое ключ идемпотентности (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

  • @StefanEtre
    @StefanEtre3 жыл бұрын

    Очень интересно) спасибо, что делаете такие видео. Особенно мне нравится ваше визуальное оформление)🔥

  • @ListenIT_channel

    @ListenIT_channel

    3 жыл бұрын

    Спасибо, приятно слышать, рады что нравится :) Стилистика из старой пиксельной игры Поле Чудес никогда не устаревает) 💪👾

  • @emilvafin436
    @emilvafin436 Жыл бұрын

    Пример очень хороший. Мне как новичку стало гораздо понятнее что это и с чем едят 🔥

  • @user-lg2ks6rv9m
    @user-lg2ks6rv9m2 жыл бұрын

    На удивление мало просмотров для довольно качественного ролика с полезным материалом

  • @ListenIT_channel

    @ListenIT_channel

    2 жыл бұрын

    Спасибо! Всё постепенно :)

  • @DeMMIs
    @DeMMIs3 жыл бұрын

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

  • @ListenIT_channel

    @ListenIT_channel

    3 жыл бұрын

    Спасибо, что слушаете нас :) В принципе, все иллюстрации и примеры вызовов, которые есть в текстовой версии, мы добавили в презентацию, но идея понятна - будем учитывать 👌

  • @alonealone6368
    @alonealone6368 Жыл бұрын

    Просто огонь! Больше такого !!!

  • @nerewan
    @nerewan2 жыл бұрын

    спасибо! но при просмотре о-о-очень не хватало графического отображения того, что происходит да, канал, как видно из названия, про "послушать", но объёмные штуки немного сложно воспринимать чисто на слух (например, 8-ю главу)

  • @faststart6409
    @faststart64092 жыл бұрын

    Просто лучшенький. Спасибо больше очень доступно

  • @svetlanamazhaykina6918
    @svetlanamazhaykina6918 Жыл бұрын

    Спасибо за Ваш труд! Коммент в поддержку канала

  • @ListenIT_channel

    @ListenIT_channel

    Жыл бұрын

    Спасибо, очень приятно! Стараемся!

  • @andyanderson222
    @andyanderson22211 ай бұрын

    Шикарное объяснение!

  • @user-ut2ii3qi6x
    @user-ut2ii3qi6x Жыл бұрын

    Благодарю вас. Очень полезное видео.

  • @user-kw7vn6vd8k
    @user-kw7vn6vd8k Жыл бұрын

    Спасибо автору! Очень круто!!!

  • @user-ew2pd6fq8j
    @user-ew2pd6fq8j Жыл бұрын

    Топ, качественно!

  • @denissh5234
    @denissh5234 Жыл бұрын

    Очень круто и полезно

  • @user-xv3gn9nr9k
    @user-xv3gn9nr9k Жыл бұрын

    Спасибо!

  • @rents34
    @rents3411 ай бұрын

    Всем собесящимся в тинковъ смотреть обязательно)

  • @VitMS1
    @VitMS1 Жыл бұрын

    Очень интересная тема, хотел е на пальцах понять, но визуализации не хватает, в итоге, на слух плохо воспринимается, на половине ролика пришлось выключить - пойду другое видео искать, где есть, инфо-графика, а жаль, интересно было.

  • @ShulV
    @ShulVАй бұрын

    👍👍👍👍

  • @nikolay4362
    @nikolay43627 ай бұрын

    обязательно надо сказать про пончики и кофе

  • @indristwetrust
    @indristwetrust Жыл бұрын

    Ребят, а подкаст есть?

  • @ListenIT_channel

    @ListenIT_channel

    Жыл бұрын

    Всё планируем, но пока нет. Но круто, что кому-то это нужно в виде подкаста, буду учитывать!

  • @indristwetrust

    @indristwetrust

    Жыл бұрын

    @@ListenIT_channel такой формат просто хорошо заходит для подкаста

  • @mdayzz
    @mdayzzАй бұрын

    А есть среди зрителей этого видео такие же любители мазохизма, которые 4 часа пытались понять разницу между PUT и PATCH с точки зрения идемпотентности? (Я так и не смог осознать почему PUT идемпотентен, а PATCH нет, поэтому знающие люди, молю 🙏

  • @ListenIT_channel

    @ListenIT_channel

    Ай бұрын

    Тут дело в том, что PUT заменяет текущую версию ресурса на сервере, т. е. если несколько раз сделать один и тот же PUT, то результат не изменится, т. к. ресурс полностью заменяется той версией, которую мы присылаем в запросе PUT. А вот PATCH меняет только часть ресурса, и тут его идемпотентность сильно зависит от того, что именно мы пришлём в запросе. Т. е. в PATCH мы присылаем некую "инструкцию", что и с каким атрибутом ресурса мы хотим сделать. И если эта инструкция простая, то в целом, при нескольких повторных запросах PATCH может привести к одному результату (например, "сделай атрибут price=1000"), но ключевой момент здесь в том, что совсем необязательно, что эта "инструкция" будет простой в PATCH-запросе - она может выглядеть как "уменьши атрибут price на 50" - тогда каждый такой повторный запрос PATCH будет приводить к новому состоянию ресурса, т. к. каждый запрос будет уменьшать price на 50. Получается, PATCH может быть идемпотентным, но вообще не факт, что он будет идемпотентным - всё зависит от самого запроса.

  • @user-nr4to4mp1y
    @user-nr4to4mp1y6 ай бұрын

    К каждому кейсу б наглядную схему Ну да ладно. Все равно понятнее ничего пока нет🤷‍♂️

  • @100kgstyle9
    @100kgstyle98 ай бұрын

    В целом вторая половина видео еле еле на слух воспринимается

  • @user-ut2ii3qi6x
    @user-ut2ii3qi6x Жыл бұрын

    И сколько за все это "Вася" смог получить?

  • @dashkevi4Mike
    @dashkevi4Mike8 ай бұрын

    Статья заслуживает места в золотом пантеоне