Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискСмотриComboВсе проекты

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

Пёс Барагоз ❌ Искусственный Интеллект (107617), закрыт 2 года назад
Лучший ответ
Андрей Искусственный Интеллект (157587) 2 года назад
Костыли - это когда вместо того, чтобы исправить логику работы модуля (что может потребовать полного его переписывания), в этот модуль или в место его использования впихивают куски кода, обрабатывающие особые случаи.

В результате нередко случается, что со временем кода "особых случаев" становится в разы больше чем основной логики.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Мне нравится, как вы умеете мысли формулировать -- всё кратко и по делу.
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (289951) 2 года назад
>Что такое "костыль" в программировании?
Некое поделие, призванное оперативно устранить возникшую проблему, невзирая на стилистику в целом и здравый смысл в частности.

>Как часто приходиться "костылить" в вашей практике?
Сейчас нечасто. Я на заводе работаю, тут вообще никто никуда не спешит - поломали-починили.
На прошлой работе костыли обрубались в ходе обязательного code review.
На позапрошлой я сам себе старался таких вещей не позволять. В результате, правда, сваял мегакостыль - целую отдельную систему из маленьких костыликов, которая используется до сих пор и прекрасно работает. Но системка эта была срочно нужна, а я уже уходил. Так что пришлось.
На первой работе приходилось иногда. Промышленный робот - не такое оборудование, которое может долго стоять. Нашли багу - пофиксили абы как - линия работает дальше.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Был свидетелем, когда наличие костыля в продукте выдавалось за фичу :)
Jurijus Zaksas Искусственный Интеллект (289951) Да сплошь и рядом. Более того, позже клиент после "правильного" фикса бывает недоволен - верните костыль, с ним было удобнее.
Юрий Моисеев Оракул (80675) 2 года назад
Это фрагмент, нарушающий красоту и гармонию программы, но без которого программа работает неправильно. Вставляется если нет времени или желания пересмотреть всю программу и найти и устранить причину из-за которой понадобился этот костыль.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Бывают ли "положительные" костыли? Когда логика основной программы недостаточно интеллектуальна, и все "косяки" исправляются "правильной настройкой" костыля? Или это маркетинговый ход хитро_опых коммерсантов, выдающих плохой продукт за супер-гибкий?
leon melesh Просветленный (35369) 2 года назад
еще называют заплатка или заглушка.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Заплатка -- устранение бага с помощью изменения куска кода.
Заглушка -- замена реального фрагмента кода на код, возвращающий заведомо известный результат.
Костыль -- это нечто другое, по-моему.
kaiu Оракул (72626) 2 года назад
"Костыль -- это нечто другое, по-моему." - ну так костыль помогает ходить, так и в программировании, берешь ближайшее дерево и делаешь из него костыль и ковыляешь дальше. То бишь выявилась проблема, а кардинально ее решать или долго или сложно, так что проще "костыль" написать который позволит программе работать дальше... мол когда-то будет ремонт, то все сделаем. А хрен там так выходит.... ну это уже действительность... часто заказчику говоришь, что надо полностью бы переписать... а он мол денег не, но может годами заказывать костыли, так как на это деньги есть.... вот так и работаем часто.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Всё правильно, не устраняем проблему, а смягчаем её проявление.
Снежный Барс Мудрец (15765) 2 года назад
"костыль" = Обходной приём, workaround
- это плохой стиль, это неудобное, но работающее решение той или иной проблемы в коде программы. (Технический жаргон)))
Но...
Работает - не трогай.
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Спасибо за вашу формулировку.
мастер шести путей Мудрец (18620) 2 года назад
Видели деревянный забор в деревне? вот представьте что забор это ваш код, а костыль это подпорки деревянные чтоб забор не упал. Нет чтобы сделать изначально нормальный забор чтоб он не падал, мы начинаем его подпирать с разных сторон. Получается не очень красиво и вероятность того что забор рано упадёт всё равно есть
Пёс Барагоз ❌Искусственный Интеллект (107617) 2 года назад
Спасибо. Очень образно.
Алекс Куха Высший разум (353633) 2 года назад
Что бы не говорили остальные, это естественный процесс (а не стиль), вынужденная мера, процесс накопления нового качества.
Да, выглядит, как времянка, да, утяжеляет код, да, реализация может грешить качеством. Всё написано правильно. Это всё пустяки
Вопрос в другом. Кто оплатит новый код и освободит от другой, текущей работы, которая по любому выгоднее?
Гость с пыльных дорогПросветленный (49965) 2 года назад
Что-то я в том же духе хотел написать, костыль – альтернативный способ достижения результата, на который и работает человек. Неважно как достигнут успех, важен его факт.
Похожие вопросы
Также спрашивают