Дапамажыце dev.by 🤍
Падтрымаць

«Часова». Як вельмі дзіўныя кастылі затрымліваюцца ў кодзе на гады

У Threads разгарнулася цікавая дыскусія: распрацоўшчыкі дзеляцца гісторыямі пра тое, як часовыя рашэнні, часта зробленыя на каленцы і вельмі сумнеўныя, застаюцца ў кодзе надоўга — і чаму іх ніхто не выпраўляе.

А ў вашай практыцы былі такія выпадкі? Дзяліцеся ў каментарыях.

4 каментарыя
«Часова». Як вельмі дзіўныя кастылі затрымліваюцца ў кодзе на гады

У Threads разгарнулася цікавая дыскусія: распрацоўшчыкі дзеляцца гісторыямі пра тое, як часовыя рашэнні, часта зробленыя на каленцы і вельмі сумнеўныя, застаюцца ў кодзе надоўга — і чаму іх ніхто не выпраўляе.

А ў вашай практыцы былі такія выпадкі? Дзяліцеся ў каментарыях.

Тэму распачаў PHP/Python-распрацоўшчык. Ён распавёў, як нядаўна разбіраўся з крытычным багам у праекце з 10-гадовым кодам. Праз 4 дні ён нарэшце знайшоў праблему: хтосьці з распрацоўшчыкаў прыбраў з сістэмы праверку плацежных карт з паметкай «Часова, потым вярну» — і, натуральна, не вярнуў. Коміт гэтага распрацоўшчыка быў датаваны 2018 годам.

— Сем чортавых гадоў кампанія прымала любыя карткі без праверкі! Нават неіснуючыя. І ніхто гэтага не заўважаў… — абураецца топікстартар.

За гэты час у кампаніі змяніліся 3 распрацоўшчыкі, але ніхто так нічога і не зрабіў з гэтым «Часова, потым вярну».

«Ніхто не возьме на сябе рызыку выпраўляць па прынцыпе: «Не чапай, калі працуе!»

Пад пастом — «100% разумення» і ніякага асуджэння. Хтосьці піша, што «такое ўвесь час сустракаецца ў легасі, але паколькі ўжо змянілася 10 пакаленняў айцішнікаў, ніхто не хоча браць на сябе рызыку і выпраўляць відавочныя багі па прынцыпе: „Не чапай, калі працуе!“».

Другі каментатар прыводзіць прыклад: «Я ў фінансах. Рэгулярна знаходжу ў сістэме плацяжы, пастаўленыя на холд у годзе гэтак 2020».

— Калі быў аўтаматызатарам, бачыў паведамленне «ё***ным індусам, калі хопіць мазгоў дапілаваць маю фічу». Распрацоўшчык рабіў нейкі функцыянал для смарт-сістэм дамоў, а праект павінен быў перайсці да індусаў».

Адзін з каментарыяў — ад чалавека, які прадставіўся супрацоўнікам кампаніі па падтрымцы і аптымізацыі legacy codebases. Ён склаў топ-3 сваіх найулюбёнейшых «часовых» рашэнняў, што сталі пастаяннымі:

  • часовы while (true) у некаторых месцах для тэставання — і гэта працавала 10 гадоў разам з асноўным кодам;
  • выгрузка  з базы дадзеных у адзін радок даўжынёй каля 1000 з каментарыем: «Выправіць, калі будзе сапраўдная база дадзеных». Базу потым проста падагналі пад гэты радок;
  • зашыты лагін admin і пароль 12345 з todo-камментам. Кампанія была ўпэўненая, што трэба будзе дадаць логін, і гэтая таска правісела ў backlog’у 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 лет зашел на поболтать - ниче, работает, активно пользуют.