🫡 Идеального кода не существует. И это нормально.
Раньше я сам страдал фетишизмом на идеально вылизанный код, без малейших изъянов. Хотел смотреть на него и думать:
"Вот это да, как же он хорош."
Правда в том, что такой подход убивает.
⚖ Баланс между качеством кода и целями бизнеса
Во всех компаниях были, есть и будут куски кода, после которых хочется помыть глаза. И это нормально. Вы пишете код не для того, чтобы он был идеален и радовал глаз, а чтобы он приносил деньги и решал конкретные задачи.
Безусловно, чистота, ясность, читаемость и эффективность кода - важнейшие аспекты, про которые забывать нельзя. Но не нужно бездумно упарываться в бесконечные абстракции, паттерны и рефакторинги.
У бизнеса есть конкретные цели, которые нужно выполнить в конкретные сроки. Иногда эти сроки могут поджимать. В таких случаях можно допустить какой-нибудь костыль, чтобы быстро сделать MVP, а потом улучшить.
Да-да, именно поэтому нельзя забывать про техдолг. Он как раз помогает уменьшить количество говнокода. В хорошем проекте всегда есть ресурсы для работы с техдолгом, для рефакторинга и улучшения. Если их нет - беда 🥲
☑ Рефакторинг как способ борьбы
Есть хорошая цитата Мартина Фаулера:
"... a bout of refactoring results in increased productivity. Not having enough time usually is a sign that you need to do some refactoring."
По сути, это правда. Если по каждой задаче стабильно двигаются сроки, а никто ничего не успевает, стоит задуматься о рефакторинге. В противном случае проект может просто погибнуть.
Кому интересно, здесь можно посмотреть еще цитаты от М. Фаулера.
Что важно понимать?
▫ идеального кода нет и не будет;
▫ иногда нужно сделать криво, чтобы работало, позже улучшить;
▫ рефакторинг - не просто полезная практика, а необходимость для долгосрочной продуктивности и борьбы с говнокодом.
В общем, не пишите плохо, пишите хорошо. Все 🤗