DRY — это хорошо, но не всегда!
Каждому из нас вбивали в голову: Don’t Repeat Yourself!
Мол, дублирование — зло, и весь код нужно обязательно переиспользовать.
Идея правильная. Но как и любая идея в разработке, она работает не всегда.
В одном проекте мы делали универсальный компонент попапа.
Хотели, чтобы он подходил на все случаи жизни: логин, подтверждение, ошибки, настройки, инвайты и ещё десятки штук.
Сначала всё шло хорошо. DRY. Один компонент. Удобно. Красиво.
Но со временем у него появилось:
В какой-то момент этот компонент превратился в файл на 1000+ строк.
Тестировать стало тяжело. Поддерживать — страшно. Использовать — непонятно.
Мы поняли, что проще было бы сделать три отдельных компонента:
<LoginPopup />
<InvitePopup />
<ErrorPopup />
Они бы были почти одинаковыми на 80%, но зато:
formatDate
, getAgeFromDate
, truncateText
DRY — это не закон. Это рекомендация.
Иногда дублирование кода — это не зло, а читаемость и простота.
Лучше три понятных компонента, чем один универсальный монстр.
Пишите код так, чтобы завтра вы или ваша команда смогли его понять.
Если для этого нужно слегка повториться — ничего страшного.
🤘 Никого не слушай. Думай своей головой.
Иногда DRY — это путь в ад. А иногда — спасение.
Чувствуй грань.
Подписывайтесь на EasyAdvice — и не бойтесь писать код, который понятен вам.