что такое "костыль" в программировании? как часто приходиться "костылить" в вашей практике?

 

костыли - это когда вместо того, чтобы исправить логику работы модуля (что может потребовать полного его переписывания), в этот модуль или в место его использования впихивают куски кода, обрабатывающие особые случаи.

в результате нередко случается, что со временем кода "особых случаев" становится в разы больше чем основной логики.

>что такое "костыль" в программировании? 
некое поделие, призванное оперативно устранить возникшую проблему, невзирая на стилистику в целом и здравый смысл в частности. 

>как часто приходиться "костылить" в вашей практике?
сейчас нечасто. я на заводе работаю, тут вообще никто никуда не спешит - поломали-починили.
на прошлой работе костыли обрубались в ходе обязательного code review.
на позапрошлой я сам себе старался таких вещей не позволять. в результате, правда, сваял мегакостыль - целую отдельную систему из маленьких костыликов, которая используется до сих пор и прекрасно работает. но системка эта была срочно нужна, а я уже уходил. так что пришлось.
на первой работе приходилось иногда. промышленный робот - не такое оборудование, которое может долго стоять. нашли багу - пофиксили абы как - линия работает дальше.

это фрагмент, нарушающий красоту и гармонию программы, но без которого программа работает неправильно. вставляется если нет времени или желания пересмотреть всю программу и найти и устранить причину из-за которой понадобился этот костыль.

еще называют заплатка или заглушка.

"костыль -- это нечто другое, по-моему." - ну так костыль помогает ходить, так и в программировании, берешь ближайшее дерево и делаешь из него костыль и ковыляешь дальше. то бишь выявилась проблема, а кардинально ее решать или долго или сложно, так что проще "костыль" написать который позволит программе работать дальше... мол когда-то будет ремонт, то все сделаем. а хрен там так выходит.... ну это уже действительность... часто заказчику говоришь, что надо полностью бы переписать... а он мол денег не, но может годами заказывать костыли, так как на это деньги есть.... вот так и работаем часто.

"костыль" = обходной приём, workaround
 - это плохой стиль, это неудобное, но работающее решение той или иной проблемы в коде программы. (технический жаргон)))
но...
работает - не трогай.

видели деревянный забор в деревне? вот представьте что забор это ваш код, а костыль это подпорки деревянные чтоб забор не упал. нет чтобы сделать изначально нормальный забор чтоб он не падал, мы начинаем его подпирать с разных сторон. получается не очень красиво и вероятность того что забор рано упадёт всё равно есть

что бы не говорили остальные, это естественный процесс (а не стиль), вынужденная мера, процесс накопления нового качества.
да, выглядит, как времянка, да, утяжеляет код, да, реализация может грешить качеством. всё написано правильно. это всё пустяки
вопрос в другом. кто оплатит новый код и освободит от другой, текущей работы, которая по любому выгоднее?