- Workaround
-
Обходной приём, или Workaround — обходное решение проблемы, выявленной в системе (в простонародии «костыль»). Обходной приём обычно является временным исправлением, подразумевающим, что требуется подлинное решение проблемы. Очень часто обходные приёмы так же креативны, как истинные решения, и требуют нестандартного мышления.
Обычно они рассматриваются как неустойчивые варианты, не отвечающие в полной мере будущим требованиям, выходящим за рамки изначального дизайна системы. При реализации обходных приёмов важно пометить изменение так, чтобы в будущем разработать подходящее решение.
Обходные решения применяются в разных областях человеческой деятельности, не только в программировании.
Реализация обходного приёма может стать причиной отказа системы в будущем[1]. К примеру, в компьютерном программировании обходные приёмы часто используются, чтобы обратиться к проблемному месту в библиотеке, такому как некорректное возвращаемое значение. Когда библиотека наконец-то будет исправлена, обходной приём может стать проблемой для функционирования всей программы, поскольку он ожидает от библиотеки старого, неправильного, поведения.
Содержание
Причины применения обходных решений
- Высокая стоимость подлинных решений
- Отсутствие в нужный момент ресурсов, требуемых для реализации подлинного решения
- Подлинное решение требует большого времени для разработки
- Пока неясно, как реализовать подлинное решение, и что оно будет из себя представлять
- Внедрение подлинного решения приведёт к потере совместимости с большим количеством существующих систем. Переоборудование же всех систем — дорогостоящее и долговременное занятие
Примеры широко известных обходных решений
В программировании
- Функция __doPostBack в ASP.NET. Существует потому, что у браузеров изначально не было возможности инициировать отправку страницы на сервер с помощью клиентского сценария (фактор — совместимость)
- Спецификация XHTML 1.0 Transitional. Существует по причине наличия у населения огромного количества браузеров, поддерживающих старые спецификации HTML[2][3] (фактор — совместимость)
В технике
- «Жучок» вместо предохранителя в электрощитке. Позволяет немедленно восстановить электроснабжение при отсутствии под рукой предохранителей, но может привести к пожару в случае перегрузки или короткого замыкания[4]. (фактор — ресурсы, иногда — время)
- Выход в интернет или связь нескольких компьютеров и прочих цифровых устройств через модем, подключённый к телефонной (Dial-up, ADSL) или телевизионной (Кабельные модемы) линии, вместо подключения по более дорогому цифровому каналу связи, специально предназначенному для этого (витая пара, оптоволокно)[5]. (фактор — стоимость, иногда — время)
- Системы кодирования цвета в аналоговом телевидении: PAL, [6]. (фактор — совместимость)
В медицине
- Временная пломба на зубе, применяемая при лечении глубокого кариеса (первое посещение), лечении пульпита биологическим методом, после заполнения корневого канала. (фактор — время)
- Костыли — пока не срастётся перелом и больной будет в состоянии ходить без поддержки. (фактор — время)
Примечания
Wikimedia Foundation. 2010.