Несмотря на то что это принцип достаточно известный и понятный, часто им пренебрегают думая что “в моей ситуации по другому нельзя”, либо просто не понимая последствий этого решения для будущей поддержки проекта.
Небольшая оговорка: рекомендую посмотреть мое выступление с докладом “ментальное программирование” где изложена эта и многие другие концепции.
Разберем конкретный пример. Исходные данные: В проекте есть CRUD для управления пользователями. Задача: вместо удаления делать soft destroy, чтобы иметь возможность восстановить пользователя.