Ты открываешь старый PHP-класс… И видишь 300 строк “универсального” кода. Код, который должен был избавить от дублирования - но теперь его боится трогать вся команда. Знакомо? И вот тут начинается самое интересное… Вот говорят: DRY (Don't Repeat Yourself) - не повторяйся. KISS (Keep It Simple, Stupid) - делай проще. Звучит как идеальный дуэт. Но есть одна проблема. Они часто конфликтуют. И если ты этого не видишь - твой код скорей всего уже страдает. Смотри сам. Ты видишь дублирование: function calculateUserDiscount($user) { return $user->isPremium() ? 0.2 : 0.1; } function calculateProductDiscount($product) { return $product->isOnSale() ? 0.2 : 0.1; } “Фу, дублирование!” - думаешь ты. И делаешь "красиво": function calculateDiscount($entity) { if ($entity instanceof User) { return $entity->isPremium() ? 0.2 : 0.1; } if ($entity instanceof Product) { return $entity->isOnSale() ? 0.2 : 0.1; } } На первый взгляд - идеально. Но нет ) Ты только что: И э