🇵🇱 Дедлайн по e-PIT всё ближе ⏳ Поддержите devby из уже уплаченных налогов 💙
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 для нескольких очень важных отчётов. 

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

Почему говнокод — это норма: объясняют опытные кодеры
Почему говнокод — это норма: объясняют опытные кодеры
По теме
Почему говнокод — это норма: объясняют опытные кодеры
Поддержите редакцию 1,5% налога: бесплатно и за 5 минут

Как помочь, если вы в Польше

Читайте также
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
7 комментариев
«Я дома. Но в мой дом приходят странные люди». Преподаватель БГУИР записал открытое обращение к Лукашенко
«Я дома. Но в мой дом приходят странные люди». Преподаватель БГУИР записал открытое обращение к Лукашенко
«Я дома. Но в мой дом приходят странные люди». Преподаватель БГУИР записал открытое обращение к Лукашенко
Старший преподаватель кафедры ПОИТ БГУИР Дмитрий Оношко выложил на YouTube открытое обращение к Александру Лукашенко.
12 комментариев
«Тут можно снять новый танхаус за 6К злотых». Семья переехала в Згожелец, после Варшавы очень довольна
«Тут можно снять новый танхаус за 6К злотых». Семья переехала в Згожелец, после Варшавы очень довольна
«Тут можно снять новый танхаус за 6К злотых». Семья переехала в Згожелец, после Варшавы очень довольна
Канал Dzik рассказал, как уроженка Украины сменила Варшаву на Згожелец (город в Нижнесилезском воеводстве на 30 тыс. человек). А Złoty Dzik разобрал финансовую составляющую этого переезда.
11 комментариев
5 стран, где можно родить «ради паспорта». Что поменялось к 2026 и нужны ли справки с родины
5 стран, где можно родить «ради паспорта». Что поменялось к 2026 и нужны ли справки с родины
5 стран, где можно родить «ради паспорта». Что поменялось к 2026 и нужны ли справки с родины
Канал Dzik собрал небольшой список для тех, кто хочет подарить своему ребёнку (ну и себе заодно) двойное гражданство. И проверил последние апдейты. 
1 комментарий

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

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

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

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

0

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

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

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

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

table
table Table в Database
-1

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

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

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

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