Дапамажыце 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 для некалькіх вельмі важных справаздач.

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

Чытайце таксама
Як распрацоўшчык у Польшчы працаваў кур'ерам (але потым усё атрымалася)
Як распрацоўшчык у Польшчы працаваў кур'ерам (але потым усё атрымалася)
Як распрацоўшчык у Польшчы працаваў кур'ерам (але потым усё атрымалася)
@dzikpic, канал для айцішнікаў у Польшчы, расказаў гісторыю Аляксандра. Перад тым, як патрапіць у польскую кампанію, ён два месяцы дастаўляў ежу ў Glovo. Як гэта — ездзіць на ровары па 10-12 гадзін на дзень і чаму манікюршчыца зарабляе больш за распрацоўшчыка.
15 каментарыяў

Айцішнік купіў дом у Польшчы. Як атрымаць дазвол у 2022, калі адмоў большае
Айцішнік купіў дом у Польшчы. Як атрымаць дазвол у 2022, калі адмоў большае
Айцішнік купіў дом у Польшчы. Як атрымаць дазвол у 2022, калі адмоў большае
@dzikpic, канал для ІТ-экспатаў у Польшчы, расказвае гісторыю беларускага айцішніка, які купіў дом у Гданьску, з каментарамі эксперта. Абмеркаваць гісторыю можна ў чаце.
13 каментарыяў
Belka Games звольніла супрацоўнікаў у Беларусі, Расіі і Літве
Belka Games звольніла супрацоўнікаў у Беларусі, Расіі і Літве
Belka Games звольніла супрацоўнікаў у Беларусі, Расіі і Літве
22 каментарыя
Расійская «Леста» стала 100%-м уласнікам «Гейм Стрым»
Расійская «Леста» стала 100%-м уласнікам «Гейм Стрым»
Расійская «Леста» стала 100%-м уласнікам «Гейм Стрым»

Хочаце паведаміць важную навіну? Пішыце ў Telegram-бот

Галоўныя падзеі і карысныя спасылкі ў нашым Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

0

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

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

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

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

table
table Table в Database
-1

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

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

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

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