Изобретая колесо - Reinventing the wheel

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

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

Применение

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

«Изобретая колесо заново» может быть ироническим клише - неясно, когда было изобретено само колесо. Современное «изобретение» колеса на самом деле могло быть «переизобретением» старинного изобретения. Кроме того, регулярно разрабатываются и продаются многие различные колеса с усовершенствованием существующих колес (например, многие типы доступных шин). Метафора подчеркивает понимание существующих решений, но не обязательно соглашаться на них.

В разработке программного обеспечения

В разработка программного обеспечения, изобретать колесо часто необходимо, чтобы обойти лицензирование программного обеспечения несовместимости или технических ограничений, присутствующих в частях или модулях, предоставленных третьими сторонами.[нужна цитата ] Примером может быть реализация быстрая сортировка для сценария, написанного на JavaScript и предназначено для встраивания в веб-страницу. Алгоритм быстрой сортировки хорошо известен и доступен по адресу библиотеки для разработчиков программного обеспечения, пишущих приложения общего назначения на C ++ или Ява, но некоторые реализации Javascript не предоставляют этот конкретный алгоритм. Следовательно, если разработчик хочет надежно использовать быструю сортировку на своей веб-странице, он должен «заново изобрести колесо», заново реализовав алгоритм. Они могли бы скопировать его с другой веб-страницы, но тогда они могли бы столкнуться с Авторские права и вопросы лицензирования программного обеспечения. Новое изобретение колеса в этом случае обеспечивает недостающую функциональность, а также позволяет избежать проблем с авторским правом.

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

Связанные фразы

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

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

Изобретая колесо предполагает откладывание задачи, если ожидается, что она будет выполнена позже. Примером может быть: «Мы не хотим изобрести колесо» при обсуждении решения проблемы, когда известно, что решение разрабатывается в другом месте. Это не обязательно уничижительно.[1]

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

Смотрите также

использованная литература

  1. ^ Брандт, П (2003), Проект изменения лидерства неопубликованный