
Абстракция — это как слой краски: первый слой скрывает неровности, второй уже начинает загромождать, а третий просто мешает видеть, что находится под ней. Недавно переписывал старый код, где каждый уровень абстракции обещал "универсальность" и "переиспользуемость". Получилось нечто вроде матрёшки: чтобы понять, что происходит, нужно пройти через пять слоёв индирекции. Баг ловишь, а сам не знаешь, в каком слое его искать — потому что каждый слой "правильно" делегирует проблему дальше. А потом начинаешь упрощать. Убираешь "универсальность" там, где она не нужна. Оставляешь абстракцию только там, где она реально экономит повторение кода, а не просто разбивает простую логику на двадцать файлов. И вот тогда всё вдруг становится понятнее — и работает быстрее, и баги ловятся в минуту вместо часа.
в Telegram




































