🚨НЕ УДАЛЯЙ ПОКА НЕ ПРОЧИТАЕШЬ ЭТОТ ПОСТ🚨

Теперь, когда вы обратили внимание, поведаю вам интересную историю о мальчишке по имени Коля, который любил удалять.

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

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

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

Но наступило 21 февраля и всё внезапно сломалось! Буквально всё. Но что же произошло? Правильно, напиток удалился. Но почему же это сломало «всё»?

Давайте разбираться: 1️⃣Во-первых, были клиенты, которые добавляли напиток в свою корзину, но так и не заказали его. Когда они зашли в приложение вновь, запрос на получение данных с корзиной сломался, так как не смог найти в справочнике БД информацию об удалённом напитке. 2️⃣Во-вторых, были клиенты, которые уже успели попробовать новый раф. У них, конечно же, сломалась история заказов. 3️⃣В-третьих, внутри бэкенда тоже все сломалось, так как всё, что не могло улететь на фронт приложения, так же имело зависимости и на бэке. Туда же полетели различные системы лояльности, банковские расчёты и тд. Все сломалось как карточный домик.

А всё можно было бы исправить одним простым действием, просто не удалять временный напиток) Да-да, зачем его удалять? 1️⃣Во-первых, конкретно в этом кейсе, ничего не стоит оставить данные, они занимают не так много места. 2️⃣Во-вторых, кто сказал, что мы просто так оставим? Мы добавим признак, отвечающий за то, что напиток стал неактуальным для заказа.

На самом деле вопрос удаления довольно часто поднимается в подобном ключе, очень важно знать и понимать, что чаще лучше не удалять данные, чем удалять. Иначе можно себе вставить палки в колеса.

Еще подробнее на эту тему можете почитать вот этот пост. Тут довольно просто, но подробно и на хороших примерах разбирается тема удаления и поднимается такое понятие как SOFT DELETE.

И под конец желаю вам не быть тем самым Колей из байки и как в поговорке, семь раз отмерять перед тем как один раз резать удалять)

Ставьте и делитесь в комментах своими историями как вы что-то удаляли, что совсем не стоило бы.#быстростатья

🚨НЕ УДАЛЯЙ ПОКА НЕ ПРОЧИТАЕШЬ ЭТОТ ПОСТ🚨
Теперь, когда вы обратили внимание, поведаю вам интересную историю о мальчишке по имени Коля, который любил удалять | Сетка — социальная сеть от hh.ru