Frage

Ja, die gefürchtete 'M' -Wort.

Sie haben eine Arbeitsplatz, die Quellcodeverwaltung bekommen und eine halbe Million Zeilen Quellcode, die Sie nicht schreiben. Die Dokumentation war veraltet in dem Moment, dass es genehmigt und veröffentlicht wurde. Die ursprünglichen Entwickler sind LTAO, beim nächsten Projekt / Start / Klapsmühle und nicht die E-Mail zu beantworten.

Was werden Sie tun?

{Lieblingseditor} und Grep werden Sie auf Ihrem spelunking durch die gnarling Eingeweide der Codebasis, aber welche anderen Werkzeuge sollten in der Wartungstechniker Toolbox erhalten begonnen?

, um die Kugelroll zu starten; Ich glaube nicht, dass ich ohne Quelle-insight für C / C ++ Spelunking leben konnte. . (HAFTUNGSAUSSCHLUSS: Ich habe nicht für ‚em Arbeit)

War es hilfreich?

Lösung

Eines der besten Werkzeuge im .Net Raum ReSharper . Dieses Tool hat mich gerettet Zeit in allen Aspekten der Entwicklung Lebenszyklus. Sie haben mir geholfen, auch überleben, wenn nicht dokumentiert Projekt / Lösungen verbinden.

  • Code-Refactoring
  • Code-Navigation
  • Code-Analyse

Dies sind nur einige der vielen Funktionen, die man durchführen zeitraubenden Aufgaben helfen.

Andere Tipps

Wie zu essen, die Elefanten - einen Bissen zu einer Zeit:)

Manchmal kann das große Bild ein echter demotivator sein, und Sie müssen einen Punkt holen und sie Stück für Stück angehen.

Natürlich muß noch die Bit wählen, um auf beginnen ... In der Regel wird diese angetrieben am stärksten von den Benutzern / Unternehmen mit höchster Priorität spezifischen Änderungen erforderlich (gestern ...), aber wenn man eine wenig Flexibilität oder Einarbeitungszeit , Metriken sind oft nützlich. Werkzeuge hier ändern sich mit der Technologie und Sprache, aber Tools wie NDepend und JDepend , jeder in der Code-Metriken (wie in in Visual Studio Team System, oder den verschiedenen verfügbaren Eclipse-Plugins) gebaut oder ein Tool wie Simian ein Gefühl für die Größe der Kopie und Paste Problems zu erhalten.

Hoffentlich wird die Anzahl der Unit-Tests und Reichweite größer als Null ist, und so ein guter erster Schritt ist immer zu bekommen, was Tests Sie können für das Hinzufügen von mehr Tests in einer Continuous Integration Umgebung als Grundlage laufen, wie Sie lernen.

Und wie andere gesagt haben - vorausgesetzt, Optionen für die Sprache verfügbar -. Eine gute IDE mit Code-Navigation und automatisierter Refactoring ist ein Muss (Eclipse Visual Studio (mit oder ohne ReSharper)

Ein paar Moral stärk Bücher:

Viel Glück:)

Code-Suchmaschinen können Ihnen helfen, finden Sie Weg, um eine große Source-Basis.

Eine Langauge empfindliche Quellcode Suchmaschine gefunden werden kann unter SD Source Code Search Engine . Es kann zur gleichen Zeit viele Sprachen behandeln. Die Suche kann nach Mustern in einem bestimmten Langauge durchgeführt werden, oder Muster über Sprachen (wie „finden Identifikatoren die TAX“). Durch die empfindlich gegenüber Langauge-Tokens, die Anzahl von Fehlalarmen reduziert wird, Zeit für den Benutzer zu speichern. Es versteht C, C ++, C #, COBOL, Java, ECMAScript, Java, XML, Verilog, VHDL, und eine Reihe von anderen Sprachen.

(Ich bin das Werkzeug Architekt).

ich in der Regel mit Emacs + CScope unter Linux starten. Visual Studio hat einige Prüfwerkzeuge, dass Sie eine ähnliche Fähigkeit für Windows geben. Doxygen kann auch sehr nützlich sein -. Es docs generieren, die auch nützlich sein kann, wenn die Quellen nicht Dokumentation Anmerkungen haben

