Андрей
Высший разум
(481033)
7 лет назад
Костыли - это когда вместо того, чтобы исправить логику работы модуля (что может потребовать полного его переписывания), в этот модуль или в место его использования впихивают куски кода, обрабатывающие особые случаи.
В результате нередко случается, что со временем кода "особых случаев" становится в разы больше чем основной логики.
Jurijus Zaksas
Искусственный Интеллект
(468138)
7 лет назад
>Что такое "костыль" в программировании?
Некое поделие, призванное оперативно устранить возникшую проблему, невзирая на стилистику в целом и здравый смысл в частности.
>Как часто приходиться "костылить" в вашей практике?
Сейчас нечасто. Я на заводе работаю, тут вообще никто никуда не спешит - поломали-починили.
На прошлой работе костыли обрубались в ходе обязательного code review.
На позапрошлой я сам себе старался таких вещей не позволять. В результате, правда, сваял мегакостыль - целую отдельную систему из маленьких костыликов, которая используется до сих пор и прекрасно работает. Но системка эта была срочно нужна, а я уже уходил. Так что пришлось.
На первой работе приходилось иногда. Промышленный робот - не такое оборудование, которое может долго стоять. Нашли багу - пофиксили абы как - линия работает дальше.
Юрий Моисеев
Оракул
(83960)
7 лет назад
Это фрагмент, нарушающий красоту и гармонию программы, но без которого программа работает неправильно. Вставляется если нет времени или желания пересмотреть всю программу и найти и устранить причину из-за которой понадобился этот костыль.
The CatИскусственный Интеллект (116192)
7 лет назад
Бывают ли "положительные" костыли? Когда логика основной программы недостаточно интеллектуальна, и все "косяки" исправляются "правильной настройкой" костыля? Или это маркетинговый ход хитро_опых коммерсантов, выдающих плохой продукт за супер-гибкий?
kaiu
Высший разум
(120172)
7 лет назад
"Костыль -- это нечто другое, по-моему." - ну так костыль помогает ходить, так и в программировании, берешь ближайшее дерево и делаешь из него костыль и ковыляешь дальше. То бишь выявилась проблема, а кардинально ее решать или долго или сложно, так что проще "костыль" написать который позволит программе работать дальше... мол когда-то будет ремонт, то все сделаем. А хрен там так выходит.... ну это уже действительность... часто заказчику говоришь, что надо полностью бы переписать... а он мол денег не, но может годами заказывать костыли, так как на это деньги есть.... вот так и работаем часто.
Снежный Барс
Мудрец
(17517)
7 лет назад
"костыль" = Обходной приём, workaround
- это плохой стиль, это неудобное, но работающее решение той или иной проблемы в коде программы. (Технический жаргон)))
Но...
Работает - не трогай.
мастер шести путей
Просветленный
(26381)
7 лет назад
Видели деревянный забор в деревне? вот представьте что забор это ваш код, а костыль это подпорки деревянные чтоб забор не упал. Нет чтобы сделать изначально нормальный забор чтоб он не падал, мы начинаем его подпирать с разных сторон. Получается не очень красиво и вероятность того что забор рано упадёт всё равно есть
Алекс Куха
Высший разум
(475294)
7 лет назад
Что бы не говорили остальные, это естественный процесс (а не стиль), вынужденная мера, процесс накопления нового качества.
Да, выглядит, как времянка, да, утяжеляет код, да, реализация может грешить качеством. Всё написано правильно. Это всё пустяки
Вопрос в другом. Кто оплатит новый код и освободит от другой, текущей работы, которая по любому выгоднее?
Mr. Perfectly FineОракул (63941)
7 лет назад
Что-то я в том же духе хотел написать, костыль – альтернативный способ достижения результата, на который и работает человек. Неважно как достигнут успех, важен его факт.