#Смузиликбез
Что такое костыль? Как понять, что мой код костыль?
В больших компаниях за день в кодовую базу добавляют тысячи строк кода, и чуть меньше удаляют. Удаляют не потому, что они плохи. Вернее, не только лишь поэтому. Код - довольно жидкая субстанция. В ходе работы над проектом его постоянно изменяют, правят, улучшают, оптимизируют и выкидывают за ненадобностью.
Частенько костылём не вполне верно называют просто дерьмово пахнущий код. Ну, тот что неоптимально решает задачу, да еще и выглядит слишком примитивно: без намёков на масштабируемость. Стремление писать идеальный код регулярно вредит молодому любителю смузи и компании, которая его старания оплачивает. Обилие абстракций и оптимизаций могут казаться лишними. Но скорее всего они и правда лишние. Код должен решать задачи продукта в первую очередь, а уже после быть красивым. Велик шанс, что код вообще никогда никому не пригодится, так что излишне усердствовать над эстетикой не стоит.
Костылями я бы скорее назвал решения, которые:
- точно сломаются спустя время. Например, хардкод дат.
- меняют и используют глобальные состояния.
- полагаются на незадекларированное поведение.
- используют неподходящие инструменты. Не знаю даже как изящнее назвать. Хорошим примером будет рефлексия в продуктовом коде.
Всех их объединяет непредсказуемость, которую они добавляют либо в работу системы, либо в её развитие. Код либо сломается сам по себе, либо от добавления новых фич.
Костыли бывают критически необходимы. Быстрое решение может спасти деньги и нервы. Например, в случае пожара в проде. Или когда сроки критически поджимают. Важно только не забыть вернуться и переделать. На худой конец завести задачу в техдолг, чтобы этим занялся кто-то другой.
Изобретать костыли - это не страшно. Страшно, когда в очередном изобретенном шедевре вы костыль не замечаете. Как правило, на первых порах так частенько и происходит. Ну, на то у вас есть коллеги. Пускай они оценивают насколько новый костыль критически необходим в каждой конкретной ситуации.
————————
В рамках рубрики #Смузиликбез я стараюсь простыми словами отвечать на вопросы своих студентов о том как устроена настоящая разработка по ту сторону обучения. Если у вас есть вопрос - задавайте. Я дико кайфую, когда пишу для этой рубрики 🥤
OverrideTech | Twitch | Boosty
Post #387
1.58K
- 🔥 5