Ich werde einige UML-Tool (vielleicht einfach Notebook mit einem Stift =) ausgeführt wird) und / oder Tools zum Erstellen von Klassen, Anrufe, Methoden Hierarchien (integriert in den IDE). Dann werde ich Dynamik mit Debugger oder einfachen Unit-Tests sehen. Mit diesem Zeug werde ich versuchen, irgendeine Art von Reverse-Engineering durchführt Design zu verstehen.

In solchen Situationen würde ich benutzen für C ++ verstehen

Signatur Umfrage Prozess ein guter Weg ist, ein sehr Vogelaugen Verständnis für das bekommen Code. Mit einer guten Skriptsprache und einigen mojo, es zu benutzen, den Aufbau eine sehr individuelle Signatur-Umfrage für die eigene Code-Basis, in was auch immer Ihre Sprache überhaupt nicht eine schwierige Aufgabe ist.

Der Bug-Tracking-Software, vor allem, wenn es um Ihre Source-Control-Software anknüpft wird von unschätzbarem Wert sein, da es Ihnen einen Einblick in geben könnte, warum einige schlechte Entscheidungen getroffen wurden. Dies ist umso wichtiger, wenn die Wartung Programmierer Pläne auch etwas Refactoring zu tun.

Ein schriftliches Protokoll ist auch hilfreich, so dass Sie das System dokumentieren, wie Sie gehen.

Ja, traf den Nagel auf den Kopf. Ein Unix-Shell und die handliche Notepad ++ ist das, was ich verwendet, um, wenn ich Wartungsarbeiten in Coldfusion hat, PHP, Perl usw. Nizza Editoren nicht zu wechseln, und alle Verweise auf einen Namen / param / Variable aufzuspüren.

Jetzt habe ich nur die rechte Maustaste und klicken Sie auf ‚Suche alle Referenzen‘ in Visual Studio, die wie Betrug scheint ehrlich zu sein. Die PHP-Jungs sind extrem eifersüchtig, da sie gezwungen sind, vi für die Bearbeitung zu verwenden. ;)

Das kritische Werkzeug würde etwas sein, dass Sie (und bearbeiten) die Code-Basis zu helfen, Ihr Verständnis navigieren kann.

Es ist sehr nützlich, etwas zu haben, das die Klasse Beziehung angezeigt werden kann (wenn OO-Sprache). Die Fähigkeit (statisch) Aufrufbäume anzuzeigen ist auch sehr nützlich, wenn Sie die Auswirkungen einer Änderung messen wollen Sie machen werden.

Sie erwähnen Source-Einsicht. Ein langer Lauf Open-Source-Projekt ist Quelle Navigator . Es sieht aus wie die Entwicklung begonnen hat, wieder nach für eine Weile stagnieren wird.

Ich finde Lutz Reflektor nützlich für diese, vor allem wenn man eine Mischung aus Code und Binärdateien. Sie erhalten rufen und Abhängigkeitsgraphen (abhängig von der verwendeten durch, ausgesetzt durch, instanziiert durch, etc.), Montage Grafiken und einige große Plug-Ins.

NDepend ist ein Werkzeug gewidmet Re-Ingenieur Legacy-Code , vor allem große verstrickt Legacy-Code-Basen Disclaimer: ich bin ein Werkzeug Entwickler

Scott Hanselman, die einmal auf seinem Blog schrieb: “ NDepend gibt mir Einblick in meine Anwendungen, die ich vorher nicht hatte (...) Sobald ich die Tiefe und Breite der Informationen wurde mir klar, es war auf der Suche, war ich wie ein Kind im Süßwarenladen. „

Einige NDepend-Funktionen nützlich für die Re-Engineering sind:

Sie müssen in der Lage zu navigate in der gesamten Codebasis. Wenn Ihr Lieblings IDE dies nicht zulässt, dann können Sie einen Indexer verwenden wie für C ++ verstehen (bereits zitiert), LXR oder OpenGrok .

In Eile, können Sie verlassen sich auf grep (1 s) oder - besser - Ack .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top