Wenn ein umschreiben einer code-Basis von Grund auf

Ich denke zurück an Joel Spolsky ' s Artikel über nie umschreiben von code von Grund auf neu. Zusammenfassend sein argument: Der code nicht rostig, und während es vielleicht nicht hübsch Aussehen, nach vielen releases, wenn es funktioniert, es funktioniert. Der Endbenutzer ist nicht egal, wie schön der code ist.

Können Sie den Artikel hier Lesen: Dinge, Die Sie Nie Tun Sollten

Ich habe vor kurzem übernommen, ein Projekt, und nach einem Blick durch Ihren code, es ist ziemlich schrecklich. Ich dachte sofort an Prototypen, die ich gebaut hatte, bevor, und ausdrücklich erklärt, dass es nicht für jede Produktionsumgebung. Aber natürlich, die Menschen nicht hören.

Code ist aufgebaut wie eine website, ist keine Trennung, keine unit-Tests und code-Duplizierung überall. Keine Daten-layer, keine wirkliche business-Logik, es sei denn, Sie zählen eine Reihe von Klassen im App_Code.

Ich habe die Empfehlung an die Aktionäre, dass, während wir sollten halten Sie den vorhandenen code, und tun bug-fix-releases, und einige kleinere feature-releases, wir beginnen sollten, schreiben Sie es sofort mit Test-Driven Development im Geist und mit der klaren Trennung von Bedenken. Ich bin am überlegen zu gehen ASP.NET MVC-route.

Meine einzige Sorge ist natürlich, die Länge der Zeit, die es dauern könnte zu umschreiben, von Grund auf. Es ist nicht ganz komplizierte, ziemlich Lauf von der Mühle-web-Anwendung, mit der Mitgliedschaft, etc..

Haben alle von Ihnen verfügen über ein ähnliches problem? Irgendwelche besonderen Schritte Sie genommen haben?

UPDATE:

Also.. Was habe ich am Ende der Entscheidung zu tun? Nahm ich Matt ' s Ansatz und beschlossen, umgestalten vielen Bereichen.

  • Seit App_Code war immer ziemlich
    große und dadurch verlangsamt sich das bauen
    Zeit, die ich entfernt viele der Klassen
    und konvertiert Sie in eine Klasse
    Bibliothek.
  • Ich erstellte eine sehr einfache Daten-Zugriff
    Schicht, die enthielt alle ADO
    Anrufe und erstellt ein Objekt SqlHelper
    zur Ausführung dieser Anrufe.

  • Implementiert habe ich eine cleaner-Protokollierung

    Lösung, die sehr viel präziser.

Während ich nicht mehr an diesem Projekt arbeiten [Finanzierung, Politik, bla bla], ich denke, es gab mir einen enormen Einblick, wie schlecht einige Projekte geschrieben werden können, und Schritte, die ein Entwickler nehmen können, um Dinge zu machen, viel sauberer, lesbarer und nur flat out besser mit kleinen Schritten über die Zeit.

  • ein weiterer Schraubenschlüssel in den Werken, Plattform - / stack-änderungen
  • Sie haben bereits festgestellt, dass der code ist ziemlich schrecklich. Anstatt zu versuchen, zu korrigieren, einen code, der im sterben liegt, wäre es besser, den code neu schreiben. Wenn Sie gelesen haben das Buch "the Apple Way" von Jeffrey L. Cruikshank", es sagt "Wenn du nicht enthüllen, dann Dribbeln" Gleiches könnte gelten für den älteren code, bis Sie enthüllen den neuen code, Dribbeln den alten code.
  • Es ist nicht immer unangemessen umschreiben von Grund auf. Es kann es Wert sein, wenn der alte code hat definitiv keinen Wert. Funktionierenden code hat einen Wert, und sollten nicht von Grund auf neu geschrieben. Aber wenn Sie reden über ein Projekt, das nie gearbeitet hat, ist es möglich, dass das umschreiben könnte eine bessere Idee, als zu versuchen, um Sie zu retten. Selbst dann, sollten Sie sehen, ob irgendwelche Teile des alten Projekts haben Wert und können herausgehoben werden und verwendet werden.
  • Schätzen Sie die Umsetzung dieses zusammen und detailliert Sie Ihren plan des Angriffs. Ich befinde mich in der GENAU GLEICHEN situation. Und ich werde deinen Ansatz, um die zugrunde liegenden änderungen in der Architektur, ohne dabei eine komplette Neuentwicklung
Schreibe einen Kommentar