Umschreiben (Programmierung)

A umschreiben in Computerprogrammierung ist das Gesetz oder Ergebnis einer erneuten Implementierung eines großen Teils der bestehenden Funktionalität ohne Wiederverwendung seiner Quellcode. Wenn das Umschreiben überhaupt keinen vorhandenen Code verwendet, ist es üblich, von a zu sprechen Schreiben Sie von Grund auf neu.

Motivationen

Eine Software wird in der Regel umgeschrieben, wenn einer oder mehrere der folgenden Bewerben angewendet werden:

  • es ist Quellcode ist nicht verfügbar oder ist nur unter einem verfügbar unvereinbar Lizenz
  • Sein Code kann nicht an eine neue Zielplattform angepasst werden
  • Der vorhandene Code ist zu schwer zu handhaben und zu erweitern
  • die Aufgabe von Debuggen Es scheint zu kompliziert zu sein
  • Der Programmierer fällt es schwierig, seinen Quellcode zu verstehen
  • Entwickler lernen neue Techniken oder möchten eine große Überholung von Features durchführen, die viel Veränderung erfordert
  • Entwickler erfahren, dass neue geschriebene Codes Inhaltsoptionen erweitern können, die frühere Probleme beheben oder überschreiben können
  • das Programmiersprache des Quellcode muss geändert werden

Risiken

Mehrere Software -Ingenieure, wie z. Joel Spolsky[1] haben vor Total Rewrites gewarnt, insbesondere unter Planungsbeschränkungen oder Wettbewerbsdruck. Während Entwickler zunächst die Chance begrüßen, historische Designfehler zu korrigieren, verwirft ein Umschreiben auch die Teile des Designs, die nach Bedarf funktionieren. Ein Umschreiben verpflichtet das Entwicklungsteam, nicht nur neue Funktionen zu liefern, sondern auch alle, die im vorherigen Code existieren, während sie möglicherweise neue Fehler einführen oder Regressionen von zuvor behobenen Fehler.[2][3] Ein Umschreiben beeinträchtigt auch die Verfolgung unfixierter Fehler in der alten Version.[4]

Das inkrementelle Umschreiben ist ein alternativer Ansatz, bei dem Entwickler den vorhandenen Code allmählich durch Aufrufe in eine neue Implementierung ersetzen und diese Implementierung erweitern, bis er den alten vollständig ersetzt. Dieser Ansatz vermeidet einen breiten Funktionsverlust während des Umschreibens. Cleanroom Software Engineering ist ein anderer Ansatz, bei dem das Team ohne Zugriff auf seinen Code aus einer umfassenden schriftlichen Spezifikation der Funktionalität der Software arbeitet.[5]

Beispiele

NetscapeProjekt zur Verbesserung des HTML -Layouts in Navigator 4 wurde als Beispiel für ein fehlgeschlagenes Umschreiben zitiert. Die neue Layout -Engine (Gecko) hatte sich unabhängig vom Navigator entwickelt und hat sich nicht ohne weiteres in den Code des Navigators integriert. Daher wurde Navigator selbst um den neuen Motor umgeschrieben, wodurch viele vorhandene Funktionen gebrochen und die Veröffentlichung um mehrere Monate verzögert wurde. In der Zwischenzeit, Microsoft konzentrieren sich auf inkrementelle Verbesserungen an Internet Explorer und konfrontierte nicht den gleichen Hindernissen.[3][6] Ironischerweise war Navigator selbst ein erfolgreicher Reinraum -Umschreiben von NCSA -Mosaik von den Entwicklern dieses Programms überwacht. Sehen Browserkriege.

Siehe auch

Einige Projekte, in denen wichtige Umschreibungen in ihrer Geschichte erwähnt werden:

Verweise

  1. ^ Spolsky, Joel. "Dinge, die du niemals tun solltest, Teil ich". Joel über Software. Abgerufen 2015-01-23.
  2. ^ Ronkes Agerbeek, Joost (15. April 2005). "Schreiben Sie niemals Code von Grund auf neu". Archiviert von das Original am 10. Oktober 2008. Abgerufen 2008-09-11.
  3. ^ a b Spolsky, Joel (6. April 2000). "Dinge, die du niemals tun sollst". Abgerufen 2008-09-11.
  4. ^ Zawinski, Jamie. "Kaskade von Teenagern der Aufmerksamkeitsdefizit". Abgerufen 2008-09-11.
  5. ^ Tilly, Ben (29. September 2001). "Umschreiben, von Grund auf neu, eine riesige Codebasis". Abgerufen 2008-09-11.
  6. ^ Zawinski, Jamie (March 31, 1999). "Resignation und Postmortem". Abgerufen 2008-09-11.

Externe Links