Перепишите (программирование) - Rewrite (programming)
А переписать в компьютерное программирование является действием или результатом повторной реализации значительной части существующей функциональности без повторного использования ее исходный код. Когда при перезаписи существующий код вообще не используется, обычно говорят о переписать с нуля.
Мотивации
Часть программного обеспечения обычно переписывается, когда применяется одно или несколько из следующих условий:
- это исходный код недоступен или доступно только под несовместимый лицензия
- его код не может быть адаптирован к новой целевой платформе
- его существующий код стал слишком сложным для обработки и расширения
- задача отладка это кажется слишком сложным
- программисту сложно понять его исходный код
- разработчики изучают новые методы или хотят провести капитальный ремонт функций, требующий значительных изменений
- разработчики узнают, что новые написанные коды могут расширять возможности контента, которые могут исправить или перезаписать предыдущие проблемы
- то язык программирования исходного кода необходимо изменить
Риски
Несколько инженеров-программистов, таких как Джоэл Спольски[1] предостерегали от полной перезаписи, особенно в условиях ограничений графика или давления конкуренции. Хотя разработчики изначально могут приветствовать возможность исправить исторические ошибки проектирования, при переписывании также удаляются те части проекта, которые работают должным образом. Переписывание обязывает команду разработчиков предоставлять не только новые функции, но и все те, которые существуют в предыдущем коде, потенциально вводя новые ошибки или регрессии ранее исправленных ошибок.[2][3] Перезапись также мешает отслеживанию не исправленных ошибок в старой версии.[4]
Инкрементное переписывание - это альтернативный подход, при котором разработчики постепенно заменяют существующий код вызовами новой реализации, расширяя эту реализацию до тех пор, пока она полностью не заменит старую. Такой подход позволяет избежать потери функциональности во время перезаписи. Разработка программного обеспечения для чистых помещений - это еще один подход, который требует, чтобы команда работала с исчерпывающей письменной спецификацией функциональности программного обеспечения без доступа к его коду.[5]
Известные примеры
Netscape проект по улучшению макета HTML в Навигатор 4 был процитирован как пример неудачной перезаписи. Новый движок компоновки (Геккон ) разрабатывался независимо от навигатора и плохо интегрировался с кодом навигатора; поэтому сам Navigator был переписан вокруг нового движка, нарушив многие существующие функции и отложив выпуск на несколько месяцев. Тем временем, Microsoft сосредоточены на постепенных улучшениях Internet Explorer и не сталкивался с такими же препятствиями.[3][6] По иронии судьбы, сам Navigator был удачным переписыванием чистой комнаты NCSA Мозаика под контролем разработчиков этой программы. Видеть Браузерные войны.
Смотрите также
- Рефакторинг кода
- Разработка программного обеспечения с открытым исходным кодом
- Технический долг
- Ад развития
- Портирование
- Отдых на игровом движке
Некоторые проекты, в истории которых упоминаются крупные переписывания:
- HTTP-сервер Apache (1)
- Мессенджер AOL (1)
- СВЯЗЫВАТЬ (1)
- Freenet (1)
- Блок предохранителей (2)
- GRUB (1)
- Мажордом (1)
- MediaWiki (1)
- Mozilla / Netscape (1)
- Icecast (0–1)
- netcat (1)
- OpenRPG (1)
- PHP (1–2)
- Проект Ксанаду (0–1)
- Sun Secure Global Desktop (1)
- vBulletin (2)
- WebObjects (1)
- Zope (1)
Рекомендации
- ^ Спольски, Джоэл. "Вещи, которые нельзя делать, часть I". Джоэл о программном обеспечении. Получено 2015-01-23.
- ^ Ронкес Агербик, Йуст (15 апреля 2005 г.). «Никогда не переписывайте код с нуля». Архивировано из оригинал 10 октября 2008 г.. Получено 2008-09-11.
- ^ а б Спольски, Джоэл (6 апреля 2000 г.). "Вещи, которые нельзя делать". Получено 2008-09-11.
- ^ Завински, Джейми. «Каскад подростков с дефицитом внимания». Получено 2008-09-11.
- ^ Тилли, Бен (29 сентября 2001 г.). «Переписывание с нуля огромной базы кода». Получено 2008-09-11.
- ^ Завински, Джейми (31 марта 1999 г.). "отставка и вскрытие". Получено 2008-09-11.