Ответ
- Прототипирование – при быстрой проверке идеи или создании MVP можно пренебречь SOLID ради скорости.
- Одноразовые скрипты – если код выполняется один раз и не требует поддержки.
- Микропроекты – маленькие, изолированные задачи (например, парсинг данных).
- Узкоспециализированные оптимизации – например, критичные по производительности участки, где SOLID может добавить накладные расходы.
Пример:
// Быстрый парсинг без разделения на классы
function parseData(raw) {
return raw.split(',').map(Number).filter(Boolean);
}
Важно: SOLID — это про долгосрочную поддержку. Если код не будет масштабироваться, его можно упростить.
Ответ 18+ 🔞
Да ты посмотри, какие тут у нас академики собрались, солиды свои везде пихают! А ведь есть же, блядь, ситуации, когда на эти принципы можно забить болт, и ничего не случится. Вот смотри, когда это нормально:
-
Прототип или MVP. Ну ёпта, тебе же надо быстро проверить, летает ли идея вообще, или это просто очередная поебота. Кто тут будет архитектуру выстраивать? Слепил что-то работающее — и вперёд, показывать инвестору или заказчику. Главное — успеть впердолить, а рефакторить будем потом, если выстрелит.
-
Одноразовый скрипт. Ну вот представь: тебе надо разок вытащить данные из одного файла, переформатировать и сунуть в другой. Ты что, будешь для этого интерфейсы описывать и классы с инъекцией зависимостей городить? Да похуй! Написал десять строчек, запустил — и забыл, как страшный сон.
-
Микропроекты. Какая-нибудь мелкая задачка, вроде того же парсега данных, который живёт сам по себе и ни с кем не общается. Он как Герасим из рассказа — немой, блядь, и живёт под лестницей. Зачем ему сложности? Сделал дело — и свободен.
-
Узкие места, где нужна скорость. А вот это, сука, важный момент! Бывает такой код, где каждый микросекунд на счету. А все эти твои абстракции и полиморфные вызовы — они ж не бесплатные, блядь! Иногда надо просто взять и написать прямолинейный, немного говнокод, но быстрый как хуй с горы. Иначе овердохуища накладных расходов получишь.
Вот, смотри, пример одноразового скрипта, про который я говорил:
// Быстрый парсинг без разделения на классы
function parseData(raw) {
return raw.split(',').map(Number).filter(Boolean);
}
Видишь? Никаких тебе IParser, DataValidator и прочей пиздопроебибны. Разделил, преобразовал, отфильтровал — и в рот меня чих-пых, готово!
Но запомни, чувак, главное: SOLID — это про долгосрочную поддержку, а не про священную войну. Если ты пишешь что-то, что завтра выкинешь, или что никогда не будет расти — можно и упростить. А если проект жить будет — тогда да, надо думать головой, а не жопой, иначе потом сам от себя охуеешь, когда придётся это поддерживать.