Jump to content

Переписать (программирование)

(Перенаправлено с переписывания кода )

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

Мотивации

[ редактировать ]

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

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

Несколько инженеров-программистов, таких как Джоэл Спольски. [1] предостерегали от тотальных переписываний, особенно в условиях ограничений графика или конкурентного давления. Хотя разработчики изначально могут приветствовать возможность исправить исторические ошибки проектирования, при переписывании также отбрасываются те части дизайна, которые работают должным образом. Переписывание обязывает команду разработчиков предоставлять не только новые функции, но и все те функции, которые существуют в предыдущем коде, потенциально внося новые ошибки или устраняя ранее исправленные ошибки. [2] [3] Перезапись также мешает отслеживать неисправленные ошибки в старой версии. [4]

Инкрементное переписывание — это альтернативный подход, при котором разработчики постепенно заменяют существующий код вызовами новой реализации, расширяя эту реализацию до тех пор, пока она полностью не заменит старую. Такой подход позволяет избежать значительной потери функциональности во время перезаписи. Разработка программного обеспечения для чистых помещений — это еще один подход, который требует от команды работать на основе исчерпывающей письменной спецификации функциональности программного обеспечения без доступа к его коду. [5]

Navigator Проект Netscape по улучшению макета HTML в 4 был приведен в качестве примера неудачной перезаписи. Новый механизм компоновки ( Gecko ) был разработан независимо от Navigator и с трудом интегрировался с кодом Navigator; следовательно, сам Навигатор был переписан на новом движке, что привело к нарушению многих существующих функций и задержке выпуска на несколько месяцев. Тем временем Microsoft сосредоточилась на постепенном улучшении Internet Explorer и не столкнулась с такими же препятствиями. [3] [6] По иронии судьбы, сам Navigator представлял собой успешную переписанную версию NCSA Mosaic для чистых помещений под контролем разработчиков этой программы. См. Войны браузеров .

Некоторые проекты, в которых упоминаются крупные переписывания в своей истории:

См. также

[ редактировать ]
  1. ^ Спольски, Джоэл. «Чего никогда не следует делать, часть I» . Джоэл о программном обеспечении . Проверено 23 января 2015 г.
  2. ^ Ронкес Агербек, Йост (15 апреля 2005 г.). «Никогда не переписывайте код с нуля» . Архивировано из оригинала 10 октября 2008 года . Проверено 11 сентября 2008 г.
  3. ^ Jump up to: а б Спольски, Джоэл (6 апреля 2000 г.). «Чего никогда не следует делать» . Проверено 11 сентября 2008 г.
  4. ^ Завински, Джейми . «Каскад подростков с дефицитом внимания» . Проверено 11 сентября 2008 г.
  5. ^ Тилли, Бен (29 сентября 2001 г.). «Переписывание с нуля огромной базы кода» . Проверено 11 сентября 2008 г.
  6. ^ Завински, Джейми (31 марта 1999 г.). «отставка и вскрытие» . Проверено 11 сентября 2008 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 250a63e07d1cb679196e39a773818ddd__1709671800
URL1:https://arc.ask3.ru/arc/aa/25/dd/250a63e07d1cb679196e39a773818ddd.html
Заголовок, (Title) документа по адресу, URL1:
Rewrite (programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)