Проверка понимания
Цель этих задач - не угадать название принципа, а объяснить цену выбранного решения. Сначала сформулируйте ответ сами, потом сверьтесь с разбором.
Задача 1. В двух формах есть одинаковая проверка телефона. Формы принадлежат разным продуктам, но формат телефона задаётся единым правилом компании. Стоит ли убрать повторение? - Да, здесь повторяется знание: если формат изменится, обе формы обязаны измениться вместе. Вынесите правило в один валидатор - это осмысленный DRY.
Задача 2. Нужно сохранить аватар локально. Есть предположение, что через год появится облачное хранилище. Нужны ли интерфейс Storage, фабрика и три адаптера уже сейчас? - Обычно нет. Изолируйте запись в одной понятной функции или модуле: это оставляет место для замены, но не создаёт несуществующие реализации. Здесь работают KISS и YAGNI.
Задача 3. Функция регистрации создаёт пользователя, отправляет письмо, пишет аудит и форматирует HTTP-ответ. Какую часть отделять первой? - Сначала отделите бизнес-сценарий от транспорта: HTTP-ответ не относится к регистрации. Затем вынесите внешние эффекты за небольшие договоры. Разделение определяется причинами изменения, а не количеством строк.
Правильных ответов может быть несколько. Важно не название принципа, а способность назвать, какой риск уменьшает выбранное решение и какой ценой. Именно это и отличает применение принципа от его цитирования.
Осталось подвести итог - и назвать первоисточники, на которые опираются эти шесть принципов.