Заголовок:
Код повторяется, а я не понимаю, как это убрать
Текст:
Ребята, то же самое ловлю - код повторяется, немного меняю, а потом снова добавляю почти копию, потому что так быстрее, чем заморачиваться с обобщением. Пробовал через функции и классы выносить, но потом всё равно дублируется, особенно когда задачи немного отличаются и кажется, что слишком заморачиваешься на параметры или интерфейсы. Недавно с проектом на Python сидел, пытался убрать копипасту между обработчиками разных API - вынес общие части в базовый класс и пару утилит, но после этого код стал слишком разрозненным, и отладка превратилась в квест. В итоге что-то пришлось временно заюзать дубли, чтобы не впасть в вечные рефакторы.
Еще гнался за идеей DRY, пытаясь сделать универсальные абстракции на JS для фронта с кучей похожих компонентов, но слишком сильно обобщил - и теперь, чтобы изменить одну мелочь, приходится рыться в трех файлах. Чистый код - понятно, но есть ощущение, что иногда проще пожертвовать сувенирной чистотой ради удобства поддержки. Вроде никто не запрещает подготавливать шаблоны или миксины с небольшими повторами, если это снижает общий когнитивный шум.
В общем, с одной стороны хочется понятную, не дублирующуюся кодовую базу, с другой - боюсь, что при попытке сделать всё слишком “круто и гибко” у меня только головная боль. Короче, баланс - моя главная проблема, а не философия.