ConstructiCat Logo
CodeBust.
Browse section ▾

Якорь для лодки (метафора).

Метафора для устаревшего оборудования

В любительской радиосвязи и вычислительной технике якорь для лодки (англ. boat anchor или boatanchor) — это нечто устаревшее, бесполезное и громоздкое – так называемое потому, что метафорически его единственное полезное применение — быть брошенным в воду в качестве причального устройства для лодки. Похожи такие термины, как кирпич, дверной упор и пресс-папье.

Любительская радиосвязь

В любительской радиосвязи якорь для лодки — это старое радиооборудование. Обычно так называют большое, тяжёлое радиооборудование прежних десятилетий, использовавшее лампы. В этом контексте якоря для лодок часто высоко ценятся своими владельцами, а их достоинства (например, устойчивость к ЭМИ) подчёркиваются, даже если более новое оборудование обладает большими возможностями.

Раннее употребление термина встречается в выпуске журнала CQ Amateur Radio за 1956 год. В журнале было опубликовано письмо читателя, искавшего «схемы или данные для переделки» военного избыточного приёмопередатчика Wireless Set No. 19 MK II, чтобы переделать его для работы в любительских диапазонах. Редактор добавил такой ответ:

«Единственная переделка, которая, похоже, имеется у нас в архивах CQ, требует 100 футов однодюймового манильского троса, один конец которого надёжно привязывается к приёмопередатчику MK II. После этого устройство превращается в отличный якорь для небольшой лодки. Если у кого-то из читателей есть переделки получше, мы будем рады о них услышать. — Ред.»

CQ: The Radio Amateurs' Journal, октябрь 1956

Употребление редактором этого термина вызвало некоторый интерес читателей, и в феврале 1957 года CQ опубликовал продолжение истории с фотографиями.

Компьютеры

Метафора напрямую переносится со старых радиоприёмников на старые компьютеры. Она также была расширена для обозначения реликтового программного обеспечения.

Оборудование

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

Программное обеспечение

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

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

Рекомендуемое решение для работы с «якорями для лодки» в исходном коде — удалить их из кодовой базы и поместить в отдельное место, чтобы при необходимости к ним можно было обратиться, но они не компилировались и не принимались за «рабочий» код. (Например, удалить их, зная, что они хранятся в системе контроля версий проекта.)