Беларусь + FemTech = ❤️? Stork целится в миллион установок
Support us

«Временно». Как очень странные костыли застревают в коде на годы

Интересная дискуссия развернулась в Threads: разработчики делятся историями о том, как временные решения, часто сделанные на коленке и очень сомнительные, остаются в коде надолго — и почему они никем не исправляются. 

А в вашей практике были такие? Делитесь в комментариях.

4 комментария
«Временно». Как очень странные костыли застревают в коде на годы

Интересная дискуссия развернулась в Threads: разработчики делятся историями о том, как временные решения, часто сделанные на коленке и очень сомнительные, остаются в коде надолго — и почему они никем не исправляются. 

А в вашей практике были такие? Делитесь в комментариях.

Тему начал PHP/Python-разработчик. Он рассказал, как недавно разбирался с критическим багом на проекте с 10-летним кодом. Спустя 4 дня кое-что нашёл: кто-то из разработчиков убрал из системы проверку платёжных карт с пометкой: «Временно, потом верну» — и не вернул, само собой. Коммит того разработчика датирован 2018 годом.

— Семь чёртовых лет компания принимала любые карты без проверки! Даже несуществующие. И никто не замечал… — возмущается топикстартер. 

В компании за это время сменилось 3 разработчика, но никто так ничего и не сделал с этим «Временно, потом верну». 

«Никто не возьмёт на себя риск исправить по принципу: «Не трожь, если работает!»

Под постом — «100% понимания» и никакого осуждения. Кто-то пишет, что такое «постоянно находится в легаси, но так как уже сменилось 10 поколений айтишников, то никто не возьмёт на себя риск исправить очевидные баги по принципу: «Не трожь, если работает!» 

Кто-то приводит пример: «Я в финансах. Регулярно нахожу в системе платежи, поставленные на холд в году этак 2020».

Один из комментариев — от человека, представившегося сотрудником компании по поддержке и оптимизации legacy codebases. Он составил топ-3 своих любимых «временных» решений, превращающихся в постоянные:

  • временный while (true) в некоторых местах для тестов — и это так и крутилось 10 лет вместе с основным кодом;
  • выгрузка из базы данных в одну строку длиной около 1000 с комментом: «Исправить, когда будет настоящая база данных». Базу просто потом подогнали под эту строку;
  • вшитый логин admin с паролем 12345 с todo-комментом. Компания была свято уверена, что нужно добавить логин, и эта таска висела в бэклоге 2 года.

И, конечно же, там много забавных историй от пользователей. Вот несколько из них: 

«А в начале безобразия — мой же комментарий: «временное решение»

— В далёком 2007 году мне нужно было срочно запустить одну новую информационную систему. На новогодних каникулах я налабал ужасный «говнокод» для выгрузки данных из этой системы. Код был реально ужасен: вместо создания и запуска динамического SQL по параметрам в UNION’ах были описаны все возможные на тот момент варианты выгрузки данных — и без всякой оптимизации… Я собирался поправить код через пару-тройку месяцев после запуска системы.

…Я уже давно перешёл в другое предприятие холдинга и даже сменил сферу деятельности. И вот в прошлом 2024 году бывшие коллеги сказали, что наконец-то эту устаревшую систему снесли и заменили новой. Я спросил: «А что, та выгрузка данных так и проработала все время?!.» Мне показали мой-же код с «заботливо» дописанными UNION’ами… А в начале всего этого безобразия гордо стоял мой же собственный комментарий, датированный 03.01.2007 года и указывавший на то, что это «временное решение». 

Спустя 8 лет «позвонили с прошлой работы и попросили восстановить скрипт»

— В 2007 году я, в то время ещё студент пятого курса, работал в большой фармацевтической компании. И как-то меня попросили написать небольшой скрипт для выгрузки данных из 1С по запросу через сайт. 

Я навалял его на коленке и отдал на тестирование работникам склада. Тест, видимо, он прошел сразу, так как никто меня не просил что-то дописать или исправить. Через пару лет я уволился и уехал за границу. А в 2015 году, мне позвонили с прошлой работы и попросили восстановить этот скрипт, так как он оказался очень важен и вся сеть из нескольких сотен фармацевтов и провизоров использовала его. А я даже не знал, что сделал супер-удобный инструмент для аптек.

«Примерно года два этим всем, матерясь, пользовались аналитики»

— Когда я была маленькой девочкой-стажером, мне дали задачу, разобраться, как работают базы данных (с нуля, по книжке Microsoft Access для чайников) и с нуля же создать базу данных, которая обращалась бы к сайту со статистикой и выгружала данные в Excel для нескольких очень важных отчётов. 

Поскольку делала я это всё впервые в жизни, а на проект был всего месяц, многое приходилось делать через адские костыли. Но примерно года два этим всем, матерясь, пользовались аналитики.

Почему говнокод — это норма: объясняют опытные кодеры
Почему говнокод — это норма: объясняют опытные кодеры
По теме
Почему говнокод — это норма: объясняют опытные кодеры
Читайте также
«Раньше можно было брать просто так». Exadel продаёт сотрудникам мерч (дорого)
«Раньше можно было брать просто так». Exadel продаёт сотрудникам мерч (дорого)
«Раньше можно было брать просто так». Exadel продаёт сотрудникам мерч (дорого)
А три года работы в компании можно конвертировать в ручку. 
16 комментариев
Компании продолжают увольнять с размахом — нанимать, впрочем, тоже
Компании продолжают увольнять с размахом — нанимать, впрочем, тоже
Компании продолжают увольнять с размахом — нанимать, впрочем, тоже
По данным Белстата, в сентябре в ИКТ было уволено почти 1,7 тысячи сотрудников. Это новый рекорд по увольнениям за один месяц в нынешнем году. 
«Ужесточение». Самозанятым закрутят гайки в 2026 — вот как
«Ужесточение». Самозанятым закрутят гайки в 2026 — вот как
«Ужесточение». Самозанятым закрутят гайки в 2026 — вот как
Собрали поправки в Налоговый кодекс, которые затронут плательщиков профналога в новом году. 
27 комментариев
Уволили из-за AI — теперь зп в 1,5 раза выше. Как айтишница подготовилась к плохому варианту
Уволили из-за AI — теперь зп в 1,5 раза выше. Как айтишница подготовилась к плохому варианту
Уволили из-за AI — теперь зп в 1,5 раза выше. Как айтишница подготовилась к плохому варианту
Опытом делится минская художница.
2 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

0

были. 15 лет назад написали костыль а сегодня плюемся выпиливаем его из 80 сервисов по всему тихоокеанскому региону

zabelarus14
zabelarus14 Инженер в НИИ им. Баца
2

Костыльно-Ориентированное Программирование опирается на три кита:

Костылирование
Инкостыляция
Поликостылизм

table
table Table в Database
-1

«Временно, потом верну» — и не вернул, само собой. Коммит того разработчика датирован 2018 годом.

а что он сразу в мастер вмержил, безо всяких апрувов и все такое? Ну так на зеркало неча пенять, коли рожа крива

shipishi
shipishi Должность в Белокрылые лошадки
0

на том стоим. как-то в целях изучения перла и апача написал внутренний сайтик для зарядки и выгрузки данных с адским текстовым форматом в виде источника и access как БД. Через 5 лет зашел на поболтать - ниче, работает, активно пользуют.