Какие знаешь случаи когда программисту не нужно использовать принципы SOLID

Ответ

  1. Прототипирование – при быстрой проверке идеи или создании MVP можно пренебречь SOLID ради скорости.
  2. Одноразовые скрипты – если код выполняется один раз и не требует поддержки.
  3. Микропроекты – маленькие, изолированные задачи (например, парсинг данных).
  4. Узкоспециализированные оптимизации – например, критичные по производительности участки, где SOLID может добавить накладные расходы.

Пример:

// Быстрый парсинг без разделения на классы
function parseData(raw) {
  return raw.split(',').map(Number).filter(Boolean);
}

Важно: SOLID — это про долгосрочную поддержку. Если код не будет масштабироваться, его можно упростить.

Ответ 18+ 🔞

Да ты посмотри, какие тут у нас академики собрались, солиды свои везде пихают! А ведь есть же, блядь, ситуации, когда на эти принципы можно забить болт, и ничего не случится. Вот смотри, когда это нормально:

  1. Прототип или MVP. Ну ёпта, тебе же надо быстро проверить, летает ли идея вообще, или это просто очередная поебота. Кто тут будет архитектуру выстраивать? Слепил что-то работающее — и вперёд, показывать инвестору или заказчику. Главное — успеть впердолить, а рефакторить будем потом, если выстрелит.

  2. Одноразовый скрипт. Ну вот представь: тебе надо разок вытащить данные из одного файла, переформатировать и сунуть в другой. Ты что, будешь для этого интерфейсы описывать и классы с инъекцией зависимостей городить? Да похуй! Написал десять строчек, запустил — и забыл, как страшный сон.

  3. Микропроекты. Какая-нибудь мелкая задачка, вроде того же парсега данных, который живёт сам по себе и ни с кем не общается. Он как Герасим из рассказа — немой, блядь, и живёт под лестницей. Зачем ему сложности? Сделал дело — и свободен.

  4. Узкие места, где нужна скорость. А вот это, сука, важный момент! Бывает такой код, где каждый микросекунд на счету. А все эти твои абстракции и полиморфные вызовы — они ж не бесплатные, блядь! Иногда надо просто взять и написать прямолинейный, немного говнокод, но быстрый как хуй с горы. Иначе овердохуища накладных расходов получишь.

Вот, смотри, пример одноразового скрипта, про который я говорил:

// Быстрый парсинг без разделения на классы
function parseData(raw) {
  return raw.split(',').map(Number).filter(Boolean);
}

Видишь? Никаких тебе IParser, DataValidator и прочей пиздопроебибны. Разделил, преобразовал, отфильтровал — и в рот меня чих-пых, готово!

Но запомни, чувак, главное: SOLID — это про долгосрочную поддержку, а не про священную войну. Если ты пишешь что-то, что завтра выкинешь, или что никогда не будет расти — можно и упростить. А если проект жить будет — тогда да, надо думать головой, а не жопой, иначе потом сам от себя охуеешь, когда придётся это поддерживать.