TGViewer
OverrideTech Анатолий Марандюк OverrideTech Анатолий Марандюк @overridetech · 1.11K subscribers
Post #387 1.58K
#Смузиликбез

Что такое костыль? Как понять, что мой код костыль?

В больших компаниях за день в кодовую базу добавляют тысячи строк кода, и чуть меньше удаляют. Удаляют не потому, что они плохи. Вернее, не только лишь поэтому. Код - довольно жидкая субстанция. В ходе работы над проектом его постоянно изменяют, правят, улучшают, оптимизируют и выкидывают за ненадобностью.

Частенько костылём не вполне верно называют просто дерьмово пахнущий код. Ну, тот что неоптимально решает задачу, да еще и выглядит слишком примитивно: без намёков на масштабируемость. Стремление писать идеальный код регулярно вредит молодому любителю смузи и компании, которая его старания оплачивает. Обилие абстракций и оптимизаций могут казаться лишними. Но скорее всего они и правда лишние. Код должен решать задачи продукта в первую очередь, а уже после быть красивым. Велик шанс, что код вообще никогда никому не пригодится, так что излишне усердствовать над эстетикой не стоит.

Костылями я бы скорее назвал решения, которые:
- точно сломаются спустя время. Например, хардкод дат.
- меняют и используют глобальные состояния.
- полагаются на незадекларированное поведение.
- используют неподходящие инструменты. Не знаю даже как изящнее назвать. Хорошим примером будет рефлексия в продуктовом коде.
Всех их объединяет непредсказуемость, которую они добавляют либо в работу системы, либо в её развитие. Код либо сломается сам по себе, либо от добавления новых фич.

Костыли бывают критически необходимы. Быстрое решение может спасти деньги и нервы. Например, в случае пожара в проде. Или когда сроки критически поджимают. Важно только не забыть вернуться и переделать. На худой конец завести задачу в техдолг, чтобы этим занялся кто-то другой.

Изобретать костыли - это не страшно. Страшно, когда в очередном изобретенном шедевре вы костыль не замечаете. Как правило, на первых порах так частенько и происходит. Ну, на то у вас есть коллеги. Пускай они оценивают насколько новый костыль критически необходим в каждой конкретной ситуации.

————————
В рамках рубрики #Смузиликбез я стараюсь простыми словами отвечать на вопросы своих студентов о том как устроена настоящая разработка по ту сторону обучения. Если у вас есть вопрос - задавайте. Я дико кайфую, когда пишу для этой рубрики 🥤

OverrideTech | Twitch | Boosty
  • 🔥 5
More from @overridetech
  1. Aug 26, 2026Айти все Ну чо, дожили, в айти теперь не вкатиться. Ладно-ладно, шучу, это дешевый байт, ч…
  2. May 5, 2026Почему хотите уйти? В сущности простой, безобидный вопрос. Правда, на него 80% клиентов мо…
  3. Apr 17, 2026Карьерная диверсификация, ч.2 - Мне посчастливилось начать карьеру в золотые годы айти. Ба…
  4. Apr 17, 2026Карьерная диверсификация, ч.1 У вас же есть ощущение, что мир вокруг рушиться? Наверняка,…
  5. Apr 1, 2026Мастер спорта по всему Я рос в парадигме “сэкономил - считай заработал”. Ну то есть если ч…
  6. Mar 27, 2026Минус одно очко Гриффиндору (за многозадачность) Я большой любитель начинать всякие авантю…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →