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

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

The Cat Искусственный Интеллект (116118), закрыт 6 лет назад
Лучший ответ
Андрей Высший разум (425838) 6 лет назад
Костыли - это когда вместо того, чтобы исправить логику работы модуля (что может потребовать полного его переписывания), в этот модуль или в место его использования впихивают куски кода, обрабатывающие особые случаи.

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

>Как часто приходиться "костылить" в вашей практике?
Сейчас нечасто. Я на заводе работаю, тут вообще никто никуда не спешит - поломали-починили.
На прошлой работе костыли обрубались в ходе обязательного code review.
На позапрошлой я сам себе старался таких вещей не позволять. В результате, правда, сваял мегакостыль - целую отдельную систему из маленьких костыликов, которая используется до сих пор и прекрасно работает. Но системка эта была срочно нужна, а я уже уходил. Так что пришлось.
На первой работе приходилось иногда. Промышленный робот - не такое оборудование, которое может долго стоять. Нашли багу - пофиксили абы как - линия работает дальше.
The CatИскусственный Интеллект (116118) 6 лет назад
Был свидетелем, когда наличие костыля в продукте выдавалось за фичу :)
Jurijus Zaksas Искусственный Интеллект (425016) Да сплошь и рядом. Более того, позже клиент после "правильного" фикса бывает недоволен - верните костыль, с ним было удобнее.
Юрий Моисеев Оракул (83936) 6 лет назад
Это фрагмент, нарушающий красоту и гармонию программы, но без которого программа работает неправильно. Вставляется если нет времени или желания пересмотреть всю программу и найти и устранить причину из-за которой понадобился этот костыль.
The CatИскусственный Интеллект (116118) 6 лет назад
Бывают ли "положительные" костыли? Когда логика основной программы недостаточно интеллектуальна, и все "косяки" исправляются "правильной настройкой" костыля? Или это маркетинговый ход хитро_опых коммерсантов, выдающих плохой продукт за супер-гибкий?
leon melesh Оракул (70129) 6 лет назад
еще называют заплатка или заглушка.
The CatИскусственный Интеллект (116118) 6 лет назад
Заплатка -- устранение бага с помощью изменения куска кода.
Заглушка -- замена реального фрагмента кода на код, возвращающий заведомо известный результат.
Костыль -- это нечто другое, по-моему.
kaiu Высший разум (115628) 6 лет назад
"Костыль -- это нечто другое, по-моему." - ну так костыль помогает ходить, так и в программировании, берешь ближайшее дерево и делаешь из него костыль и ковыляешь дальше. То бишь выявилась проблема, а кардинально ее решать или долго или сложно, так что проще "костыль" написать который позволит программе работать дальше... мол когда-то будет ремонт, то все сделаем. А хрен там так выходит.... ну это уже действительность... часто заказчику говоришь, что надо полностью бы переписать... а он мол денег не, но может годами заказывать костыли, так как на это деньги есть.... вот так и работаем часто.
The CatИскусственный Интеллект (116118) 6 лет назад
Всё правильно, не устраняем проблему, а смягчаем её проявление.
Снежный Барс Мудрец (17440) 6 лет назад
"костыль" = Обходной приём, workaround
- это плохой стиль, это неудобное, но работающее решение той или иной проблемы в коде программы. (Технический жаргон)))
Но...
Работает - не трогай.
The CatИскусственный Интеллект (116118) 6 лет назад
Спасибо за вашу формулировку.
мастер шести путей Просветленный (26383) 6 лет назад
Видели деревянный забор в деревне? вот представьте что забор это ваш код, а костыль это подпорки деревянные чтоб забор не упал. Нет чтобы сделать изначально нормальный забор чтоб он не падал, мы начинаем его подпирать с разных сторон. Получается не очень красиво и вероятность того что забор рано упадёт всё равно есть
The CatИскусственный Интеллект (116118) 6 лет назад
Спасибо. Очень образно.
Алекс Куха Высший разум (446536) 6 лет назад
Что бы не говорили остальные, это естественный процесс (а не стиль), вынужденная мера, процесс накопления нового качества.
Да, выглядит, как времянка, да, утяжеляет код, да, реализация может грешить качеством. Всё написано правильно. Это всё пустяки
Вопрос в другом. Кто оплатит новый код и освободит от другой, текущей работы, которая по любому выгоднее?
Mr. Perfectly FineОракул (62995) 6 лет назад
Что-то я в том же духе хотел написать, костыль – альтернативный способ достижения результата, на который и работает человек. Неважно как достигнут успех, важен его факт.
Development Ученик (129) 5 месяцев назад
IF (оператор условия "если") похож на костыль.
Похожие вопросы